]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FORWARD/analysis2/corrs/RunCopyVtxBias.C
Re-organised scripts
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / corrs / RunCopyVtxBias.C
CommitLineData
ab0f914c 1Color_t Color(UShort_t d, Char_t r ) const
2{
3 return ((d == 1 ? kRed : (d == 2 ? kGreen : kBlue))
4 + ((r == 'I' || r == 'i') ? 2 : -2));
5}
6
cc83fca2 7void
8RunCopyVtxBias(UShort_t sys, UShort_t cms, Short_t field, const char* path=0)
9{
10 RunCopyVtxBias(sys == 1 ? "pp" : "PbPb", cms, field, path);
11}
12
ab0f914c 13/**
14 *
15 * @param sys Collision system
16 * @param cms Center of mass energy per nucleon in GeV
17 * @param field Magnetic field
18 *
19 * @ingroup pwg2_forward_analysis_scripts
20 */
21void
cc83fca2 22RunCopyVtxBias(const char* sys, UShort_t cms, Short_t field, const char* path=0)
ab0f914c 23{
24 gROOT->Macro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/LoadLibs.C");
25 gSystem->Load("libPWG2forward.so");
26
27 AliFMDAnaParameters* p = AliFMDAnaParameters::Instance();
28 p->SetEnergy(Float_t(cms));
29 p->SetMagField(Float_t(field));
cc83fca2 30 p->SetCollisionSystem(sys);
31 if (path) {
32 p->SetBackgroundPath(path);
33 p->SetEnergyPath(path);
34 p->SetEventSelectionPath(path);
35 p->SetSharingEfficiencyPath(path);
36 }
ab0f914c 37 p->Init(true, AliFMDAnaParameters::kBackgroundCorrection|
38 AliFMDAnaParameters::kEventSelectionEfficiency);
39
40 Int_t nVtx = p->GetNvtxBins();
41 Double_t minVtx = -p->GetVtxCutZ();
42 Double_t maxVtx = -p->GetVtxCutZ();
43 Int_t nEta = p->GetNetaBins();
44 Double_t minEta = p->GetEtaMin();
45 Double_t maxEta = p->GetEtaMax();
46
47 TAxis vtxAxis(nVtx, minVtx, maxVtx);
48 AliFMDCorrVertexBias* obj = new AliFMDCorrVertexBias;
49 obj->SetVertexAxis(vtxAxis);
50
51 for (UShort_t b = 1; b <= nVtx; b++) {
52 for (UShort_t q = 0; q < 2; q++) {
53 Char_t r = q == 0 ? 'I' : 'O';
54
55 TH2F* oldcorr = p->GetEventSelectionEfficiency("INEL",b-1,r);
56 if (!oldcorr) {
57 Warning("RunCopyVtxBias",
58 "Didn't find secondary map correction "
59 "for ring type %c, vertex bin %3d", r, b);
60 continue;
61 }
62
63 TH2D* newcorr = new TH2D(Form("FMDX%c", r),
64 Form("Vertex bias correction for %c rings "
65 "in vertex bin %d [%+8.4f,%+8.4f]",
66 r, b, vtxAxis.GetBinLowEdge(b),
67 vtxAxis.GetBinUpEdge(b)),
68 nEta, minEta, maxEta,
69 oldcorr->GetYaxis()->GetNbins(),
70 oldcorr->GetYaxis()->GetXmin(),
71 oldcorr->GetYaxis()->GetXmax());
72 newcorr->SetXTitle("#eta");
73 newcorr->SetYTitle("#phi [radians]");
74 newcorr->SetZTitle("1/N_{t}#sum_{i}^{N_{tv}} N_{ch,i,primary} / "
75 "1/N_{v}#sum_{i}^{N_{v}} N_{ch,i,primary}");
76 newcorr->SetDirectory(0);
77 newcorr->SetStats(0);
78 newcorr->Sumw2();
79 newcorr->Add(oldcorr);
80
81 Info("RunCopyVtxBias",
82 "Copying %s to %s", oldcorr->GetName(), newcorr->GetName());
83
84 obj->SetCorrection(r, b, newcorr);
85 }
86 }
cc83fca2 87 UShort_t isys = AliForwardUtil::ParseCollisionSystem(sys);
ab0f914c 88 AliForwardCorrectionManager& mgr = AliForwardCorrectionManager::Instance();
89 TString fname(mgr.GetFileName(AliForwardCorrectionManager::kVertexBias,
cc83fca2 90 isys, cms, field, false));
ab0f914c 91 TFile* output = TFile::Open(fname.Data(), "RECREATE");
92 if (!output) {
93 Warning("Run", "Failed to open output file %s", fname.Data());
94 return kFALSE;
95 }
96 obj->Write(mgr.GetObjectName(AliForwardCorrectionManager::kVertexBias));
97 output->Write();
98 output->Close();
99 Info("Run", "File %s created. It should be copied to %s and stored in SVN",
100 fname.Data(),mgr.GetFileDir(AliForwardCorrectionManager::kVertexBias));
101
102}
103//
104// EOF
105//