]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/dNdEta/testAnalysis2.C
more plots
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / testAnalysis2.C
1 /* $Id$ */
2
3 //
4 // Script to test the dN/dEta analysis using the dNdEtaAnalysis and
5 // dNdEtaCorrection classes. Note that there is a cut on the events,
6 // so the measurement will be biassed.
7 //
8 // implementation with TSelector
9 //
10
11 #include "../CreateESDChain.C"
12 #include "../PWG0Helper.C"
13
14 void testAnalysis2(Char_t* data, Int_t nRuns=20, Int_t offset=0, Bool_t aMC = kFALSE, Bool_t aDebug = kFALSE, Bool_t aProof = kFALSE, const char* correctionMapFile = "correction_map.root", const char* correctionMapFolder = "dndeta_correction", const char* option = "", const char* proofServer = "jgrosseo@lxb6046")
15 {
16   if (aProof)
17     connectProof(proofServer);
18
19   TString libraries("libEG;libGeom;libESD;libPWG0base");
20   TString packages("PWG0base");
21   if (aMC != kFALSE)
22   {
23     libraries += ";libVMC;libMinuit;libSTEER;libEVGEN;libFASTSIM;libmicrocern;libpdf;libpythia6;libEGPythia6;libAliPythia6;libPWG0dep";
24     packages += ";PWG0dep";
25   }
26
27   if (!prepareQuery(libraries, packages, kTRUE))
28     return;
29
30   //TODO somehow prevent loading several times
31   gROOT->ProcessLine(".L CreateCuts.C");
32   gROOT->ProcessLine(".L drawPlots.C");
33
34   TChain* chain = CreateESDChain(data, nRuns, offset);
35
36
37   TList inputList;
38
39   if (aMC == kFALSE)
40   {
41     // selection of esd tracks
42     AliESDtrackCuts* esdTrackCuts = CreateTrackCuts();
43     if (!esdTrackCuts)
44     {
45       printf("ERROR: esdTrackCuts could not be created\n");
46       return;
47     }
48
49     inputList.Add(esdTrackCuts);
50
51     AlidNdEtaCorrection* dNdEtaCorrection = new AlidNdEtaCorrection(correctionMapFolder, correctionMapFolder);
52     dNdEtaCorrection->LoadHistograms(correctionMapFile, correctionMapFolder);
53     dNdEtaCorrection->ReduceInformation();
54     dNdEtaCorrection->SetName("dndeta_correction");
55     dNdEtaCorrection->SetTitle("dndeta_correction");
56
57     inputList.Add(dNdEtaCorrection);
58   }
59
60   TString selectorName = ((aMC == kFALSE) ? "AlidNdEtaAnalysisESDSelector" : "AlidNdEtaAnalysisMCSelector");
61   AliLog::SetClassDebugLevel(selectorName, AliLog::kInfo);
62
63   selectorName += ".cxx+";
64
65   if (aDebug != kFALSE)
66     selectorName += "g";
67
68   Int_t result = executeQuery(chain, &inputList, selectorName, option);
69
70   if (result >= 0)
71   {
72     dNdEtaAnalysis* fdNdEtaAnalysis = new dNdEtaAnalysis("dndeta", "dndeta");
73
74     TFile* file = TFile::Open(aMC ? "analysis_mc.root" : "analysis_esd.root");
75     if (!file)
76     {
77       cout << "Error. File not found" << endl;
78       return;
79     }
80     fdNdEtaAnalysis->LoadHistograms();
81     fdNdEtaAnalysis->DrawHistograms();
82
83     dNdEta(kTRUE);
84   }
85 }