introducing multiplicity measurement with the ITS or TPC
[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)
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);
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);
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
73 void* fit(const char* fileName = "multiplicityMC.root")
74 {
75   gSystem->Load("libPWG0base");
76
77   AliMultiplicityCorrection* mult = new AliMultiplicityCorrection("Multiplicity", "Multiplicity");
78
79   TFile::Open(fileName);
80   mult->LoadHistograms("Multiplicity");
81
82   mult->ApplyMinuitFit(3, kFALSE);
83
84   return mult;
85 }