Lines getting the matched track moved to a method in AliCalorimeterUtils. Lines copie...
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / macros / Train / TwoTrackQA / ConfigFemtoAnalysis.C
CommitLineData
903d6709 1/*********************************************************************
2 * *
3 * ConfigFemtoAnalysis.C - configuration macro for the femtoscopic *
4 * analysis, meant as a QA process for two-particle effects *
5 * *
6 * Author: Adam Kisiel (Adam.Kisiel@cern.ch) *
7 * *
8 *********************************************************************/
9
8292ff59 10#if !defined(__CINT__) || defined(__MAKECINT_)
903d6709 11#include "AliFemtoManager.h"
12#include "AliFemtoEventReaderESDChain.h"
13#include "AliFemtoEventReaderESDChainKine.h"
14#include "AliFemtoSimpleAnalysis.h"
15#include "AliFemtoBasicEventCut.h"
16#include "AliFemtoESDTrackCut.h"
17#include "AliFemtoCorrFctn.h"
18#include "AliFemtoCutMonitorParticleYPt.h"
19#include "AliFemtoCutMonitorParticleVertPos.h"
20#include "AliFemtoCutMonitorParticleMomRes.h"
21#include "AliFemtoCutMonitorEventMult.h"
22#include "AliFemtoCutMonitorEventVertex.h"
23#include "AliFemtoShareQualityTPCEntranceSepPairCut.h"
24#include "AliFemtoQinvCorrFctn.h"
25#include "AliFemtoShareQualityCorrFctn.h"
26#include "AliFemtoTPCInnerCorrFctn.h"
27#include "AliFemtoVertexMultAnalysis.h"
28#include "AliFemtoCorrFctn3DSpherical.h"
29#include "AliFemtoChi2CorrFctn.h"
30#include "AliFemtoCorrFctnTPCNcls.h"
31#include "AliFemtoModelBPLCMSCorrFctn.h"
32#include "AliFemtoModelCorrFctn3DSpherical.h"
33#include "AliFemtoModelGausLCMSFreezeOutGenerator.h"
34#include "AliFemtoModelGausRinvFreezeOutGenerator.h"
35#include "AliFemtoModelManager.h"
36#include "AliFemtoModelWeightGeneratorBasic.h"
37#include "AliFemtoModelWeightGeneratorLednicky.h"
38#include "AliFemtoCorrFctnDirectYlm.h"
39#include "AliFemtoModelCorrFctnDirectYlm.h"
40#include "AliFemtoModelCorrFctnSource.h"
41#include "AliFemtoCutMonitorParticlePtPDG.h"
42#include "AliFemtoKTPairCut.h"
8292ff59 43#endif
903d6709 44
45//________________________________________________________________________
46AliFemtoManager* ConfigFemtoAnalysis() {
47
48 double PionMass = 0.13956995;
49 double KaonMass = 0.493677;
50
51// AliFemtoEventReaderESDChainKine* Reader=new AliFemtoEventReaderESDChainKine();
52// Reader->SetConstrained(true);
53// Reader->SetUseTPCOnly(false);
54
55 AliFemtoEventReaderESDChain* Reader=new AliFemtoEventReaderESDChain();
56 Reader->SetConstrained(true);
57 Reader->SetUseTPCOnly(false);
58
59 AliFemtoManager* Manager=new AliFemtoManager();
60 Manager->SetEventReader(Reader);
61
62 // Switches for QA analyses
63 int runPiPlusStandard = 1;
64 int runPiMinusStandard = 1;
65 int runPositiveQA = 1;
66 int runNegativeQA = 1;
67 int runPositiveTPCQA = 1;
68 int runNegativeTPCQA = 1;
69
70 // *** First QA task - standard HBT analysis with all the cut on ***
71
72 // *** Begin pion-pion (positive) analysis ***
73 if (runPiPlusStandard) {
74 AliFemtoVertexMultAnalysis *anpipstd = new AliFemtoVertexMultAnalysis(3, -15.6, 15.6, 5, 2, 200);
75 anpipstd->SetNumEventsToMix(10);
76 anpipstd->SetMinSizePartCollection(2);
77
78 AliFemtoBasicEventCut* mecpipstd = new AliFemtoBasicEventCut();
79 mecpipstd->SetEventMult(2,100000);
80 mecpipstd->SetVertZPos(-1000,1000);
81
82 AliFemtoESDTrackCut* dtcpipstd = new AliFemtoESDTrackCut();
83 dtcpipstd->SetPidProbPion(0.2,1.001);
84 dtcpipstd->SetPidProbMuon(0.0,1.0);
85 dtcpipstd->SetPidProbKaon(0.0,1.0);
86 dtcpipstd->SetPidProbProton(0.0,1.0);
87 dtcpipstd->SetCharge(1.0);
88 dtcpipstd->SetPt(0.15,0.5);
89 dtcpipstd->SetMass(PionMass);
90 // Track quality cuts
91 dtcpipstd->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
92 // dtcpipstd->SetStatus(AliESDtrack::kTPCrefit);
93 dtcpipstd->SetminTPCncls(50);
94 dtcpipstd->SetRemoveKinks(kTRUE);
95 dtcpipstd->SetLabel(kFALSE);
96 dtcpipstd->SetMaxITSChiNdof(2.5);
97 dtcpipstd->SetMaxTPCChiNdof(3.0);
98 dtcpipstd->SetMaxImpactXY(3.0);
99 dtcpipstd->SetMaxImpactZ(3.0);
100
101 AliFemtoCutMonitorParticleYPt *cutPassYPtpipstd = new AliFemtoCutMonitorParticleYPt("cutPasspipstd", 0.13957);
102 AliFemtoCutMonitorParticleYPt *cutFailYPtpipstd = new AliFemtoCutMonitorParticleYPt("cutFailpipstd", 0.13957);
103 dtcpipstd->AddCutMonitor(cutPassYPtpipstd, cutFailYPtpipstd);
104
105 AliFemtoShareQualityTPCEntranceSepPairCut *sqpcpipstd = new AliFemtoShareQualityTPCEntranceSepPairCut();
106 sqpcpipstd->SetShareQualityMax(0.0);
107 sqpcpipstd->SetShareFractionMax(0.02);
108 sqpcpipstd->SetRemoveSameLabel(kFALSE);
109 sqpcpipstd->SetTPCEntranceSepMinimum(2.0);
110
111 anpipstd->SetEventCut(mecpipstd);
112 anpipstd->SetFirstParticleCut(dtcpipstd);
113 anpipstd->SetSecondParticleCut(dtcpipstd);
114 anpipstd->SetPairCut(sqpcpipstd);
115
116 AliFemtoShareQualityCorrFctn *csqqinvpipstd= new AliFemtoShareQualityCorrFctn("sqqinvcfpipstd",40,0.0,0.4);
117 anpipstd->AddCorrFctn(csqqinvpipstd);
118
8292ff59 119 AliFemtoCorrFctnDirectYlm *cylmpipstd = new AliFemtoCorrFctnDirectYlm("cylmpipstd",3,60,0.0,0.3,1);
903d6709 120 anpipstd->AddCorrFctn(cylmpipstd);
121
122 AliFemtoQinvCorrFctn *cqinvpipstd = new AliFemtoQinvCorrFctn("qinvcfpipstd", 100,0.0,1.0);
123 anpipstd->AddCorrFctn(cqinvpipstd);
124
125 AliFemtoChi2CorrFctn *cchiqinvpipstd= new AliFemtoChi2CorrFctn("chicfpipstd",40,0.0,0.4);
126 anpipstd->AddCorrFctn(cchiqinvpipstd);
127
128 AliFemtoCorrFctnTPCNcls *cqtpcnclspipstd = new AliFemtoCorrFctnTPCNcls("cqtpcnclspipstd",40,0.0,0.4);
129 anpipstd->AddCorrFctn(cqtpcnclspipstd);
130
131 Manager->AddAnalysis(anpipstd);
132 }
133 // *** End pion-pion (positive) analysis
134
135 // *** Begin pion-pion (negative) analysis ***
136 if (runPiMinusStandard) {
137 AliFemtoVertexMultAnalysis *anpimstd = new AliFemtoVertexMultAnalysis(3, -15.6, 15.6, 5, 2, 200);
138 anpimstd->SetNumEventsToMix(10);
139 anpimstd->SetMinSizePartCollection(2);
140
141 AliFemtoBasicEventCut* mecpimstd = new AliFemtoBasicEventCut();
142 mecpimstd->SetEventMult(2,100000);
143 mecpimstd->SetVertZPos(-1000,1000);
144
145 AliFemtoESDTrackCut* dtcpimstd = new AliFemtoESDTrackCut();
146 dtcpimstd->SetPidProbPion(0.2,1.001);
147 dtcpimstd->SetPidProbMuon(0.0,1.0);
148 dtcpimstd->SetPidProbKaon(0.0,1.0);
149 dtcpimstd->SetPidProbProton(0.0,1.0);
150 dtcpimstd->SetCharge(-1.0);
151 dtcpimstd->SetPt(0.15,0.5);
152 dtcpimstd->SetMass(PionMass);
153 // Track quality cuts
154 dtcpimstd->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
155 // dtcpimstd->SetStatus(AliESDtrack::kTPCrefit);
156 dtcpimstd->SetminTPCncls(50);
157 dtcpimstd->SetRemoveKinks(kTRUE);
158 dtcpimstd->SetLabel(kFALSE);
159 dtcpimstd->SetMaxITSChiNdof(2.5);
160 dtcpimstd->SetMaxTPCChiNdof(3.0);
161 dtcpimstd->SetMaxImpactXY(3.0);
162 dtcpimstd->SetMaxImpactZ(3.0);
163
164 AliFemtoCutMonitorParticleYPt *cutPassYPtpimstd = new AliFemtoCutMonitorParticleYPt("cutPasspimstd", 0.13957);
165 AliFemtoCutMonitorParticleYPt *cutFailYPtpimstd = new AliFemtoCutMonitorParticleYPt("cutFailpimstd", 0.13957);
166 dtcpimstd->AddCutMonitor(cutPassYPtpimstd, cutFailYPtpimstd);
167
168 AliFemtoShareQualityTPCEntranceSepPairCut *sqpcpimstd = new AliFemtoShareQualityTPCEntranceSepPairCut();
169 sqpcpimstd->SetShareQualityMax(0.0);
170 sqpcpimstd->SetShareFractionMax(0.02);
171 sqpcpimstd->SetRemoveSameLabel(kFALSE);
172 sqpcpimstd->SetTPCEntranceSepMinimum(2.0);
173
174 anpimstd->SetEventCut(mecpimstd);
175 anpimstd->SetFirstParticleCut(dtcpimstd);
176 anpimstd->SetSecondParticleCut(dtcpimstd);
177 anpimstd->SetPairCut(sqpcpimstd);
178
179 AliFemtoShareQualityCorrFctn *csqqinvpimstd= new AliFemtoShareQualityCorrFctn("sqqinvcfpimstd",40,0.0,0.4);
180 anpimstd->AddCorrFctn(csqqinvpimstd);
181
8292ff59 182 AliFemtoCorrFctnDirectYlm *cylmpimstd = new AliFemtoCorrFctnDirectYlm("cylmpimstd",3,60,0.0,0.3,1);
903d6709 183 anpimstd->AddCorrFctn(cylmpimstd);
184
185 AliFemtoQinvCorrFctn *cqinvpimstd = new AliFemtoQinvCorrFctn("qinvcfpimstd", 100,0.0,1.0);
186 anpimstd->AddCorrFctn(cqinvpimstd);
187
188 AliFemtoChi2CorrFctn *cchiqinvpimstd= new AliFemtoChi2CorrFctn("chicfpimstd",40,0.0,0.4);
189 anpimstd->AddCorrFctn(cchiqinvpimstd);
190
191 AliFemtoCorrFctnTPCNcls *cqtpcnclspimstd = new AliFemtoCorrFctnTPCNcls("cqtpcnclspimstd",40,0.0,0.4);
192 anpimstd->AddCorrFctn(cqtpcnclspimstd);
193
194 Manager->AddAnalysis(anpimstd);
195 }
196 // *** End pion-pion (negative) analysis
197
198 // *** Second QA task - HBT analysis with all pair cuts off ***
199 // *** Begin pion-pion (positive) analysis ***
200 if (runPositiveQA) {
201 AliFemtoVertexMultAnalysis *anpipnct = new AliFemtoVertexMultAnalysis(3, -15.6, 15.6, 5, 2, 200);
202 anpipnct->SetNumEventsToMix(10);
203 anpipnct->SetMinSizePartCollection(2);
204
205 AliFemtoBasicEventCut* mecpipnct = new AliFemtoBasicEventCut();
206 mecpipnct->SetEventMult(2,100000);
207 mecpipnct->SetVertZPos(-1000,1000);
208
209 AliFemtoESDTrackCut* dtcpipnct = new AliFemtoESDTrackCut();
210 dtcpipnct->SetPidProbPion(0.0,1.001);
211 dtcpipnct->SetPidProbMuon(0.0,1.0);
212 dtcpipnct->SetPidProbKaon(0.0,1.0);
213 dtcpipnct->SetPidProbProton(0.0,1.0);
214 dtcpipnct->SetCharge(1.0);
215 dtcpipnct->SetPt(0.1,1.0);
216 dtcpipnct->SetMass(PionMass);
217 // Track quality cuts
218 dtcpipnct->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
219 // dtcpipnct->SetStatus(AliESDtrack::kTPCrefit);
220 dtcpipnct->SetminTPCncls(50);
221 dtcpipnct->SetRemoveKinks(kTRUE);
222 dtcpipnct->SetLabel(kFALSE);
223 dtcpipnct->SetMaxITSChiNdof(6.0);
224 dtcpipnct->SetMaxTPCChiNdof(6.0);
225 dtcpipnct->SetMaxImpactXY(3.0);
226 dtcpipnct->SetMaxImpactZ(3.0);
227
228 AliFemtoCutMonitorParticleYPt *cutPassYPtpipnct = new AliFemtoCutMonitorParticleYPt("cutPasspipnct", 0.13957);
229 AliFemtoCutMonitorParticleYPt *cutFailYPtpipnct = new AliFemtoCutMonitorParticleYPt("cutFailpipnct", 0.13957);
230 dtcpipnct->AddCutMonitor(cutPassYPtpipnct, cutFailYPtpipnct);
231
232 AliFemtoShareQualityTPCEntranceSepPairCut *sqpcpipnct = new AliFemtoShareQualityTPCEntranceSepPairCut();
233 sqpcpipnct->SetShareQualityMax(1.0);
234 sqpcpipnct->SetShareFractionMax(1.0);
235 sqpcpipnct->SetRemoveSameLabel(kFALSE);
236 sqpcpipnct->SetTPCEntranceSepMinimum(0.0);
237
238 anpipnct->SetEventCut(mecpipnct);
239 anpipnct->SetFirstParticleCut(dtcpipnct);
240 anpipnct->SetSecondParticleCut(dtcpipnct);
241 anpipnct->SetPairCut(sqpcpipnct);
242
243 AliFemtoShareQualityCorrFctn *csqqinvpipnct= new AliFemtoShareQualityCorrFctn("sqqinvcfpipnct",40,0.0,0.4);
244 anpipnct->AddCorrFctn(csqqinvpipnct);
245
8292ff59 246 AliFemtoCorrFctnDirectYlm *cylmpipnct = new AliFemtoCorrFctnDirectYlm("cylmpipnct",3,60,0.0,0.3,1);
903d6709 247 anpipnct->AddCorrFctn(cylmpipnct);
248
249 AliFemtoQinvCorrFctn *cqinvpipnct = new AliFemtoQinvCorrFctn("qinvcfpipnct", 100,0.0,1.0);
250 anpipnct->AddCorrFctn(cqinvpipnct);
251
252 AliFemtoChi2CorrFctn *cchiqinvpipnct= new AliFemtoChi2CorrFctn("chicfpipnct",40,0.0,0.4);
253 anpipnct->AddCorrFctn(cchiqinvpipnct);
254
255 AliFemtoCorrFctnTPCNcls *cqtpcnclspipnct = new AliFemtoCorrFctnTPCNcls("cqtpcnclspipnct",40,0.0,0.4);
256 anpipnct->AddCorrFctn(cqtpcnclspipnct);
257
258 Manager->AddAnalysis(anpipnct);
259 }
260 // *** End pion-pion (positive) analysis
261
262 // *** Begin pion-pion (negative) analysis ***
263 if (runNegativeQA) {
264 AliFemtoVertexMultAnalysis *anpimnct = new AliFemtoVertexMultAnalysis(3, -15.6, 15.6, 5, 2, 200);
265 anpimnct->SetNumEventsToMix(10);
266 anpimnct->SetMinSizePartCollection(2);
267
268 AliFemtoBasicEventCut* mecpimnct = new AliFemtoBasicEventCut();
269 mecpimnct->SetEventMult(2,100000);
270 mecpimnct->SetVertZPos(-1000,1000);
271
272 AliFemtoESDTrackCut* dtcpimnct = new AliFemtoESDTrackCut();
273 dtcpimnct->SetPidProbPion(0.0,1.001);
274 dtcpimnct->SetPidProbMuon(0.0,1.0);
275 dtcpimnct->SetPidProbKaon(0.0,1.0);
276 dtcpimnct->SetPidProbProton(0.0,1.0);
277 dtcpimnct->SetCharge(-1.0);
278 dtcpimnct->SetPt(0.1,1.0);
279 dtcpimnct->SetMass(PionMass);
280 // Track quality cuts
281 dtcpimnct->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
282 // dtcpimnct->SetStatus(AliESDtrack::kTPCrefit);
283 dtcpimnct->SetminTPCncls(50);
284 dtcpimnct->SetRemoveKinks(kTRUE);
285 dtcpimnct->SetLabel(kFALSE);
286 dtcpimnct->SetMaxITSChiNdof(6.0);
287 dtcpimnct->SetMaxTPCChiNdof(6.0);
288 dtcpimnct->SetMaxImpactXY(3.0);
289 dtcpimnct->SetMaxImpactZ(3.0);
290
291 AliFemtoCutMonitorParticleYPt *cutPassYPtpimnct = new AliFemtoCutMonitorParticleYPt("cutPasspimnct", 0.13957);
292 AliFemtoCutMonitorParticleYPt *cutFailYPtpimnct = new AliFemtoCutMonitorParticleYPt("cutFailpimnct", 0.13957);
293 dtcpimnct->AddCutMonitor(cutPassYPtpimnct, cutFailYPtpimnct);
294
295 AliFemtoShareQualityTPCEntranceSepPairCut *sqpcpimnct = new AliFemtoShareQualityTPCEntranceSepPairCut();
296 sqpcpimnct->SetShareQualityMax(1.0);
297 sqpcpimnct->SetShareFractionMax(1.0);
298 sqpcpimnct->SetRemoveSameLabel(kFALSE);
299 sqpcpimnct->SetTPCEntranceSepMinimum(0.0);
300
301 anpimnct->SetEventCut(mecpimnct);
302 anpimnct->SetFirstParticleCut(dtcpimnct);
303 anpimnct->SetSecondParticleCut(dtcpimnct);
304 anpimnct->SetPairCut(sqpcpimnct);
305
306 AliFemtoShareQualityCorrFctn *csqqinvpimnct= new AliFemtoShareQualityCorrFctn("sqqinvcfpimnct",40,0.0,0.4);
307 anpimnct->AddCorrFctn(csqqinvpimnct);
308
8292ff59 309 AliFemtoCorrFctnDirectYlm *cylmpimnct = new AliFemtoCorrFctnDirectYlm("cylmpimnct",3,60,0.0,0.3,1);
903d6709 310 anpimnct->AddCorrFctn(cylmpimnct);
311
312 AliFemtoQinvCorrFctn *cqinvpimnct = new AliFemtoQinvCorrFctn("qinvcfpimnct", 100,0.0,1.0);
313 anpimnct->AddCorrFctn(cqinvpimnct);
314
315 AliFemtoChi2CorrFctn *cchiqinvpimnct= new AliFemtoChi2CorrFctn("chicfpimnct",40,0.0,0.4);
316 anpimnct->AddCorrFctn(cchiqinvpimnct);
317
318 AliFemtoCorrFctnTPCNcls *cqtpcnclspimnct = new AliFemtoCorrFctnTPCNcls("cqtpcnclspimnct",40,0.0,0.4);
319 anpimnct->AddCorrFctn(cqtpcnclspimnct);
320
321 Manager->AddAnalysis(anpimnct);
322 }
323 // *** End pion-pion (negative) analysis
324
325 // *** Third QA task - HBT analysis with all pair cuts off, TPC only ***
326 // *** Begin pion-pion (positive) analysis ***
327 if (runPositiveTPCQA) {
328 AliFemtoVertexMultAnalysis *anpiptpc = new AliFemtoVertexMultAnalysis(3, -15.6, 15.6, 5, 2, 200);
329 anpiptpc->SetNumEventsToMix(10);
330 anpiptpc->SetMinSizePartCollection(2);
331
332 AliFemtoBasicEventCut* mecpiptpc = new AliFemtoBasicEventCut();
333 mecpiptpc->SetEventMult(2,100000);
334 mecpiptpc->SetVertZPos(-1000,1000);
335
336 AliFemtoESDTrackCut* dtcpiptpc = new AliFemtoESDTrackCut();
337 dtcpiptpc->SetPidProbPion(0.0,1.001);
338 dtcpiptpc->SetPidProbMuon(0.0,1.0);
339 dtcpiptpc->SetPidProbKaon(0.0,1.0);
340 dtcpiptpc->SetPidProbProton(0.0,1.0);
341 dtcpiptpc->SetCharge(1.0);
342 dtcpiptpc->SetPt(0.1,1.0);
343 dtcpiptpc->SetMass(PionMass);
344 // Track quality cuts
345 //dtcpiptpc->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
346 dtcpiptpc->SetStatus(AliESDtrack::kTPCrefit);
347 dtcpiptpc->SetminTPCncls(50);
348 dtcpiptpc->SetRemoveKinks(kTRUE);
349 dtcpiptpc->SetLabel(kFALSE);
350 dtcpiptpc->SetMaxITSChiNdof(6.0);
351 dtcpiptpc->SetMaxTPCChiNdof(6.0);
352 dtcpiptpc->SetMaxImpactXY(3.0);
353 dtcpiptpc->SetMaxImpactZ(3.0);
354
355 AliFemtoCutMonitorParticleYPt *cutPassYPtpiptpc = new AliFemtoCutMonitorParticleYPt("cutPasspiptpc", 0.13957);
356 AliFemtoCutMonitorParticleYPt *cutFailYPtpiptpc = new AliFemtoCutMonitorParticleYPt("cutFailpiptpc", 0.13957);
357 dtcpiptpc->AddCutMonitor(cutPassYPtpiptpc, cutFailYPtpiptpc);
358
359 AliFemtoShareQualityTPCEntranceSepPairCut *sqpcpiptpc = new AliFemtoShareQualityTPCEntranceSepPairCut();
360 sqpcpiptpc->SetShareQualityMax(1.0);
361 sqpcpiptpc->SetShareFractionMax(1.0);
362 sqpcpiptpc->SetRemoveSameLabel(kFALSE);
363 sqpcpiptpc->SetTPCEntranceSepMinimum(0.0);
364
365 anpiptpc->SetEventCut(mecpiptpc);
366 anpiptpc->SetFirstParticleCut(dtcpiptpc);
367 anpiptpc->SetSecondParticleCut(dtcpiptpc);
368 anpiptpc->SetPairCut(sqpcpiptpc);
369
370 AliFemtoShareQualityCorrFctn *csqqinvpiptpc= new AliFemtoShareQualityCorrFctn("sqqinvcfpiptpc",40,0.0,0.4);
371 anpiptpc->AddCorrFctn(csqqinvpiptpc);
372
8292ff59 373 AliFemtoCorrFctnDirectYlm *cylmpiptpc = new AliFemtoCorrFctnDirectYlm("cylmpiptpc",3,60,0.0,0.3,1);
903d6709 374 anpiptpc->AddCorrFctn(cylmpiptpc);
375
376 AliFemtoQinvCorrFctn *cqinvpiptpc = new AliFemtoQinvCorrFctn("qinvcfpiptpc", 100,0.0,1.0);
377 anpiptpc->AddCorrFctn(cqinvpiptpc);
378
379 AliFemtoChi2CorrFctn *cchiqinvpiptpc= new AliFemtoChi2CorrFctn("chicfpiptpc",40,0.0,0.4);
380 anpiptpc->AddCorrFctn(cchiqinvpiptpc);
381
382 AliFemtoCorrFctnTPCNcls *cqtpcnclspiptpc = new AliFemtoCorrFctnTPCNcls("cqtpcnclspiptpc",40,0.0,0.4);
383 anpiptpc->AddCorrFctn(cqtpcnclspiptpc);
384
385 Manager->AddAnalysis(anpiptpc);
386 }
387 // *** End pion-pion (positive) analysis
388
389 // *** Begin pion-pion (negative) analysis ***
390 if (runNegativeTPCQA) {
391 AliFemtoVertexMultAnalysis *anpimtpc = new AliFemtoVertexMultAnalysis(3, -15.6, 15.6, 5, 2, 200);
392 anpimtpc->SetNumEventsToMix(10);
393 anpimtpc->SetMinSizePartCollection(2);
394
395 AliFemtoBasicEventCut* mecpimtpc = new AliFemtoBasicEventCut();
396 mecpimtpc->SetEventMult(2,100000);
397 mecpimtpc->SetVertZPos(-1000,1000);
398
399 AliFemtoESDTrackCut* dtcpimtpc = new AliFemtoESDTrackCut();
400 dtcpimtpc->SetPidProbPion(0.0,1.001);
401 dtcpimtpc->SetPidProbMuon(0.0,1.0);
402 dtcpimtpc->SetPidProbKaon(0.0,1.0);
403 dtcpimtpc->SetPidProbProton(0.0,1.0);
404 dtcpimtpc->SetCharge(-1.0);
405 dtcpimtpc->SetPt(0.1,1.0);
406 dtcpimtpc->SetMass(PionMass);
407 // Track quality cuts
408 //dtcpimtpc->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
409 dtcpimtpc->SetStatus(AliESDtrack::kTPCrefit);
410 dtcpimtpc->SetminTPCncls(50);
411 dtcpimtpc->SetRemoveKinks(kTRUE);
412 dtcpimtpc->SetLabel(kFALSE);
413 dtcpimtpc->SetMaxITSChiNdof(6.0);
414 dtcpimtpc->SetMaxTPCChiNdof(6.0);
415 dtcpimtpc->SetMaxImpactXY(3.0);
416 dtcpimtpc->SetMaxImpactZ(3.0);
417
418 AliFemtoCutMonitorParticleYPt *cutPassYPtpimtpc = new AliFemtoCutMonitorParticleYPt("cutPasspimtpc", 0.13957);
419 AliFemtoCutMonitorParticleYPt *cutFailYPtpimtpc = new AliFemtoCutMonitorParticleYPt("cutFailpimtpc", 0.13957);
420 dtcpimtpc->AddCutMonitor(cutPassYPtpimtpc, cutFailYPtpimtpc);
421
422 AliFemtoShareQualityTPCEntranceSepPairCut *sqpcpimtpc = new AliFemtoShareQualityTPCEntranceSepPairCut();
423 sqpcpimtpc->SetShareQualityMax(1.0);
424 sqpcpimtpc->SetShareFractionMax(1.0);
425 sqpcpimtpc->SetRemoveSameLabel(kFALSE);
426 sqpcpimtpc->SetTPCEntranceSepMinimum(0.0);
427
428 anpimtpc->SetEventCut(mecpimtpc);
429 anpimtpc->SetFirstParticleCut(dtcpimtpc);
430 anpimtpc->SetSecondParticleCut(dtcpimtpc);
431 anpimtpc->SetPairCut(sqpcpimtpc);
432
433 AliFemtoShareQualityCorrFctn *csqqinvpimtpc= new AliFemtoShareQualityCorrFctn("sqqinvcfpimtpc",40,0.0,0.4);
434 anpimtpc->AddCorrFctn(csqqinvpimtpc);
435
8292ff59 436 AliFemtoCorrFctnDirectYlm *cylmpimtpc = new AliFemtoCorrFctnDirectYlm("cylmpimtpc",3,60,0.0,0.3,1);
903d6709 437 anpimtpc->AddCorrFctn(cylmpimtpc);
438
439 AliFemtoQinvCorrFctn *cqinvpimtpc = new AliFemtoQinvCorrFctn("qinvcfpimtpc", 100,0.0,1.0);
440 anpimtpc->AddCorrFctn(cqinvpimtpc);
441
442 AliFemtoChi2CorrFctn *cchiqinvpimtpc= new AliFemtoChi2CorrFctn("chicfpimtpc",40,0.0,0.4);
443 anpimtpc->AddCorrFctn(cchiqinvpimtpc);
444
445 AliFemtoCorrFctnTPCNcls *cqtpcnclspimtpc = new AliFemtoCorrFctnTPCNcls("cqtpcnclspimtpc",40,0.0,0.4);
446 anpimtpc->AddCorrFctn(cqtpcnclspimtpc);
447
448 Manager->AddAnalysis(anpimtpc);
449 }
450 // *** End pion-pion (negative) analysis
451
452
453
454 return Manager;
455}
456