1 Color_t Color(UShort_t d, Char_t r ) const
3 return ((d == 1 ? kRed : (d == 2 ? kGreen : kBlue))
4 + ((r == 'I' || r == 'i') ? 2 : -2));
8 RunCopyCentralSecMap(UShort_t sys, UShort_t cms, Short_t field, const Char_t* path=0)
10 RunCopyCentralSecMap(sys == 1 ? "pp" : "PbPb",
17 * @param sys Collision system
18 * @param cms Center of mass energy per nucleon in GeV
19 * @param field Magnetic field
21 * @ingroup pwg2_forward_analysis_scripts
24 //RunCopyCentralSecMap(const char* sys, UShort_t cms, Short_t field,
25 // const Char_t* path=0)
27 RunCopyCentralSecMap(UShort_t sys, UShort_t cms, Short_t field, const Char_t* path=0)
29 gROOT->Macro("$ALICE_ROOT/PWG2/FORWARD/analysis2/scripts/LoadLibs.C");
30 gSystem->Load("libPWG2forward.so");
32 AliFMDAnaParameters* p = AliFMDAnaParameters::Instance();
33 p->SetEnergy(Float_t(cms));
34 p->SetMagField(Float_t(field));
35 p->SetCollisionSystem(sys);
37 p->SetBackgroundPath(path);
38 p->SetEnergyPath(path);
39 p->SetEventSelectionPath(path);
40 p->SetSharingEfficiencyPath(path);
42 p->Init(true, AliFMDAnaParameters::kBackgroundCorrection);
44 Int_t nVtx = p->GetNvtxBins();
45 Double_t minVtx = -p->GetVtxCutZ();
46 Double_t maxVtx = p->GetVtxCutZ();
47 Int_t nEta = p->GetNetaBins();
48 Double_t minEta = p->GetEtaMin();
49 Double_t maxEta = p->GetEtaMax();
51 TAxis vtxAxis(nVtx, minVtx, maxVtx);
52 AliCentralCorrSecondaryMap* m = new AliCentralCorrSecondaryMap;
53 m->SetVertexAxis(nVtx, minVtx, maxVtx);
55 AliCentralCorrAcceptance* a = new AliCentralCorrAcceptance;
56 a->SetVertexAxis(nVtx, minVtx, maxVtx);
59 //m->SetEtaAxis(nEta,minEta,maxEta);
60 //AliFMDCorrDoubleHit* dh = new AliFMDCorrDoubleHit;
64 for (UShort_t b = 1; b <= nVtx; b++) {
65 TH2F* oldmap = p->GetBackgroundCorrection(0, 'Q', b-1);
67 Warning("RunCopySecMap",
68 "Didn't find secondary map correction "
69 "for SPD, vertex bin %3d", b);
73 TH2D* newmap = new TH2D(Form("SPD_vtxbin%03d", b),
74 Form("Secondary map correction for SPD "
75 "in vertex bin %d [%+8.4f,%+8.4f]",
76 b, vtxAxis.GetBinLowEdge(b),
77 vtxAxis.GetBinUpEdge(b)),
79 oldmap->GetYaxis()->GetNbins(),
80 oldmap->GetYaxis()->GetXmin(),
81 oldmap->GetYaxis()->GetXmax());
82 newmap->SetXTitle("#eta");
83 newmap->SetYTitle("#phi [radians]");
84 newmap->SetZTitle("#sum_{i} N_{ch,i,primary} / #sum_{i} N_{ch,i,FMD}");
85 newmap->SetDirectory(0);
91 "Copying %s to %s", oldmap->GetName(), newmap->GetName());
93 m->SetCorrection(b, newmap);
94 std::cout<<m->GetCorrection(b)<<std::endl;
97 TH1F* oldacc = p->GetSPDDeadCorrection(b-1);
99 Warning("RunCopySecMap",
100 "Didn't find acceptance correction "
101 "for SPD, vertex bin %3d", b);
105 TH1D* newacc = new TH1D(Form("SPDdead_vtxbin%03d", b),
106 Form("Acceptance correction for SPD "
107 "in vertex bin %d [%+8.4f,%+8.4f]",
108 b, vtxAxis.GetBinLowEdge(b),
109 vtxAxis.GetBinUpEdge(b)),
110 nEta, minEta, maxEta);
111 newacc->SetXTitle("#eta");
112 newacc->SetYTitle("correction");
113 //newacc->SetZTitle("#sum_{i} N_{ch,i,primary} / #sum_{i} N_{ch,i,FMD}");
114 newacc->SetDirectory(0);
119 Info("RunCopySecMap",
120 "Copying %s to %s", oldacc->GetName(), newacc->GetName());
122 a->SetCorrection(b, newacc);
123 std::cout<<a->GetCorrection(b)<<std::endl;
128 AliCentralMultiplicityTask* task = new AliCentralMultiplicityTask("central");
130 TFile f(task->GetFullFileName(0.,sys+1,cms,field), "RECREATE");
131 m->Write(task->GetSecMapName());
133 TFile f2(task->GetFullFileName(1.,sys+1,cms,field), "RECREATE");
134 a->Write(task->GetAcceptanceName());