5de567d5d1cfce92b81fedcb230d5134cbef60ee
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / runMultiplicitySelector.C
1 /* $Id$ */
2
3 //
4 // script to run the AliMultiplicityESDSelector
5 //
6
7 #include "../CreateESDChain.C"
8 #include "../PWG0Helper.C"
9
10 void runMultiplicitySelector(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* option = "")
11 {
12   if (aProof)
13     connectProof("proof01@lxb6046");
14
15   TString libraries("libEG;libGeom;libESD;libPWG0base");
16   TString packages("PWG0base");
17
18   if (aMC != kFALSE)
19   {
20     libraries += ";libVMC;libMinuit;libSTEER;libPWG0dep;libEVGEN;libFASTSIM;libmicrocern;libpdf;libpythia6;libEGPythia6;libAliPythia6";
21     packages += ";PWG0dep";
22   }
23
24   if (!prepareQuery(libraries, packages, kTRUE))
25     return;
26
27   gROOT->ProcessLine(".L CreateCuts.C");
28   gROOT->ProcessLine(".L drawPlots.C");
29
30   // selection of esd tracks
31   AliESDtrackCuts* esdTrackCuts = CreateTrackCuts();
32   if (!esdTrackCuts)
33   {
34     printf("ERROR: esdTrackCuts could not be created\n");
35     return;
36   }
37
38   TList inputList;
39   inputList.Add(esdTrackCuts);
40
41   TChain* chain = CreateESDChain(data, nRuns, offset, kFALSE, kFALSE, "check");
42
43   TString selectorName = ((aMC == kFALSE) ? "AliMultiplicityESDSelector" : "AliMultiplicityMCSelector");
44   AliLog::SetClassDebugLevel(selectorName, AliLog::kInfo);
45
46   selectorName += ".cxx+";
47
48   if (aDebug != kFALSE)
49     selectorName += "g";
50
51   Int_t result = executeQuery(chain, &inputList, selectorName, option);
52
53   if (result != 0)
54   {
55     printf("ERROR: Executing process failed with %d.\n", result);
56     return;
57   }
58 }
59
60 void draw(const char* fileName = "multiplicityMC.root")
61 {
62   gSystem->Load("libPWG0base");
63
64   AliMultiplicityCorrection* mult = new AliMultiplicityCorrection("Multiplicity", "Multiplicity");
65
66   TFile::Open(fileName);
67   mult->LoadHistograms("Multiplicity");
68
69   mult->DrawHistograms();
70 }
71
72 void* fit(const char* fileName = "multiplicityMC.root")
73 {
74   gSystem->Load("libPWG0base");
75
76   AliMultiplicityCorrection* mult = new AliMultiplicityCorrection("Multiplicity", "Multiplicity");
77
78   TFile::Open(fileName);
79   mult->LoadHistograms("Multiplicity");
80
81   mult->ApplyMinuitFit(3, kFALSE);
82   mult->ApplyGaussianMethod(3, kFALSE);
83   mult->ApplyBayesianMethod(3, kFALSE);
84
85   return mult;
86 }
87
88 void* fitOther(const char* fileNameMC = "multiplicityMC.root", const char* fileNameESD = "multiplicityESD.root")
89 {
90   gSystem->Load("libPWG0base");
91
92   AliMultiplicityCorrection* mult = new AliMultiplicityCorrection("Multiplicity", "Multiplicity");
93
94   TFile::Open(fileNameMC);
95   mult->LoadHistograms("Multiplicity");
96
97   TFile::Open(fileNameESD);
98   TH2F* hist = (TH2F*) gFile->Get("Multiplicity/fMultiplicityESD3");
99   TH2F* hist2 = (TH2F*) gFile->Get("Multiplicity/fMultiplicityMC3");
100
101   mult->SetMultiplicityESD(3, hist);
102   mult->SetMultiplicityMC(3, hist2);
103
104   mult->ApplyMinuitFit(3, kFALSE);
105   mult->ApplyGaussianMethod(3, kFALSE);
106   mult->ApplyBayesianMethod(3, kFALSE);
107
108   return mult;
109 }