]>
Commit | Line | Data |
---|---|---|
76ce4b5b | 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 | #include "AliFemtoManager.h" | |
19 | #include "AliFemtoEventReaderESDChain.h" | |
20 | #include "AliFemtoSimpleAnalysis.h" | |
21 | #include "AliFemtoBasicEventCut.h" | |
22 | #include "AliFemtoESDTrackCut.h" | |
23 | #include "AliFemtoCutMonitorParticleYPt.h" | |
24 | #include "AliFemtoShareQualityTPCEntranceSepPairCut.h" | |
25 | #include "AliFemtoQinvCorrFctn.h" | |
26 | #include "AliFemtoShareQualityCorrFctn.h" | |
27 | #include "AliFemtoTPCInnerCorrFctn.h" | |
28 | #include "AliFemtoVertexMultAnalysis.h" | |
29 | ||
30 | AliFemtoManager *ConfigFemtoAnalysis() | |
31 | { | |
32 | double PionMass = 0.13956995; | |
33 | int chargePi = 1; | |
34 | ||
35 | // Set-up the reader for ALICE ESD | |
36 | AliFemtoEventReaderESDChain* Reader=new AliFemtoEventReaderESDChain(); | |
37 | // Read only constrained momenta - primordial particles | |
38 | Reader->SetConstrained(true); | |
39 | Reader->SetReadTPCInner(true); | |
40 | ||
41 | // Setup the manager | |
42 | AliFemtoManager* Manager=new AliFemtoManager(); | |
43 | // Point to the data source - the reader | |
44 | Manager->SetEventReader(Reader); | |
45 | ||
46 | // Setup the analysis | |
47 | AliFemtoSimpleAnalysis* an =new AliFemtoSimpleAnalysis(); | |
48 | // Number of events to construct the background | |
49 | an->SetNumEventsToMix(3); | |
50 | ||
51 | // The event selector | |
52 | AliFemtoBasicEventCut* mec = new AliFemtoBasicEventCut(); | |
53 | // Accept events with the given multiplicity | |
54 | mec->SetEventMult(0,100000); | |
55 | // and z-vertex distance to the center of the TPC | |
56 | mec->SetVertZPos(-1000,1000); | |
57 | ||
58 | // The track selector | |
59 | AliFemtoESDTrackCut* dtc = new AliFemtoESDTrackCut(); | |
60 | // We want positive pions | |
61 | dtc->SetPidProbPion(0.2,1.001); | |
62 | dtc->SetPidProbMuon(0.0,0.8); | |
63 | dtc->SetPidProbKaon(0.0,0.1); | |
64 | dtc->SetPidProbProton(0.0,0.1); | |
65 | dtc->SetMostProbablePion(); | |
66 | dtc->SetCharge(chargePi); | |
67 | // so we set the correct mass | |
68 | dtc->SetMass(PionMass); | |
69 | // we select low pt | |
70 | dtc->SetPt(0.1,0.7); | |
71 | dtc->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit); | |
72 | dtc->SetminTPCncls(95); | |
73 | dtc->SetRemoveKinks(kTRUE); | |
74 | dtc->SetLabel(kFALSE); | |
75 | dtc->SetMaxITSChiNdof(3.0); | |
76 | dtc->SetMaxTPCChiNdof(2.0); | |
77 | dtc->SetMaxSigmaToVertex(3.0); | |
78 | ||
79 | AliFemtoCutMonitorParticleYPt *cutPass = new AliFemtoCutMonitorParticleYPt("cutPass", 0.13957); | |
80 | AliFemtoCutMonitorParticleYPt *cutFail = new AliFemtoCutMonitorParticleYPt("cutFail", 0.13957); | |
81 | dtc->AddCutMonitor(cutPass, cutFail); | |
82 | ||
83 | // Pair selector | |
84 | AliFemtoShareQualityTPCEntranceSepPairCut *sqpc = new AliFemtoShareQualityTPCEntranceSepPairCut(); | |
85 | // remove split track pairs and pairs that share hits | |
86 | ||
87 | // Set maximim allowed "quality" for the pair | |
88 | // 1.0 - accept all pairs | |
89 | // -0.5 - reject all pairs | |
90 | // a reasonable value should lie between 0.0 and 0.5 | |
91 | sqpc->SetShareQualityMax(1.0); | |
92 | ||
93 | // Set maximum allowed shared hits fraction per pair | |
94 | // 1.0 - accept all pairs | |
95 | // 0.0 - reject all pairs | |
96 | // a reasonable value is small but nno-zero (0.05) | |
97 | sqpc->SetShareFractionMax(1.0); | |
98 | ||
99 | // Set minimum allowed separation between nominal TPC entrance points | |
100 | // of the two tracks in the pair | |
101 | // 0.0 - accept all pairs | |
102 | // a reasonable value is 3.0 [cm] | |
103 | sqpc->SetTPCEntranceSepMinimum(0.0); | |
104 | sqpc->SetRemoveSameLabel(kFALSE); | |
105 | ||
106 | // Add the cuts to the analysis | |
107 | an->SetEventCut(mec); | |
108 | an->SetFirstParticleCut(dtc); | |
109 | an->SetSecondParticleCut(dtc); | |
110 | an->SetPairCut(sqpc); | |
111 | ||
112 | // Setup correlation functions | |
113 | // A simple qinv correlation function | |
114 | AliFemtoQinvCorrFctn *cqinv= new AliFemtoQinvCorrFctn("qinvcf",75,0.0,0.4); | |
115 | ||
116 | // A correlation function to monitor the splitting and cluster sharing in TPC | |
117 | AliFemtoShareQualityCorrFctn *csqqinv= new AliFemtoShareQualityCorrFctn("sqqinvcf",75,0.0,0.4); | |
118 | ||
119 | // A correlation function to monitor the distance at the entrance to the TPC | |
120 | AliFemtoTPCInnerCorrFctn *tpcin = new AliFemtoTPCInnerCorrFctn("tpcin",80, 0.0, 0.4); | |
121 | ||
122 | // add the correlation functions to the analysis | |
123 | an->AddCorrFctn(cqinv); | |
124 | an->AddCorrFctn(csqqinv); | |
125 | an->AddCorrFctn(tpcin); | |
126 | ||
127 | // Add the analysis to the manager | |
128 | Manager->AddAnalysis(an); | |
129 | ||
130 | return Manager; | |
131 | } |