]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FEMTOSCOPY/macros/ConfigFemtoAnalysis.C
Lines getting the matched track moved to a method in AliCalorimeterUtils. Lines copie...
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / macros / ConfigFemtoAnalysis.C
1 // ConfigFemtoAnalysis.C - macro to create the splitting/merging
2 // test with the pion correlation function.
3 // As a default the anti-splitting and anti-merging cuts are open
4 // and the two correlation functions:
5 // AliFemtoShareQualityCorrFctn and AliFemtoTPCInnerCorrFctn 
6 // can be used to study the splitting (former) and merging (latter) effect
7 // If ones needs to produce a "clean" sample with both effects removed, 
8 // one needs to change the cut values to the "reasonable" ones, or perform
9 // the full systematic analysis with the above-mentioned functions 
10
11 // Author: Adam Kisiel. Adam.Kisiel@cern.ch
12
13 // parameters:
14 //
15 // returns:
16 // a pointer to the created AliFemtoManager
17
18 #if !defined(__CINT__) || defined(__MAKECINT__)
19 #include "AliFemtoManager.h"
20 #include "AliFemtoEventReaderESDChain.h"
21 #include "AliFemtoSimpleAnalysis.h"
22 #include "AliFemtoBasicEventCut.h"
23 #include "AliFemtoESDTrackCut.h"
24 #include "AliFemtoCutMonitorParticleYPt.h"
25 #include "AliFemtoShareQualityTPCEntranceSepPairCut.h"
26 #include "AliFemtoQinvCorrFctn.h"
27 #include "AliFemtoShareQualityCorrFctn.h"
28 #include "AliFemtoTPCInnerCorrFctn.h"
29 #include "AliFemtoVertexMultAnalysis.h"
30 #endif
31
32 AliFemtoManager *ConfigFemtoAnalysis()
33 {
34   double PionMass = 0.13956995;
35   int chargePi = 1;
36   
37   // Set-up the reader for ALICE ESD
38   AliFemtoEventReaderESDChain* Reader=new AliFemtoEventReaderESDChain();
39   // Read only constrained momenta - primordial particles
40   Reader->SetConstrained(true);
41   Reader->SetReadTPCInner(true);
42   
43   // Setup the manager 
44   AliFemtoManager* Manager=new AliFemtoManager();
45   // Point to the data source - the reader
46   Manager->SetEventReader(Reader);
47   
48   // Setup the analysis
49   AliFemtoSimpleAnalysis* an =new AliFemtoSimpleAnalysis();
50   // Number of events to construct the background
51   an->SetNumEventsToMix(3);
52
53   // The event selector
54   AliFemtoBasicEventCut* mec = new AliFemtoBasicEventCut();
55   // Accept events with the given multiplicity
56   mec->SetEventMult(0,100000);
57   // and z-vertex distance to the center of the TPC
58   mec->SetVertZPos(-1000,1000);
59         
60   // The track selector
61   AliFemtoESDTrackCut* dtc = new AliFemtoESDTrackCut();
62   // We want positive pions
63   dtc->SetPidProbPion(0.2,1.001);
64   dtc->SetPidProbMuon(0.0,0.8);
65   dtc->SetPidProbKaon(0.0,0.1);
66   dtc->SetPidProbProton(0.0,0.1);
67   dtc->SetMostProbablePion();
68   dtc->SetCharge(chargePi);
69   // so we set the correct mass
70   dtc->SetMass(PionMass);
71   // we select low pt
72   dtc->SetPt(0.1,0.7);
73   dtc->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
74   dtc->SetminTPCncls(95);
75   dtc->SetRemoveKinks(kTRUE);
76   dtc->SetLabel(kFALSE);
77   dtc->SetMaxITSChiNdof(3.0);
78   dtc->SetMaxTPCChiNdof(2.0);
79   dtc->SetMaxSigmaToVertex(3.0);
80
81   AliFemtoCutMonitorParticleYPt *cutPass = new AliFemtoCutMonitorParticleYPt("cutPass", 0.13957);
82   AliFemtoCutMonitorParticleYPt *cutFail = new AliFemtoCutMonitorParticleYPt("cutFail", 0.13957);
83   dtc->AddCutMonitor(cutPass, cutFail);
84
85   // Pair selector
86   AliFemtoShareQualityTPCEntranceSepPairCut *sqpc = new AliFemtoShareQualityTPCEntranceSepPairCut();
87   // remove split track pairs and pairs that share hits
88   
89   // Set maximim allowed "quality" for the pair
90   //  1.0 - accept all pairs
91   // -0.5 - reject all pairs
92   // a reasonable value should lie between 0.0 and 0.5
93   sqpc->SetShareQualityMax(1.0);
94
95   // Set maximum allowed shared hits fraction per pair
96   //  1.0 - accept all pairs
97   //  0.0 - reject all pairs
98   // a reasonable value is small but nno-zero (0.05)
99   sqpc->SetShareFractionMax(1.0);
100
101   // Set minimum allowed separation between nominal TPC entrance points
102   // of the two tracks in the pair
103   // 0.0 - accept all pairs
104   // a reasonable value is 3.0 [cm]
105   sqpc->SetTPCEntranceSepMinimum(0.0);
106   sqpc->SetRemoveSameLabel(kFALSE);
107
108   // Add the cuts to the analysis
109   an->SetEventCut(mec);
110   an->SetFirstParticleCut(dtc);
111   an->SetSecondParticleCut(dtc);
112   an->SetPairCut(sqpc);
113   
114   // Setup correlation functions
115   // A simple qinv correlation function
116   AliFemtoQinvCorrFctn *cqinv= new AliFemtoQinvCorrFctn("qinvcf",75,0.0,0.4);
117   
118   // A correlation function to monitor the splitting and cluster sharing in TPC
119   AliFemtoShareQualityCorrFctn *csqqinv= new AliFemtoShareQualityCorrFctn("sqqinvcf",75,0.0,0.4);
120   
121   // A correlation function to monitor the distance at the entrance to the TPC
122   AliFemtoTPCInnerCorrFctn *tpcin = new AliFemtoTPCInnerCorrFctn("tpcin",80, 0.0, 0.4);
123   
124   // add the correlation functions to the analysis
125   an->AddCorrFctn(cqinv);
126   an->AddCorrFctn(csqqinv);
127   an->AddCorrFctn(tpcin);
128
129   // Add the analysis to the manager
130   Manager->AddAnalysis(an);     
131
132   return Manager;
133 }