3 gSystem->Load("libTree");
4 gSystem->Load("libVMC");
6 gSystem->Load("libSTEERBase");
7 gSystem->Load("libANALYSIS");
8 gSystem->Load("libPWG0base");
11 void FinishAnalysisAll(const char* dataInput = "analysis_esd_raw.root", const char* dataOutput = "analysis_esd.root", const char* correctionMapFile = "correction_map2.root", const char* correctionMapFolder = "dndeta_correction_ua5")
15 AlidNdEtaCorrection* dNdEtaCorrection = 0;
17 if (correctionMapFile)
19 dNdEtaCorrection = new AlidNdEtaCorrection(correctionMapFolder, correctionMapFolder);
20 if (!TFile::Open(correctionMapFile))
22 dNdEtaCorrection->LoadHistograms();
25 TFile* file = TFile::Open(dataInput);
29 cout << "Error. File not found" << endl;
33 Int_t backgroundEvents = 0;
35 //backgroundEvents = 1162+434; // Michele for MB1, run 104892, 15.02.10
36 //backgroundEvents = 842; // JF estimate for V0 systematic case 1
37 backgroundEvents = 6; // Michele for V0AND, run 104892, 15.02.10
39 //backgroundEvents = 1758+434; // MB1, run 104867-92
41 //backgroundEvents = 4398+961; // Michele for MB1, run 104824-52, 16.02.10
42 //backgroundEvents = 19; // Michele for V0AND, run 104824-52, 16.02.10
44 //backgroundEvents = -1; // use 0 bin from MC! for 2.36 TeV
45 //backgroundEvents = 900; // my estimate for 2.36 TeV
47 //backgroundEvents = 918; // V0OR for run 114786 w/o bunch intensities w/o proper 0 checking!
48 //backgroundEvents = 723; // V0OR for run 114798 w/o bunch intensities w/o proper 0 checking!
50 Printf("Subtracting %d background events!!!", backgroundEvents);
53 TH1* combinatoricsCorrection = 0;
56 TFile::Open("corrComb.root");
57 combinatoricsCorrection = (TH1*) gFile->Get("ratioofratios");
61 // Note: the last parameter does not define which analysis is going to happen, the histograms will be overwritten when loading from the file
62 dNdEtaAnalysis* fdNdEtaAnalysis = new dNdEtaAnalysis("dndetaNSD", "dndetaNSD");
63 fdNdEtaAnalysis->LoadHistograms("fdNdEtaAnalysisESD");
64 fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0.151, AlidNdEtaCorrection::kNSD, "ESD -> NSD", backgroundEvents, combinatoricsCorrection);
65 //fdNdEtaAnalysis->DrawHistograms(kTRUE);
66 TFile* file2 = TFile::Open(dataOutput, "RECREATE");
67 fdNdEtaAnalysis->SaveHistograms();
70 dNdEtaAnalysis* fdNdEtaAnalysis = new dNdEtaAnalysis("dndeta", "dndeta");
71 fdNdEtaAnalysis->LoadHistograms("fdNdEtaAnalysisESD");
72 fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0.151, AlidNdEtaCorrection::kINEL, "ESD -> full inelastic", backgroundEvents, combinatoricsCorrection);
73 //fdNdEtaAnalysis->DrawHistograms(kTRUE);
75 fdNdEtaAnalysis->SaveHistograms();
78 fdNdEtaAnalysis = new dNdEtaAnalysis("dndetaTr", "dndetaTr");
79 fdNdEtaAnalysis->LoadHistograms("fdNdEtaAnalysisESD");
80 fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0.151, AlidNdEtaCorrection::kVertexReco, "ESD -> minimum bias", backgroundEvents, combinatoricsCorrection);
81 //fdNdEtaAnalysis->DrawHistograms(kTRUE);
83 fdNdEtaAnalysis->SaveHistograms();
86 fdNdEtaAnalysis = new dNdEtaAnalysis("dndetaTrVtx", "dndetaTrVtx");
87 fdNdEtaAnalysis->LoadHistograms("fdNdEtaAnalysisESD");
88 fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0.151, AlidNdEtaCorrection::kTrack2Particle, "ESD -> MB with vertex", backgroundEvents, combinatoricsCorrection);
89 //fdNdEtaAnalysis->DrawHistograms(kTRUE);
91 fdNdEtaAnalysis->SaveHistograms();
94 fdNdEtaAnalysis = new dNdEtaAnalysis("dndetaTracks", "dndetaTracks");
95 fdNdEtaAnalysis->LoadHistograms("fdNdEtaAnalysisESD");
96 fdNdEtaAnalysis->Finish(0, 0.151, AlidNdEtaCorrection::kNone, "ESD raw with pt cut", backgroundEvents, combinatoricsCorrection);
97 //fdNdEtaAnalysis->DrawHistograms(kTRUE);
99 fdNdEtaAnalysis->SaveHistograms();
102 fdNdEtaAnalysis = new dNdEtaAnalysis("dndetaTracksAll", "dndetaTracksAll");
103 fdNdEtaAnalysis->LoadHistograms("fdNdEtaAnalysisESD");
104 fdNdEtaAnalysis->Finish(0, -1, AlidNdEtaCorrection::kNone, "ESD raw", backgroundEvents, combinatoricsCorrection);
105 //fdNdEtaAnalysis->DrawHistograms(kTRUE);
107 fdNdEtaAnalysis->SaveHistograms();
110 fdNdEtaAnalysis = new dNdEtaAnalysis("dndetaOnePart", "dndetaOnePart");
111 fdNdEtaAnalysis->LoadHistograms("fdNdEtaAnalysisESD");
112 fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0.151, AlidNdEtaCorrection::kOnePart, "ESD -> OnePart", backgroundEvents, combinatoricsCorrection);
113 //fdNdEtaAnalysis->DrawHistograms(kTRUE);
115 fdNdEtaAnalysis->SaveHistograms();
121 void* FinishAnalysis(const char* analysisFile = "analysis_esd_raw.root", const char* analysisDir = "fdNdEtaAnalysisESD", const char* correctionMapFile = "correction_map.root", const char* correctionMapFolder = "dndeta_correction", Bool_t useUncorrected = kFALSE, Bool_t simple = kFALSE)
125 TFile* file = TFile::Open(analysisFile);
127 dNdEtaAnalysis* fdNdEtaAnalysis = new dNdEtaAnalysis(analysisDir, analysisDir);
128 fdNdEtaAnalysis->LoadHistograms();
130 if (correctionMapFile)
132 AlidNdEtaCorrection* dNdEtaCorrection = new AlidNdEtaCorrection(correctionMapFolder, correctionMapFolder);
133 TFile::Open(correctionMapFile);
134 dNdEtaCorrection->LoadHistograms();
136 fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0.151, AlidNdEtaCorrection::kINEL);
137 //fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0, AlidNdEtaCorrection::kINEL);
138 //fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0, AlidNdEtaCorrection::kTrack2Particle);
141 fdNdEtaAnalysis->Finish(0, 0.151, AlidNdEtaCorrection::kNone);
143 return fdNdEtaAnalysis;
145 fdNdEtaAnalysis->DrawHistograms(simple);
147 TH1* hist = fdNdEtaAnalysis->GetdNdEtaHistogram(1);
148 Int_t binLeft = hist->GetXaxis()->FindBin(-0.5);
149 Int_t binRight = hist->GetXaxis()->FindBin(0.5);
150 Float_t value1 = hist->Integral(binLeft, binRight);
152 hist = fdNdEtaAnalysis->GetdNdEtaHistogram(2);
153 Float_t value2 = hist->Integral(binLeft, binRight);
156 printf("Ratio is %f, values are %f %f\n", value1 / value2, value1, value2);
158 return fdNdEtaAnalysis;
165 result1 = (dNdEtaAnalysis*) FinishAnalysis("analysis_mc.root", "dndeta", 0, 0, 1);
166 result2 = (dNdEtaAnalysis*) FinishAnalysis("analysis_mc.root", "dndetaNSD", 0, 0, 1);
168 file = TFile::Open("out.root", "RECREATE");
169 result1->SaveHistograms();
170 result2->SaveHistograms();
174 void correct(Bool_t onlyESD = kFALSE, Bool_t mergedXSections = kTRUE)
176 gSystem->Unlink("analysis_esd.root");
178 FinishAnalysisAll("analysis_esd_raw.root", "analysis_esd.root", "correction_map2.root", "dndeta_correction_ua5");
180 FinishAnalysisAll("analysis_esd_raw.root", "analysis_esd.root", "correction_map.root", "dndeta_correction");
182 gROOT->ProcessLine(".L $ALICE_ROOT/PWG0/dNdEta/drawPlots.C");