]>
Commit | Line | Data |
---|---|---|
773e74de | 1 | /********************************************************************* |
2 | * * | |
3 | * Configfemtoanalysis.C - configuration macro for the femtoscopic * | |
4a847c65 | 4 | * analysis, meant as a QA process for two-particle effects * |
773e74de | 5 | * * |
6 | * Author: Adam Kisiel (Adam.Kisiel@cern.ch) * | |
7 | * * | |
8 | *********************************************************************/ | |
9 | ||
10 | #if !defined(__CINT__) || defined(__MAKECINT_) | |
11 | #include "AliFemtoManager.h" | |
12 | #include "AliFemtoEventReaderESDChain.h" | |
13 | #include "AliFemtoEventReaderESDChainKine.h" | |
14 | #include "AliFemtoEventReaderAODChain.h" | |
15 | #include "AliFemtoSimpleAnalysis.h" | |
16 | #include "AliFemtoBasicEventCut.h" | |
17 | #include "AliFemtoESDTrackCut.h" | |
18 | #include "AliFemtoCorrFctn.h" | |
19 | #include "AliFemtoCutMonitorParticleYPt.h" | |
20 | //#include "AliFemtoCutMonitorParticleVertPos.h" | |
21 | //#include "AliFemtoCutMonitorParticleMomRes.h" | |
22 | #include "AliFemtoCutMonitorParticlePID.h" | |
23 | //#include "AliFemtoCutMonitorEventMult.h" | |
24 | //#include "AliFemtoCutMonitorEventVertex.h" | |
25 | #include "AliFemtoShareQualityTPCEntranceSepPairCut.h" | |
26 | #include "AliFemtoPairCutAntiGamma.h" | |
27 | #include "AliFemtoPairCutRadialDistance.h" | |
28 | #include "AliFemtoQinvCorrFctn.h" | |
29 | //#include "AliFemtoTPCInnerCorrFctn.h" | |
30 | #include "AliFemtoVertexMultAnalysis.h" | |
31 | //#include "AliFemtoCutMonitorParticlePtPDG.h" | |
32 | #include "AliFemtoPairCutPt.h" | |
33 | //#include "AliFemtoCorrFctnMassInvMonitor.h" | |
34 | #endif | |
35 | ||
36 | //________________________________________________________________________ | |
37 | AliFemtoManager* ConfigFemtoAnalysis() { | |
38 | ||
39 | double PionMass = 0.13956995; | |
40 | double KaonMass = 0.493677; | |
41 | double ProtonMass = 0.938272013; | |
42 | ||
43 | const int numOfMultBins = 5; | |
44 | const int numOfChTypes = 12; | |
45 | const int numOfkTbins = 2; | |
46 | ||
47 | int runmults[numOfMultBins] = {1, 1, 1, 0, 1}; | |
48 | int multbins[numOfMultBins+1] = {0, 20, 50, 150, 2, 150}; | |
49 | ||
50 | int runch[numOfChTypes] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; | |
51 | const char *chrgs[numOfChTypes] = {"PIpPp","PImPm","PIpPm","PImPp"}; | |
52 | ||
53 | int runktdep = 0; | |
54 | double ktrng[numOfkTbins+1] = {0.0, 0.7, 100.0}; | |
55 | ||
56 | int runtype = 0; // Types 0 - global, 1 - ITS only, 2 - TPC Inner //global tracks ->mfit ITS+TPC | |
57 | ||
58 | int gammacut = 0; // cut na ee z gamma | |
59 | ||
60 | ||
61 | //AliFemtoEventReaderESDChainKine* Reader=new AliFemtoEventReaderESDChainKine(); | |
62 | //Reader->SetUseMultiplicity(AliFemtoEventReaderESDChainKine::kReferenceITSTPC); | |
63 | //Reader->SetMagneticFieldSign(1.0); | |
64 | //AliFemtoEventReaderESDChain *Reader = new AliFemtoEventReaderESDChain(); | |
65 | //Reader->SetUseMultiplicity(AliFemtoEventReaderESDChain::kReferenceITSTPC); | |
66 | ||
67 | AliFemtoEventReaderAODChain *Reader = new AliFemtoEventReaderAODChain(); | |
68 | Reader->SetFilterBit(0); | |
69 | Reader->SetUseMultiplicity(AliFemtoEventReaderAOD::kReference); | |
70 | ||
71 | // //Reader->SetCentralityPreSelection(0.001, 910); | |
72 | ||
73 | AliFemtoManager* Manager = new AliFemtoManager(); | |
74 | Manager->SetEventReader(Reader); | |
75 | ||
76 | AliFemtoVertexMultAnalysis *anetaphitpc[numOfMultBins*numOfChTypes]; | |
77 | AliFemtoBasicEventCut *mecetaphitpc[numOfMultBins*numOfChTypes]; | |
78 | /* AliFemtoCutMonitorEventMult *cutPassEvMetaphitpc[numOfMultBins*numOfChTypes]; | |
79 | AliFemtoCutMonitorEventMult *cutFailEvMetaphitpc[numOfMultBins*numOfChTypes]; | |
80 | AliFemtoCutMonitorEventVertex *cutPassEvVetaphitpc[numOfMultBins*numOfChTypes]; | |
81 | AliFemtoCutMonitorEventVertex *cutFailEvVetaphitpc[numOfMultBins*numOfChTypes]; | |
82 | */ AliFemtoESDTrackCut *dtc1etaphitpc[numOfMultBins*numOfChTypes]; | |
83 | AliFemtoESDTrackCut *dtc2etaphitpc[numOfMultBins*numOfChTypes]; | |
84 | ||
85 | // AliFemtoPairCutAntiGamma *sqpcetaphitpcdiff[numOfMultBins*numOfChTypes]; | |
86 | // AliFemtoShareQualityTPCEntranceSepPairCut *sqpcetaphitpcsame[numOfMultBins*numOfChTypes]; | |
87 | AliFemtoPairCutAntiGamma *sqpcetaphitpc[numOfMultBins*numOfChTypes]; | |
88 | // AliFemtoPairCutRadialDistance *sqpcetaphitpc[numOfMultBins*numOfChTypes]; | |
89 | // AliFemtoChi2CorrFctn *cchiqinvetaphitpc[numOfMultBins*numOfChTypes]; | |
90 | AliFemtoPairCutPt *ktpcuts[numOfMultBins*numOfChTypes]; | |
91 | AliFemtoQinvCorrFctn *cqinvkttpc[numOfMultBins*numOfChTypes]; | |
92 | AliFemtoQinvCorrFctn *cqinvtpc[numOfMultBins*numOfChTypes]; | |
93 | AliFemtoCorrFctnDEtaDPhi *cdedpetaphi[numOfMultBins*numOfChTypes]; | |
94 | //AliFemtoCorrFctnMassInvMonitor *cMinvMonitor[numOfMultBins*numOfChTypes]; | |
95 | ||
96 | ||
97 | // *** Third QA task - HBT analysis with all pair cuts off, TPC only *** | |
98 | // *** Begin pion-pion (positive) analysis *** | |
99 | int aniter = 0; | |
100 | ||
101 | for (int imult = 0; imult < numOfMultBins; imult++) | |
102 | { | |
103 | if (runmults[imult]) | |
104 | { | |
105 | for (int ichg = 0; ichg < numOfChTypes; ichg++) | |
106 | { | |
107 | if (runch[ichg]) | |
108 | { | |
109 | ||
110 | aniter = ichg * numOfMultBins + imult; | |
111 | anetaphitpc[aniter] = new AliFemtoVertexMultAnalysis(8, -8.0, 8.0, 6, multbins[imult], multbins[imult+1]); | |
112 | anetaphitpc[aniter]->SetNumEventsToMix(10); | |
113 | anetaphitpc[aniter]->SetMinSizePartCollection(1); | |
114 | ||
115 | mecetaphitpc[aniter] = new AliFemtoBasicEventCut(); | |
116 | mecetaphitpc[aniter]->SetEventMult(0.001,100000); | |
117 | mecetaphitpc[aniter]->SetVertZPos(-8,8);//cm | |
118 | ||
119 | /* cutPassEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutPass%stpcM%i", chrgs[ichg], imult)); | |
120 | cutFailEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutFail%stpcM%i", chrgs[ichg], imult)); | |
121 | mecetaphitpc[aniter]->AddCutMonitor(cutPassEvMetaphitpc[aniter], cutFailEvMetaphitpc[aniter]); | |
122 | ||
123 | cutPassEvVetaphitpc[aniter] = new AliFemtoCutMonitorEventVertex(Form("cutPass%stpcM%i", chrgs[ichg], imult)); | |
124 | cutFailEvVetaphitpc[aniter] = new AliFemtoCutMonitorEventVertex(Form("cutFail%stpcM%i", chrgs[ichg], imult)); | |
125 | mecetaphitpc[aniter]->AddCutMonitor(cutPassEvVetaphitpc[aniter], cutFailEvVetaphitpc[aniter]); | |
126 | */ | |
127 | dtc1etaphitpc[aniter] = new AliFemtoESDTrackCut(); | |
128 | dtc2etaphitpc[aniter] = new AliFemtoESDTrackCut(); | |
129 | ||
130 | dtc1etaphitpc[aniter]->SetEta(-1.0,1.0); | |
131 | dtc2etaphitpc[aniter]->SetEta(-1.0,1.0); | |
c4dd1710 | 132 | if (ichg == 0) // PIpPp |
773e74de | 133 | { |
134 | dtc1etaphitpc[aniter]->SetCharge(1.0); | |
135 | dtc1etaphitpc[aniter]->SetPt(0.2,20); | |
136 | dtc1etaphitpc[aniter]->SetMass(PionMass); | |
137 | dtc1etaphitpc[aniter]->SetMostProbablePion(); | |
138 | dtc2etaphitpc[aniter]->SetCharge(1.0); | |
139 | dtc2etaphitpc[aniter]->SetPt(0.5,20); | |
140 | dtc2etaphitpc[aniter]->SetMass(ProtonMass); | |
141 | dtc2etaphitpc[aniter]->SetMostProbableProton(); | |
142 | } | |
c4dd1710 | 143 | if (ichg == 1) // PImPm |
773e74de | 144 | { |
145 | dtc1etaphitpc[aniter]->SetCharge(-1.0); | |
146 | dtc1etaphitpc[aniter]->SetPt(0.2,20); | |
147 | dtc1etaphitpc[aniter]->SetMass(PionMass); | |
148 | dtc1etaphitpc[aniter]->SetMostProbablePion(); | |
149 | dtc2etaphitpc[aniter]->SetCharge(-1.0); | |
150 | dtc2etaphitpc[aniter]->SetPt(0.5,20); | |
151 | dtc2etaphitpc[aniter]->SetMass(ProtonMass); | |
152 | dtc2etaphitpc[aniter]->SetMostProbableProton(); | |
153 | } | |
c4dd1710 | 154 | if (ichg == 2) // PIpPm |
773e74de | 155 | { |
156 | dtc1etaphitpc[aniter]->SetCharge(1.0); | |
157 | dtc1etaphitpc[aniter]->SetPt(0.2,20); | |
158 | dtc1etaphitpc[aniter]->SetMass(PionMass); | |
159 | dtc1etaphitpc[aniter]->SetMostProbablePion(); | |
160 | dtc2etaphitpc[aniter]->SetCharge(-1.0); | |
161 | dtc2etaphitpc[aniter]->SetPt(0.5,20); | |
162 | dtc2etaphitpc[aniter]->SetMass(ProtonMass); | |
163 | dtc2etaphitpc[aniter]->SetMostProbableProton(); | |
164 | } | |
c4dd1710 | 165 | if (ichg == 3) // PImPp |
773e74de | 166 | { |
167 | dtc1etaphitpc[aniter]->SetCharge(-1.0); | |
168 | dtc1etaphitpc[aniter]->SetPt(0.2,20); | |
169 | dtc1etaphitpc[aniter]->SetMass(PionMass); | |
170 | dtc1etaphitpc[aniter]->SetMostProbablePion(); | |
171 | dtc2etaphitpc[aniter]->SetCharge(1.0); | |
172 | dtc2etaphitpc[aniter]->SetPt(0.5,20); | |
173 | dtc2etaphitpc[aniter]->SetMass(ProtonMass); | |
174 | dtc2etaphitpc[aniter]->SetMostProbableProton(); | |
175 | } | |
c4dd1710 | 176 | |
773e74de | 177 | // Track quality cuts |
178 | ||
179 | if (runtype == 0) | |
180 | { | |
181 | dtc1etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit); | |
182 | dtc1etaphitpc[aniter]->SetminTPCncls(70); | |
183 | dtc1etaphitpc[aniter]->SetRemoveKinks(kTRUE); | |
184 | dtc1etaphitpc[aniter]->SetLabel(kFALSE); | |
185 | // dtc1etaphitpc[aniter]->SetMaxITSChiNdof(6.0); | |
186 | dtc1etaphitpc[aniter]->SetMaxTPCChiNdof(4.0); | |
187 | dtc1etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01); // DCA xy | |
188 | dtc1etaphitpc[aniter]->SetMaxImpactZ(2); //DCA Z | |
189 | // dtc1etaphitpc[aniter]->SetMaxSigmaToVertex(6.0); | |
190 | dtc2etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit); | |
191 | dtc2etaphitpc[aniter]->SetminTPCncls(70); | |
192 | dtc2etaphitpc[aniter]->SetRemoveKinks(kTRUE); | |
193 | dtc2etaphitpc[aniter]->SetLabel(kFALSE); | |
194 | // dtc2etaphitpc[aniter]->SetMaxITSChiNdof(6.0); | |
195 | dtc2etaphitpc[aniter]->SetMaxTPCChiNdof(4.0); | |
196 | dtc2etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01) ; | |
197 | dtc2etaphitpc[aniter]->SetMaxImpactZ(2); | |
198 | // dtc2etaphitpc[aniter]->SetMaxSigmaToVertex(6.0); | |
199 | } | |
200 | else if (runtype == 1) | |
201 | { | |
202 | ; | |
203 | } | |
204 | else if (runtype == 2) | |
205 | { | |
206 | ; | |
207 | } | |
208 | ||
209 | sqpcetaphitpc[aniter] = new AliFemtoPairCutAntiGamma(); | |
210 | ||
211 | if (runtype == 0) | |
212 | { | |
213 | sqpcetaphitpc[aniter]->SetShareQualityMax(1.0); // two track cuts on splitting and merging | |
214 | sqpcetaphitpc[aniter]->SetShareFractionMax(0.05); // ile moga miec wspolnych klastrow | |
215 | sqpcetaphitpc[aniter]->SetRemoveSameLabel(kFALSE); | |
216 | // sqpcetaphitpc[aniter]->SetMaxEEMinv(0.0); | |
217 | // sqpcetaphitpc[aniter]->SetMaxThetaDiff(0.0); | |
218 | // sqpcetaphitpc[aniter]->SetTPCEntranceSepMinimum(1.5); | |
219 | // sqpcetaphitpc[aniter]->SetRadialDistanceMinimum(0.12, 0.03); | |
220 | // sqpcetaphitpc[aniter]->SetEtaDifferenceMinimum(0.02); | |
221 | } | |
222 | else if (runtype == 1) | |
223 | { | |
224 | ||
225 | } | |
226 | else if (runtype == 2) | |
227 | { | |
228 | ||
229 | } | |
230 | ||
231 | anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]); | |
232 | ||
233 | anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]); | |
234 | anetaphitpc[aniter]->SetSecondParticleCut(dtc2etaphitpc[aniter]); | |
235 | //cMinvMonitor[aniter] = new AliFemtoCorrFctnMassInvMonitor(Form("%sM%i",chrgs[ichg], imult),500,ProtonMass); | |
236 | //anetaphitpc[aniter]->AddCorrFctn(cMinvMonitor[aniter]); | |
237 | ||
238 | anetaphitpc[aniter]->SetPairCut(sqpcetaphitpc[aniter]); | |
239 | cdedpetaphi[aniter] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%i", chrgs[ichg], imult),35, 35); | |
240 | anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[aniter]); | |
241 | ||
242 | if (runktdep) | |
243 | { | |
244 | int ktm; | |
245 | for (int ikt=0; ikt<numOfkTbins; ikt++) | |
246 | { | |
247 | ktm = aniter * numOfkTbins + ikt; | |
248 | ktpcuts[ktm] = new AliFemtoPairCutPt(ktrng[ikt], ktrng[ikt+1]); | |
249 | ||
250 | //cqinvkttpc[ktm] = new AliFemtoQinvCorrFctn(Form("cqinv%stpcM%ikT%i", chrgs[ichg], imult, ikt),nbinssh,0.0,(imult>6)?shqmax*2.5:shqmax); | |
251 | //cqinvkttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]); | |
252 | //anetaphitpc[aniter]->AddCorrFctn(cqinvkttpc[ktm]); | |
253 | ||
254 | cdedpetaphi[ktm] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%ipT%i", chrgs[ichg], imult,ikt),35, 35); | |
255 | cdedpetaphi[ktm]->SetPairSelectionCut(ktpcuts[ktm]); | |
256 | anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[ktm]); | |
257 | } | |
258 | } | |
259 | Manager->AddAnalysis(anetaphitpc[aniter]); | |
260 | } | |
261 | } | |
262 | } | |
263 | } | |
264 | ||
265 | return Manager; | |
266 | } |