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 = new AlidNdEtaCorrection(correctionMapFolder, correctionMapFolder);
16 if (!TFile::Open(correctionMapFile))
18 dNdEtaCorrection->LoadHistograms();
20 TFile* file = TFile::Open(dataInput);
24 cout << "Error. File not found" << endl;
28 // Note: the last parameter does not define which analysis is going to happen, the histograms will be overwritten when loading from the f
29 dNdEtaAnalysis* fdNdEtaAnalysis = new dNdEtaAnalysis("dndetaNSD", "dndetaNSD");
30 fdNdEtaAnalysis->LoadHistograms("fdNdEtaAnalysisESD");
31 fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0.21, AlidNdEtaCorrection::kNSD, "ESD -> NSD");
32 //fdNdEtaAnalysis->DrawHistograms(kTRUE);
33 TFile* file2 = TFile::Open(dataOutput, "RECREATE");
34 fdNdEtaAnalysis->SaveHistograms();
37 dNdEtaAnalysis* fdNdEtaAnalysis = new dNdEtaAnalysis("dndeta", "dndeta");
38 fdNdEtaAnalysis->LoadHistograms("fdNdEtaAnalysisESD");
39 fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0.21, AlidNdEtaCorrection::kINEL, "ESD -> full inelastic");
40 //fdNdEtaAnalysis->DrawHistograms(kTRUE);
42 fdNdEtaAnalysis->SaveHistograms();
45 fdNdEtaAnalysis = new dNdEtaAnalysis("dndetaTr", "dndetaTr");
46 fdNdEtaAnalysis->LoadHistograms("fdNdEtaAnalysisESD");
47 fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0.21, AlidNdEtaCorrection::kVertexReco, "ESD -> minimum bias");
48 //fdNdEtaAnalysis->DrawHistograms(kTRUE);
50 fdNdEtaAnalysis->SaveHistograms();
53 fdNdEtaAnalysis = new dNdEtaAnalysis("dndetaTrVtx", "dndetaTrVtx");
54 fdNdEtaAnalysis->LoadHistograms("fdNdEtaAnalysisESD");
55 fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0.21, AlidNdEtaCorrection::kTrack2Particle, "ESD -> MB with vertex");
56 //fdNdEtaAnalysis->DrawHistograms(kTRUE);
58 fdNdEtaAnalysis->SaveHistograms();
61 fdNdEtaAnalysis = new dNdEtaAnalysis("dndetaTracks", "dndetaTracks");
62 fdNdEtaAnalysis->LoadHistograms("fdNdEtaAnalysisESD");
63 fdNdEtaAnalysis->Finish(0, 0.21, AlidNdEtaCorrection::kNone, "ESD raw with pt cut");
64 //fdNdEtaAnalysis->DrawHistograms(kTRUE);
66 fdNdEtaAnalysis->SaveHistograms();
69 fdNdEtaAnalysis = new dNdEtaAnalysis("dndetaTracksAll", "dndetaTracksAll");
70 fdNdEtaAnalysis->LoadHistograms("fdNdEtaAnalysisESD");
71 fdNdEtaAnalysis->Finish(0, -1, AlidNdEtaCorrection::kNone, "ESD raw");
72 //fdNdEtaAnalysis->DrawHistograms(kTRUE);
74 fdNdEtaAnalysis->SaveHistograms();
80 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)
84 TFile* file = TFile::Open(analysisFile);
86 dNdEtaAnalysis* fdNdEtaAnalysis = new dNdEtaAnalysis(analysisDir, analysisDir);
87 fdNdEtaAnalysis->LoadHistograms();
89 if (correctionMapFile)
91 AlidNdEtaCorrection* dNdEtaCorrection = new AlidNdEtaCorrection(correctionMapFolder, correctionMapFolder);
92 TFile::Open(correctionMapFile);
93 dNdEtaCorrection->LoadHistograms();
95 fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0.21, AlidNdEtaCorrection::kINEL);
96 //fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0, AlidNdEtaCorrection::kINEL);
97 //fdNdEtaAnalysis->Finish(dNdEtaCorrection, 0, AlidNdEtaCorrection::kTrack2Particle);
100 fdNdEtaAnalysis->Finish(0, 0.21, AlidNdEtaCorrection::kNone);
102 fdNdEtaAnalysis->DrawHistograms(simple);
104 TH1* hist = fdNdEtaAnalysis->GetdNdEtaHistogram(1);
105 Int_t binLeft = hist->GetXaxis()->FindBin(-0.5);
106 Int_t binRight = hist->GetXaxis()->FindBin(0.5);
107 Float_t value1 = hist->Integral(binLeft, binRight);
109 hist = fdNdEtaAnalysis->GetdNdEtaHistogram(2);
110 Float_t value2 = hist->Integral(binLeft, binRight);
113 printf("Ratio is %f, values are %f %f\n", value1 / value2, value1, value2);
115 return fdNdEtaAnalysis;
118 void correct(Bool_t onlyESD = kFALSE)
121 gROOT->ProcessLine(".L $ALICE_ROOT/PWG0/dNdEta/drawPlots.C");