1 /*********************************************************************
3 * ConfigFemtoAnalysis.C - configuration macro for the femtoscopic *
4 * analysis, meant as a QA process for two-particle effects *
6 * Author: Adam Kisiel (Adam.Kisiel@cern.ch) *
8 *********************************************************************/
10 #if !defined(__CINT__) || defined(__MAKECINT_)
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 "AliFemtoCutMonitorParticlePID.h"
22 #include "AliFemtoCutMonitorEventMult.h"
23 #include "AliFemtoCutMonitorEventVertex.h"
24 #include "AliFemtoShareQualityTPCEntranceSepPairCut.h"
25 #include "AliFemtoPairCutAntiGamma.h"
26 #include "AliFemtoQinvCorrFctn.h"
27 #include "AliFemtoShareQualityCorrFctn.h"
28 #include "AliFemtoTPCInnerCorrFctn.h"
29 #include "AliFemtoVertexMultAnalysis.h"
30 #include "AliFemtoCorrFctn3DSpherical.h"
31 #include "AliFemtoChi2CorrFctn.h"
32 #include "AliFemtoCorrFctnTPCNcls.h"
33 #include "AliFemtoModelBPLCMSCorrFctn.h"
34 #include "AliFemtoModelCorrFctn3DSpherical.h"
35 #include "AliFemtoModelGausLCMSFreezeOutGenerator.h"
36 #include "AliFemtoModelGausRinvFreezeOutGenerator.h"
37 #include "AliFemtoModelManager.h"
38 #include "AliFemtoModelWeightGeneratorBasic.h"
39 #include "AliFemtoModelWeightGeneratorLednicky.h"
40 #include "AliFemtoCorrFctnDirectYlm.h"
41 #include "AliFemtoModelCorrFctnDirectYlm.h"
42 #include "AliFemtoModelCorrFctnSource.h"
43 #include "AliFemtoCutMonitorParticlePtPDG.h"
44 #include "AliFemtoKTPairCut.h"
45 #include "AliFemtoEnumeration.h"
46 #include "AliFemtoV0PairCut.h"
47 #include "AliFemtoV0TrackPairCut.h"
48 #include "AliFemtoV0TrackCut.h"
49 #include "AliFemtoEventReaderAODChain.h"
50 #include "AliFemtoCorrFctnNonIdDR.h"
51 #include "AliFemtoCutMonitorCollections.h"
52 #include "AliFemtoPairCutRadialDistance.h"
53 #include "AliFemtoAvgSepCorrFctn.h"
56 //________________________________________________________________________
57 AliFemtoManager* ConfigFemtoAnalysis() {
59 double PionMass = 0.13956995;
60 double KaonMass = 0.493677;
61 double ProtonMass = 0.938272;
62 double LambdaMass = 1.115683;
64 double psi = TMath::Pi()/2.;
65 double psid = TMath::Pi()/6.;
67 // Switches for QA analyses
68 int runmults[10] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
69 int multbins[11] = {0.00001, 100, 200, 300, 400, 500, 600, 700, 800, 900, 900};
70 int runch[10] = {1, 1, 1, 1, 1, 1, 1, 0, 0, 0};
71 const char *chrgs[10] = { "V0LL", "V0ALAL", "V0LAL", "V0PL", "V0APL", "V0PAL", "V0APAL","PP","PAP","APAP" };
75 double ktrng[3] = {0.01, 0.7, 100};
77 int numOfMultBins = 10;
78 int numOfChTypes = 10;
84 int runtype = 2; // Types 0 - global, 1 - ITS only, 2 - TPC Inner
91 AliFemtoEventReaderAODChain* Reader=new AliFemtoEventReaderAODChain();
92 Reader->SetFilterBit(7);
93 Reader->SetCentralityPreSelection(0.00001, 910);
94 Reader->SetReadV0(1); //Read V0
95 Reader->SetMagneticFieldSign(1.0); //-1->field1, 1->field3
97 AliFemtoManager* Manager=new AliFemtoManager();
98 Manager->SetEventReader(Reader);
101 AliFemtoVertexMultAnalysis *anetaphitpc[320];
102 AliFemtoBasicEventCut *mecetaphitpc[320];
103 AliFemtoCutMonitorEventMult *cutPassEvMetaphitpc[320];
104 AliFemtoCutMonitorEventMult *cutFailEvMetaphitpc[320];
105 AliFemtoCutMonitorEventVertex *cutPassEvVetaphitpc[320];
106 AliFemtoCutMonitorEventVertex *cutFailEvVetaphitpc[320];
107 AliFemtoCutMonitorCollections *cutPassColletaphitpc[320];
108 AliFemtoCutMonitorCollections *cutFailColletaphitpc[320];
109 AliFemtoV0TrackCut *dtc1etaphitpc[320];
110 AliFemtoV0TrackCut *dtc2etaphitpc[320];
111 AliFemtoESDTrackCut *dtc3etaphitpc[320];
112 AliFemtoESDTrackCut *dtc4etaphitpc[320];
113 AliFemtoCutMonitorParticleYPt *cutPass1YPtetaphitpc[320];
114 AliFemtoCutMonitorParticleYPt *cutFail1YPtetaphitpc[320];
115 AliFemtoCutMonitorParticlePID *cutPass1PIDetaphitpc[320];
116 AliFemtoCutMonitorParticlePID *cutFail1PIDetaphitpc[320];
117 AliFemtoCutMonitorParticleYPt *cutPass2YPtetaphitpc[320];
118 AliFemtoCutMonitorParticleYPt *cutFail2YPtetaphitpc[320];
119 AliFemtoCutMonitorParticlePID *cutPass2PIDetaphitpc[320];
120 AliFemtoCutMonitorParticlePID *cutFail2PIDetaphitpc[320];
121 AliFemtoCutMonitorV0 *cutPass1V0[320];
122 AliFemtoCutMonitorV0 *cutFail1V0[320];
123 AliFemtoCutMonitorV0 *cutPass2V0[320];
124 AliFemtoCutMonitorV0 *cutFail2V0[320];
125 AliFemtoV0PairCut *sqp1cetaphitpc[320];
126 AliFemtoV0TrackPairCut *sqp2cetaphitpc[320];
127 AliFemtoV0TrackPairCut *sqp3cetaphitpc[320];
128 AliFemtoV0TrackPairCut *sqp4cetaphitpc[320];
129 //AliFemtoPairCutAntiGamma *sqp3cetaphitpc[320];
130 AliFemtoPairCutRadialDistance *sqp5cetaphitpc[320];
131 AliFemtoCorrFctnDirectYlm *cylmetaphitpc[320];
132 AliFemtoCorrFctnDEtaDPhi *cdedpetaphi[320*6];
133 AliFemtoChi2CorrFctn *cchiqinvetaphitpc[320];
134 AliFemtoKTPairCut *ktpcuts[320*6];
135 AliFemtoCorrFctnDirectYlm *cylmkttpc[320*6];
136 AliFemtoQinvCorrFctn *cqinvkttpc[320*6];
137 AliFemtoAvgSepCorrFctn *avgsepcorr[320*6];
138 //AliFemtoBPLCMS3DCorrFctn *cq3dlcmskttpc[320*6];
139 AliFemtoCorrFctnNonIdDR *cnonidtpc[320*6];
140 AliFemtoCorrFctnTPCNcls *cqinvnclstpc[320];
141 AliFemtoShareQualityCorrFctn *cqinvsqtpc[320];
142 AliFemtoTPCInnerCorrFctn *cqinvtitpc[320];
143 //AliFemtoChi2CorrFctn *cqinvchi2tpc[320];
144 AliFemtoQinvCorrFctn *cqinvtpc[100*3];
147 // *** Third QA task - HBT analysis with all pair cuts off, TPC only ***
148 // *** Begin pion-pion (positive) analysis ***
151 for (int imult=0; imult<numOfMultBins; imult++) {
152 if (runmults[imult]) {
153 for (int ichg=0; ichg<numOfChTypes; ichg++) {
155 aniter = imult * numOfChTypes + ichg;
159 if(ichg==3 || ichg==4 || ichg==5 || ichg==6)
164 anetaphitpc[aniter] = new AliFemtoVertexMultAnalysis(10, -10.0, 10.0, 4, multbins[imult], multbins[imult+1]);
165 anetaphitpc[aniter]->SetNumEventsToMix(10);
166 anetaphitpc[aniter]->SetMinSizePartCollection(1);
167 anetaphitpc[aniter]->SetVerboseMode(kFALSE);
169 mecetaphitpc[aniter] = new AliFemtoBasicEventCut();
170 mecetaphitpc[aniter]->SetEventMult(0,100000);
171 mecetaphitpc[aniter]->SetVertZPos(-10,10);
173 // mecetaphitpc->SetAcceptBadVertex(kTRUE);
175 cutPassEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutPass%stpcM%i", chrgs[ichg], imult));
176 cutFailEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutFail%stpcM%i", chrgs[ichg], imult));
177 mecetaphitpc[aniter]->AddCutMonitor(cutPassEvMetaphitpc[aniter], cutFailEvMetaphitpc[aniter]);
179 cutPassEvVetaphitpc[aniter] = new AliFemtoCutMonitorEventVertex(Form("cutPass%stpcM%i", chrgs[ichg], imult));
180 cutFailEvVetaphitpc[aniter] = new AliFemtoCutMonitorEventVertex(Form("cutFail%stpcM%i", chrgs[ichg], imult));
181 mecetaphitpc[aniter]->AddCutMonitor(cutPassEvVetaphitpc[aniter], cutFailEvVetaphitpc[aniter]);
183 cutPassColletaphitpc[aniter] = new AliFemtoCutMonitorCollections(Form("cutPass%stpcM%i", chrgs[ichg], imult));
184 cutFailColletaphitpc[aniter] = new AliFemtoCutMonitorCollections(Form("cutFail%stpcM%i", chrgs[ichg], imult));
185 mecetaphitpc[aniter]->AddCutMonitor(cutPassColletaphitpc[aniter], cutFailColletaphitpc[aniter]);
187 //V0 first particle cut -> Lambda ichg 0, 2, 6
188 dtc1etaphitpc[aniter] = new AliFemtoV0TrackCut();
189 dtc1etaphitpc[aniter]->SetMass(LambdaMass);
190 dtc1etaphitpc[aniter]->SetEta(0.8); //0.8
191 dtc1etaphitpc[aniter]->SetPt(0.4,5.0); //0.4,100
192 dtc1etaphitpc[aniter]->SetEtaDaughters(0.8); //0.8
193 dtc1etaphitpc[aniter]->SetPtPosDaughter(0.7,5.0); //0.5
194 dtc1etaphitpc[aniter]->SetPtNegDaughter(0.16,5.0); //0.16
195 dtc1etaphitpc[aniter]->SetTPCnclsDaughters(80); //80
196 dtc1etaphitpc[aniter]->SetNdofDaughters(4.0); //4.0
197 dtc1etaphitpc[aniter]->SetStatusDaughters(AliESDtrack::kTPCrefit/* | AliESDtrack::kITSrefit*/);
198 dtc1etaphitpc[aniter]->SetOnFlyStatus(kFALSE);
199 dtc1etaphitpc[aniter]->SetParticleType(0);
200 dtc1etaphitpc[aniter]->SetMaxDcaV0Daughters(0.4); //1.5 Jai, 0.6 //0.4
201 dtc1etaphitpc[aniter]->SetMaxDcaV0(1.0); //5.0
202 dtc1etaphitpc[aniter]->SetMinDaughtersToPrimVertex(0.1); //0.01
203 dtc1etaphitpc[aniter]->SetMaxCosPointingAngle(0.998); //0.99 - Jai //0.998
204 dtc1etaphitpc[aniter]->SetInvariantMassLambda(1.112683,1.118683);
207 //V0 second particle cut -> AntiLambda ichg 1, 3, 4, 5
208 dtc2etaphitpc[aniter] = new AliFemtoV0TrackCut();
209 dtc2etaphitpc[aniter]->SetMass(LambdaMass);
210 dtc2etaphitpc[aniter]->SetEta(0.8);
211 dtc2etaphitpc[aniter]->SetPt(0.4,5.0);
212 dtc2etaphitpc[aniter]->SetEtaDaughters(0.8);
213 dtc2etaphitpc[aniter]->SetPtPosDaughter(0.16,5.0);
214 dtc2etaphitpc[aniter]->SetPtNegDaughter(0.7,5.0);
215 dtc2etaphitpc[aniter]->SetTPCnclsDaughters(80);
216 dtc2etaphitpc[aniter]->SetNdofDaughters(4.0); //4.0
217 dtc2etaphitpc[aniter]->SetStatusDaughters(AliESDtrack::kTPCrefit/* | AliESDtrack::kITSrefit*/);
218 dtc2etaphitpc[aniter]->SetOnFlyStatus(kFALSE); //kTRUE
219 dtc2etaphitpc[aniter]->SetParticleType(1);
220 dtc2etaphitpc[aniter]->SetMaxDcaV0Daughters(0.4); //1.5 Jai, 0.6
221 dtc2etaphitpc[aniter]->SetMaxDcaV0(1.0);
222 dtc2etaphitpc[aniter]->SetMinDaughtersToPrimVertex(0.1);
223 dtc2etaphitpc[aniter]->SetMaxCosPointingAngle(0.998); //0.99 - Jai
224 dtc2etaphitpc[aniter]->SetInvariantMassLambda(1.112683,1.118683);
226 //ESD first particle cut -> Proton 3, 5; AntiProton 4, 6, 7, 8
227 dtc3etaphitpc[aniter] = new AliFemtoESDTrackCut();
228 dtc3etaphitpc[aniter]->SetMostProbableProton();
229 dtc3etaphitpc[aniter]->SetMass(ProtonMass);
230 dtc3etaphitpc[aniter]->SetCharge(1.0);
231 dtc3etaphitpc[aniter]->SetPt(0.7,5.0);
232 dtc3etaphitpc[aniter]->SetEta(-0.8,0.8);
234 // Track quality cuts
235 dtc3etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCin);
236 dtc3etaphitpc[aniter]->SetminTPCncls(80);
237 dtc3etaphitpc[aniter]->SetRemoveKinks(kTRUE);
238 dtc3etaphitpc[aniter]->SetLabel(kFALSE);
239 dtc3etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
240 //dtc3etaphitpc[aniter]->SetMaxImpactXY(0.2);
241 dtc3etaphitpc[aniter]->SetMaxImpactZ(2.0);
242 dtc3etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01);
244 //ESD first particle cut -> Proton 3, 5; AntiProton 4, 6, 8, 9
245 dtc4etaphitpc[aniter] = new AliFemtoESDTrackCut();
246 dtc4etaphitpc[aniter]->SetMostProbableProton();
247 dtc4etaphitpc[aniter]->SetMass(ProtonMass);
248 dtc4etaphitpc[aniter]->SetCharge(-1.0);
249 dtc4etaphitpc[aniter]->SetPt(0.7,5.0);
250 dtc4etaphitpc[aniter]->SetEta(-0.8,0.8);
252 // Track quality cuts
253 dtc4etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCin);
254 dtc4etaphitpc[aniter]->SetminTPCncls(80);
255 dtc4etaphitpc[aniter]->SetRemoveKinks(kTRUE);
256 dtc4etaphitpc[aniter]->SetLabel(kFALSE);
257 dtc4etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
258 //dtc4etaphitpc[aniter]->SetMaxImpactXY(0.2);
259 dtc4etaphitpc[aniter]->SetMaxImpactZ(2.0);
260 dtc4etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01);
264 cutPass1V0[aniter] = new AliFemtoCutMonitorV0(Form("cutPass1%stpcM%i", chrgs[ichg], imult));
265 cutFail1V0[aniter] = new AliFemtoCutMonitorV0(Form("cutFail1%stpcM%i", chrgs[ichg], imult));
266 //dtc1etaphitpc[aniter]->AddCutMonitor(cutPass1V0[aniter], cutFail1V0[aniter]);
268 cutPass2V0[aniter] = new AliFemtoCutMonitorV0(Form("cutPass2%stpcM%i", chrgs[ichg], imult));
269 cutFail2V0[aniter] = new AliFemtoCutMonitorV0(Form("cutFail2%stpcM%i", chrgs[ichg], imult));
270 //dtc2etaphitpc[aniter]->AddCutMonitor(cutPass2V0[aniter], cutFail2V0[aniter]);
272 cutPass1YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutPass1%stpcM%i", chrgs[ichg], imult), ProtonMass);
273 cutFail1YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutFail1%stpcM%i", chrgs[ichg], imult), ProtonMass);
274 //if(ichg==7 || ichg==8 || ichg==9)
275 //dtc3etaphitpc[aniter]->AddCutMonitor(cutPass1YPtetaphitpc[aniter], cutFail1YPtetaphitpc[aniter]);
277 cutPass2YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutPass2%stpcM%i", chrgs[ichg], imult), ProtonMass);
278 cutFail2YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutFail2%stpcM%i", chrgs[ichg], imult), ProtonMass);
279 //if(ichg==7 || ichg==8 || ichg==9)
280 //dtc4etaphitpc[aniter]->AddCutMonitor(cutPass2YPtetaphitpc[aniter], cutFail2YPtetaphitpc[aniter]);
282 cutPass1PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass1%stpcM%i", chrgs[ichg], imult),2);
283 cutFail1PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail1%stpcM%i", chrgs[ichg], imult),2);
284 //dtc1etaphitpc[aniter]->AddCutMonitor(cutPass1PIDetaphitpc[aniter], cutFail1PIDetaphitpc[aniter]);
286 cutPass1PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass1%stpcM%i", chrgs[ichg], imult),2);
287 cutFail1PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail1%stpcM%i", chrgs[ichg], imult),2);
288 //if(ichg == 4 || ichg == 5 || ichg == 6 || ichg == 7 || ichg == 8 || ichg == 9)
289 //dtc3etaphitpc[aniter]->AddCutMonitor(cutPass1PIDetaphitpc[aniter], cutFail1PIDetaphitpc[aniter]);
292 sqp1cetaphitpc[aniter] = new AliFemtoV0PairCut();
293 sqp1cetaphitpc[aniter]->SetDataType(AliFemtoPairCut::kAOD);
294 sqp1cetaphitpc[aniter]->SetTPCEntranceSepMinimum(0.00001);
295 sqp1cetaphitpc[aniter]->SetTPCExitSepMinimum(-1.);
296 sqp1cetaphitpc[aniter]->SetMinAvgSeparation(0,3);
297 sqp1cetaphitpc[aniter]->SetMinAvgSeparation(1,0);
298 sqp1cetaphitpc[aniter]->SetMinAvgSeparation(2,0);
299 sqp1cetaphitpc[aniter]->SetMinAvgSeparation(3,3);
301 sqp2cetaphitpc[aniter] = new AliFemtoV0TrackPairCut(); //lambda-proton
302 sqp2cetaphitpc[aniter]->SetShareQualityMax(1.0); //between V0 daughter and track
303 sqp2cetaphitpc[aniter]->SetShareFractionMax(0.05);
304 sqp2cetaphitpc[aniter]->SetTPCOnly(kTRUE);
305 sqp2cetaphitpc[aniter]->SetDataType(AliFemtoPairCut::kAOD);
306 sqp2cetaphitpc[aniter]->SetTPCEntranceSepMinimum(0.00001);
307 sqp2cetaphitpc[aniter]->SetTPCExitSepMinimum(-1.);
308 sqp2cetaphitpc[aniter]->SetKstarCut(0.04,AliFemtoV0TrackPairCut::kLambda,AliFemtoV0TrackPairCut::kProton); //0 - lambda, 2 - proton
309 sqp2cetaphitpc[aniter]->SetMinAvgSeparation(0,11); //0 - track-pos, 1 - track-neg
310 sqp2cetaphitpc[aniter]->SetMinAvgSeparation(1,0);
312 sqp3cetaphitpc[aniter] = new AliFemtoV0TrackPairCut(); //antilambda-antiproton
313 sqp3cetaphitpc[aniter]->SetShareQualityMax(1.0); //between V0 daughter and track
314 sqp3cetaphitpc[aniter]->SetShareFractionMax(0.05);
315 sqp3cetaphitpc[aniter]->SetTPCOnly(kTRUE);
316 sqp3cetaphitpc[aniter]->SetDataType(AliFemtoPairCut::kAOD);
317 sqp3cetaphitpc[aniter]->SetTPCEntranceSepMinimum(0.00001);
318 sqp3cetaphitpc[aniter]->SetTPCExitSepMinimum(-1.);
319 sqp3cetaphitpc[aniter]->SetKstarCut(0.04,AliFemtoV0TrackPairCut::kAntiLambda,AliFemtoV0TrackPairCut::kAntiProton); //1 - antilambda, 3 - antiproton
320 sqp3cetaphitpc[aniter]->SetMinAvgSeparation(0,0); //0 - track-pos, 1 - track-neg
321 sqp3cetaphitpc[aniter]->SetMinAvgSeparation(1,11);
323 sqp4cetaphitpc[aniter] = new AliFemtoV0TrackPairCut(); //lambda-antiproton, antilambda-proton
324 sqp4cetaphitpc[aniter]->SetShareQualityMax(1.0); //between V0 daughter and track
325 sqp4cetaphitpc[aniter]->SetShareFractionMax(0.05);
326 sqp4cetaphitpc[aniter]->SetTPCOnly(kTRUE);
327 sqp4cetaphitpc[aniter]->SetDataType(AliFemtoPairCut::kAOD);
328 sqp4cetaphitpc[aniter]->SetTPCEntranceSepMinimum(0.00001);
329 sqp4cetaphitpc[aniter]->SetTPCExitSepMinimum(-1.);
330 //SetMinAvgSeparation w if'ach ponizej
332 //sqp3cetaphitpc[aniter] = new AliFemtoPairCutAntiGamma();
333 sqp5cetaphitpc[aniter] = new AliFemtoPairCutRadialDistance();
334 sqp5cetaphitpc[aniter]->SetMagneticFieldSign(1.0); //-1->field1, 1->field3
335 sqp5cetaphitpc[aniter]->SetPhiStarDifferenceMinimum(0.012);
336 sqp5cetaphitpc[aniter]->SetEtaDifferenceMinimum(0.017);
337 sqp5cetaphitpc[aniter]->SetShareQualityMax(1.0);
338 sqp5cetaphitpc[aniter]->SetShareFractionMax(0.05);
339 sqp5cetaphitpc[aniter]->SetRemoveSameLabel(kFALSE);
340 sqp5cetaphitpc[aniter]->SetMaxEEMinv(0.002);
341 sqp5cetaphitpc[aniter]->SetMaxThetaDiff(0.008);
342 sqp5cetaphitpc[aniter]->SetDataType(AliFemtoPairCut::kAOD);
343 sqp5cetaphitpc[aniter]->SetTPCEntranceSepMinimum(0.0001);
345 avgsepcorr[aniter] = new AliFemtoAvgSepCorrFctn(Form("Avgsep%stpcM%i", chrgs[ichg], imult),5000,0,500);
350 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
351 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);
352 anetaphitpc[aniter]->SetSecondParticleCut(dtc1etaphitpc[aniter]);
353 anetaphitpc[aniter]->SetPairCut(sqp1cetaphitpc[aniter]);
354 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kV0s);
356 else if(ichg == 1) //V0ALAL
358 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
359 anetaphitpc[aniter]->SetFirstParticleCut(dtc2etaphitpc[aniter]);
360 anetaphitpc[aniter]->SetSecondParticleCut(dtc2etaphitpc[aniter]);
361 anetaphitpc[aniter]->SetPairCut(sqp1cetaphitpc[aniter]);
362 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kV0s);
364 else if(ichg == 2) //VOLAL
366 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
367 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);
368 anetaphitpc[aniter]->SetSecondParticleCut(dtc2etaphitpc[aniter]);
369 anetaphitpc[aniter]->SetPairCut(sqp1cetaphitpc[aniter]);
370 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kV0s);
372 else if(ichg == 3) //V0PL
374 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
375 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);
376 anetaphitpc[aniter]->SetSecondParticleCut(dtc3etaphitpc[aniter]);
377 anetaphitpc[aniter]->SetPairCut(sqp2cetaphitpc[aniter]);
378 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTrackV0);
380 else if(ichg == 4) //V0APL
382 sqp4cetaphitpc[aniter]->SetMinAvgSeparation(0,0); //0 - track-pos, 1 - track-neg
383 sqp4cetaphitpc[aniter]->SetMinAvgSeparation(1,11);
384 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
385 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);
386 anetaphitpc[aniter]->SetSecondParticleCut(dtc4etaphitpc[aniter]);
387 anetaphitpc[aniter]->SetPairCut(sqp4cetaphitpc[aniter]);
388 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTrackV0);
390 else if(ichg == 5) //V0PAL
392 sqp4cetaphitpc[aniter]->SetMinAvgSeparation(0,11); //0 - track-pos, 1 - track-neg
393 sqp4cetaphitpc[aniter]->SetMinAvgSeparation(1,0);
394 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
395 anetaphitpc[aniter]->SetFirstParticleCut(dtc2etaphitpc[aniter]);
396 anetaphitpc[aniter]->SetSecondParticleCut(dtc3etaphitpc[aniter]);
397 anetaphitpc[aniter]->SetPairCut(sqp4cetaphitpc[aniter]);
398 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTrackV0);
400 else if(ichg == 6) //V0APAL
402 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
403 anetaphitpc[aniter]->SetFirstParticleCut(dtc2etaphitpc[aniter]);
404 anetaphitpc[aniter]->SetSecondParticleCut(dtc4etaphitpc[aniter]);
405 anetaphitpc[aniter]->SetPairCut(sqp3cetaphitpc[aniter]);
406 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTrackV0);
408 else if(ichg ==7) //PP
410 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
411 anetaphitpc[aniter]->SetFirstParticleCut(dtc3etaphitpc[aniter]);
412 anetaphitpc[aniter]->SetSecondParticleCut(dtc3etaphitpc[aniter]);
413 anetaphitpc[aniter]->SetPairCut(sqp5cetaphitpc[aniter]);
414 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTracks);
416 else if(ichg ==8) //PAP
418 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
419 anetaphitpc[aniter]->SetFirstParticleCut(dtc3etaphitpc[aniter]);
420 anetaphitpc[aniter]->SetSecondParticleCut(dtc4etaphitpc[aniter]);
421 anetaphitpc[aniter]->SetPairCut(sqp5cetaphitpc[aniter]);
422 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTracks);
424 else if(ichg ==9) //APAP
426 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
427 anetaphitpc[aniter]->SetFirstParticleCut(dtc4etaphitpc[aniter]);
428 anetaphitpc[aniter]->SetSecondParticleCut(dtc4etaphitpc[aniter]);
429 anetaphitpc[aniter]->SetPairCut(sqp5cetaphitpc[aniter]);
430 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTracks);
433 anetaphitpc[aniter]->AddCorrFctn(avgsepcorr[aniter]);
435 //cylmetaphitpc[aniter] = new AliFemtoCorrFctnDirectYlm(Form("cylm%stpcM%i", chrgs[ichg], imult),3,nbinssh,0.0,shqmax,runshlcms);
436 //anetaphitpc[aniter]->AddCorrFctn(cylmetaphitpc[aniter]);
438 //cqinvnclstpc[aniter] = new AliFemtoCorrFctnTPCNcls(Form("cqinvncls%stpcM%i", chrgs[ichg], imult),nbinssh,0.0,shqmax);
439 //anetaphitpc[aniter]->AddCorrFctn(cqinvnclstpc[aniter]);
441 //cdedpetaphi[aniter] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%i", chrgs[ichg], imult),45, 45);
442 //anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[aniter]);
445 //cqinvtitpc[aniter] = new AliFemtoTPCInnerCorrFctn(Form("cqinvti%stpcM%i", chrgs[ichg], imult),nbinssh,0.0,shqmax);
446 //anetaphitpc[aniter]->AddCorrFctn(cqinvtitpc[aniter]);
448 //if(ichg==3 || ichg==4 || ichg==5 || ichg==6 || ichg==8) { //PL, APL, PAL, APAL, PAP
449 //cnonidtpc[aniter] = new AliFemtoCorrFctnNonIdDR(Form("cnonid%stpcM%i", chrgs[ichg], imult), nbinssh, 0.0,shqmax);
450 //anetaphitpc[aniter]->AddCorrFctn(cnonidtpc[aniter]);
453 //cqinvtpc[aniter] = new AliFemtoQinvCorrFctn(Form("cqinv%stpcM%i", chrgs[ichg], imult),nbinssh,0.0,shqmax);
454 //anetaphitpc[aniter]->AddCorrFctn(cqinvtpc[aniter]);
457 cylmkttpc[aniter] = new AliFemtoCorrFctnDirectYlm(Form("cylm%stpcM%i", chrgs[ichg], imult),3, nbinssh, 0.0,shqmax, runshlcms);
458 anetaphitpc[aniter]->AddCorrFctn(cylmkttpc[aniter]);
463 for (int ikt=0; ikt<numOfkTBins; ikt++) {
464 ktm = aniter*numOfkTBins + ikt;
465 ktpcuts[ktm] = new AliFemtoKTPairCut(ktrng[ikt], ktrng[ikt+1]);
467 cylmkttpc[ktm] = new AliFemtoCorrFctnDirectYlm(Form("cylm%stpcM%ikT%i", chrgs[ichg], imult, ikt),3,nbinssh, 0.0,shqmax,runshlcms);
468 cylmkttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
469 anetaphitpc[aniter]->AddCorrFctn(cylmkttpc[ktm]);
471 //cdedpetaphi[ktm] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%ikT%i", chrgs[ichg], imult,ikt),45, 45);
472 // cdedpetaphi[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
473 //anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[ktm]);
475 //if(ichg==3 || ichg==4 || ichg==5 || ichg==6 || ichg==8) { //PL, APL, PAL, APAL, PAP
476 //cnonidtpc[ktm] = new AliFemtoCorrFctnNonIdDR(Form("cnonid%stpcM%ikT%i", chrgs[ichg], imult,ikt),nbinssh, 0.0,shqmax);
477 //cnonidtpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
478 //anetaphitpc[aniter]->AddCorrFctn(cnonidtpc[ktm]);
482 //cqinvkttpc[ktm] = new AliFemtoQinvCorrFctn(Form("cqinv%stpcM%ikT%i", chrgs[ichg], imult, ikt),nbinssh,0.0,shqmax);
483 //cqinvkttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
484 //anetaphitpc[aniter]->AddCorrFctn(cqinvkttpc[ktm]);
491 Manager->AddAnalysis(anetaphitpc[aniter]);
496 // *** End of analysis