o) splitted analysis and correction of dneta
[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 "CreatedNdEta.C"
13
14 testAnalysis2(Char_t* dataDir, Int_t nRuns=20, Int_t offset=0, Bool_t aMC = kFALSE, Bool_t aDebug = kFALSE)
15 {
16   gSystem->Load("libPWG0base");
17
18   TChain* chain = CreateESDChainFromDir(dataDir, nRuns, offset);
19
20   // ########################################################
21   // selection of esd tracks
22   AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts();
23   esdTrackCuts->DefineHistograms(1);
24
25   esdTrackCuts->SetMinNClustersTPC(50);
26   esdTrackCuts->SetMaxChi2PerClusterTPC(3.5);
27   esdTrackCuts->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
28   esdTrackCuts->SetRequireTPCRefit(kTRUE);
29
30   esdTrackCuts->SetMinNsigmaToVertex(3);
31   esdTrackCuts->SetAcceptKingDaughters(kFALSE);
32
33   chain->GetUserInfo()->Add(esdTrackCuts);
34
35   if (aMC == kFALSE)
36   {
37     dNdEtaCorrection* dNdEtaCorrection = new dNdEtaCorrection();
38     dNdEtaCorrection->LoadHistograms("correction_map.root","dndeta_correction");
39     dNdEtaCorrection->RemoveEdges(2, 0, 2);
40
41     chain->GetUserInfo()->Add(dNdEtaCorrection);
42   }
43
44   TString selectorName = ((aMC == kFALSE) ? "AlidNdEtaAnalysisESDSelector" : "AlidNdEtaAnalysisMCSelector");
45   AliLog::SetClassDebugLevel(selectorName, AliLog::kInfo);
46
47   selectorName += ".cxx++";
48   if (aDebug != kFALSE)
49     selectorName += "g";
50
51   TStopwatch timer;
52   timer.Start();
53
54   chain->Process(selectorName);
55
56   timer.Stop();
57   timer.Print();
58
59   CreatedNdEta(aMC ? kFALSE : kTRUE);
60 }