]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/macros/Train/ProtonLambdaFemto/SemiCentral/ConfigFemtoAnalysis.C
updates in train macros for AliFemtoV0 analysis
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / macros / Train / ProtonLambdaFemto / SemiCentral / ConfigFemtoAnalysis.C
CommitLineData
ba642b8c 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
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"
54#endif
55
56//________________________________________________________________________
57AliFemtoManager* ConfigFemtoAnalysis() {
58
59 double PionMass = 0.13956995;
60 double KaonMass = 0.493677;
61 double ProtonMass = 0.938272013;
62 double LambdaMass = 1.115683;
63
64 double psi = TMath::Pi()/2.;
65 double psid = TMath::Pi()/6.;
66
67 // Switches for QA analyses
68 int runmults[10] = {0, 0, 1, 1, 1, 1, 0, 0, 0, 0};
69 int multbins[11] = {0.00001, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900};
70 int runch[10] = {1, 1, 1, 1, 1, 1, 1, 0, 0, 0};
71 //int runch[10] = {1, 1, 1, 0, 0, 0, 0, 0, 0, 0};
72 const char *chrgs[10] = { "V0LL", "V0ALAL", "V0LAL", "V0PL", "V0APL", "V0PAL", "V0APAL","PP","PAP","APAP" };
73
74 int runktdep = 0;
75 double ktrng[3] = {0.01, 0.7, 100};
76
77 int numOfMultBins = 10;
78 int numOfChTypes = 10;
79 int numOfkTBins = 2;
80
81 int runshlcms = 0;
82
83 int runtype = 2; // Types 0 - global, 1 - ITS only, 2 - TPC Inner
84
85 double shqmax;
86 int nbinssh = 100;
87
04e7fbb7 88 bool performSharedDaughterCut = true;
89
ba642b8c 90 shqmax = 1.0;
91
04e7fbb7 92 AliFemtoEventReaderAODChain* Reader=new AliFemtoEventReaderAODChain();
ba642b8c 93 Reader->SetFilterBit(7);
04e7fbb7 94 //Reader->SetCentralityPreSelection(0.00001, 310);
ba642b8c 95 Reader->SetReadV0(1); //Read V0
96 Reader->SetEPVZERO(kTRUE);
97 Reader->SetCentralityFlattening(kTRUE);
98
99 // Reader->SetMagneticFieldSign(-1.0); //-1->field1, 1->field3
100
101 AliFemtoManager* Manager=new AliFemtoManager();
102 Manager->SetEventReader(Reader);
103
104
105 AliFemtoVertexMultAnalysis *anetaphitpc[320];
106 AliFemtoBasicEventCut *mecetaphitpc[320];
107 AliFemtoCutMonitorEventMult *cutPassEvMetaphitpc[320];
108 AliFemtoCutMonitorEventMult *cutFailEvMetaphitpc[320];
109 AliFemtoCutMonitorEventVertex *cutPassEvVetaphitpc[320];
110 AliFemtoCutMonitorEventVertex *cutFailEvVetaphitpc[320];
111 AliFemtoCutMonitorCollections *cutPassColletaphitpc[320];
112 AliFemtoCutMonitorCollections *cutFailColletaphitpc[320];
113 AliFemtoV0TrackCut *dtc1etaphitpc[320];
114 AliFemtoV0TrackCut *dtc2etaphitpc[320];
115 AliFemtoESDTrackCut *dtc3etaphitpc[320];
116 AliFemtoESDTrackCut *dtc4etaphitpc[320];
117 AliFemtoCutMonitorParticleYPt *cutPass1YPtetaphitpc[320];
118 AliFemtoCutMonitorParticleYPt *cutFail1YPtetaphitpc[320];
119 AliFemtoCutMonitorParticlePID *cutPass1PIDetaphitpc[320];
120 AliFemtoCutMonitorParticlePID *cutFail1PIDetaphitpc[320];
121 AliFemtoCutMonitorParticleYPt *cutPass2YPtetaphitpc[320];
122 AliFemtoCutMonitorParticleYPt *cutFail2YPtetaphitpc[320];
123 AliFemtoCutMonitorParticlePID *cutPass2PIDetaphitpc[320];
124 AliFemtoCutMonitorParticlePID *cutFail2PIDetaphitpc[320];
125 AliFemtoCutMonitorV0 *cutPass1V0[320];
126 AliFemtoCutMonitorV0 *cutFail1V0[320];
127 AliFemtoCutMonitorV0 *cutPass2V0[320];
128 AliFemtoCutMonitorV0 *cutFail2V0[320];
129 AliFemtoV0PairCut *sqp1cetaphitpc[320];
130 AliFemtoV0TrackPairCut *sqp2cetaphitpc[320];
131 AliFemtoV0TrackPairCut *sqp3cetaphitpc[320];
132 AliFemtoV0TrackPairCut *sqp4cetaphitpc[320];
133 //AliFemtoPairCutAntiGamma *sqp3cetaphitpc[320];
134 AliFemtoPairCutRadialDistance *sqp5cetaphitpc[320];
135 AliFemtoCorrFctnDirectYlm *cylmetaphitpc[320];
136 AliFemtoCorrFctnDEtaDPhi *cdedpetaphi[320*6];
137 AliFemtoChi2CorrFctn *cchiqinvetaphitpc[320];
138 AliFemtoKTPairCut *ktpcuts[320*6];
139 AliFemtoCorrFctnDirectYlm *cylmkttpc[320*6];
140 AliFemtoQinvCorrFctn *cqinvkttpc[320*6];
141 AliFemtoAvgSepCorrFctn *avgsepcorr[320*6];
142 //AliFemtoBPLCMS3DCorrFctn *cq3dlcmskttpc[320*6];
143 AliFemtoCorrFctnNonIdDR *cnonidtpc[320*6];
144 AliFemtoCorrFctnTPCNcls *cqinvnclstpc[320];
145 AliFemtoShareQualityCorrFctn *cqinvsqtpc[320];
146 AliFemtoTPCInnerCorrFctn *cqinvtitpc[320];
147 //AliFemtoChi2CorrFctn *cqinvchi2tpc[320];
148 AliFemtoQinvCorrFctn *cqinvtpc[100*3];
149
150
151 // *** Third QA task - HBT analysis with all pair cuts off, TPC only ***
152 // *** Begin pion-pion (positive) analysis ***
153 int aniter = 0;
154
155 for (int imult=0; imult<numOfMultBins; imult++) {
156 if (runmults[imult]) {
157 for (int ichg=0; ichg<numOfChTypes; ichg++) {
158 if (runch[ichg]) {
159 aniter = imult * numOfChTypes + ichg;
160
161 if(ichg==3 || ichg==4 || ichg==5 || ichg==6)
162 runshlcms = 0;
163 else
164 runshlcms = 1;
165
04e7fbb7 166 anetaphitpc[aniter] = new AliFemtoVertexMultAnalysis(10, -10.0, 10.0, 4, multbins[imult], multbins[imult+1]);
167 anetaphitpc[aniter]->SetNumEventsToMix(10);
ba642b8c 168 anetaphitpc[aniter]->SetMinSizePartCollection(1);
169 anetaphitpc[aniter]->SetVerboseMode(kFALSE);
170
171 mecetaphitpc[aniter] = new AliFemtoBasicEventCut();
172 mecetaphitpc[aniter]->SetEventMult(0,100000);
04e7fbb7 173 mecetaphitpc[aniter]->SetVertZPos(-10,10);
ba642b8c 174
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]);
178
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]);
182
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]);
186
187 //V0 first particle cut -> Lambda ichg 0, 2, 6
188 dtc1etaphitpc[aniter] = new AliFemtoV0TrackCut();
04e7fbb7 189 dtc1etaphitpc[aniter]->SetMass(LambdaMass);
ba642b8c 190 dtc1etaphitpc[aniter]->SetEta(0.8); //0.8
191 dtc1etaphitpc[aniter]->SetPt(0.5,5.0); //0.4,100
192 dtc1etaphitpc[aniter]->SetEtaDaughters(0.8); //0.8
193 dtc1etaphitpc[aniter]->SetPtPosDaughter(0.5,4.0); //0.5
194 dtc1etaphitpc[aniter]->SetPtNegDaughter(0.16,4.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);
04e7fbb7 199 dtc1etaphitpc[aniter]->SetParticleType(0);
200 dtc1etaphitpc[aniter]->SetMaxDcaV0Daughters(0.4);
201 dtc1etaphitpc[aniter]->SetMaxDcaV0(1.0); //5.0
202 dtc1etaphitpc[aniter]->SetMinDaughtersToPrimVertex(0.1, 0.3); //0.01
203 dtc1etaphitpc[aniter]->SetMaxV0DecayLength(60.0);
204 dtc1etaphitpc[aniter]->SetMaxCosPointingAngle(0.9993);
205 dtc1etaphitpc[aniter]->SetInvariantMassLambda(LambdaMass-0.0041,LambdaMass+0.0041);
ba642b8c 206
207 //V0 second particle cut -> AntiLambda ichg 1, 3, 4, 5
208 dtc2etaphitpc[aniter] = new AliFemtoV0TrackCut();
04e7fbb7 209 dtc2etaphitpc[aniter]->SetMass(LambdaMass);
ba642b8c 210 dtc2etaphitpc[aniter]->SetEta(0.8);
211 dtc2etaphitpc[aniter]->SetPt(0.5,5.0);
212 dtc2etaphitpc[aniter]->SetEtaDaughters(0.8);
213 dtc2etaphitpc[aniter]->SetPtPosDaughter(0.16,4.0);
214 dtc2etaphitpc[aniter]->SetPtNegDaughter(0.3,4.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
04e7fbb7 221 dtc2etaphitpc[aniter]->SetMaxDcaV0(.5);
ba642b8c 222 dtc2etaphitpc[aniter]->SetMinDaughtersToPrimVertex(0.3, 0.1);
223 dtc2etaphitpc[aniter]->SetMaxCosPointingAngle(0.9993); //0.99 - Jai
04e7fbb7 224 dtc2etaphitpc[aniter]->SetMaxV0DecayLength(60.0);
225 dtc2etaphitpc[aniter]->SetInvariantMassLambda(LambdaMass-0.0030,LambdaMass+0.0036);
ba642b8c 226
227
228 //ESD first particle cut -> Proton 3, 5; AntiProton 4, 6, 7, 8
229 dtc3etaphitpc[aniter] = new AliFemtoESDTrackCut();
230 dtc3etaphitpc[aniter]->SetMostProbableProton();
231 dtc3etaphitpc[aniter]->SetMass(ProtonMass);
232 dtc3etaphitpc[aniter]->SetCharge(1.0);
233 dtc3etaphitpc[aniter]->SetPt(0.7,4.0);
234 dtc3etaphitpc[aniter]->SetEta(-0.8,0.8);
235
236 // Track quality cuts
237 dtc3etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCin);
238 dtc3etaphitpc[aniter]->SetminTPCncls(80);
239 dtc3etaphitpc[aniter]->SetRemoveKinks(kTRUE);
240 dtc3etaphitpc[aniter]->SetLabel(kFALSE);
241 dtc3etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
04e7fbb7 242 dtc3etaphitpc[aniter]->SetMaxImpactXY(2.4);
ba642b8c 243 dtc3etaphitpc[aniter]->SetMaxImpactZ(3.2);
244 dtc3etaphitpc[aniter]->SetNsigma(3.0);
245 dtc3etaphitpc[aniter]->SetNsigmaTPCTOF(kTRUE);
246
247 //ESD first particle cut -> Proton 3, 5; AntiProton 4, 6, 8, 9
248 dtc4etaphitpc[aniter] = new AliFemtoESDTrackCut();
249 dtc4etaphitpc[aniter]->SetMostProbableProton();
250 dtc4etaphitpc[aniter]->SetMass(ProtonMass);
251 dtc4etaphitpc[aniter]->SetCharge(-1.0);
252 dtc4etaphitpc[aniter]->SetPt(0.7,5.0);
253 dtc4etaphitpc[aniter]->SetEta(-0.8,0.8);
254
255 // Track quality cuts
256 dtc4etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCin);
257 dtc4etaphitpc[aniter]->SetminTPCncls(80);
258 dtc4etaphitpc[aniter]->SetRemoveKinks(kTRUE);
259 dtc4etaphitpc[aniter]->SetLabel(kFALSE);
260 dtc4etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
04e7fbb7 261 dtc4etaphitpc[aniter]->SetMaxImpactXY(2.0);
ba642b8c 262 dtc4etaphitpc[aniter]->SetMaxImpactZ(3.2);
263 dtc4etaphitpc[aniter]->SetNsigma(3.0);
264 dtc4etaphitpc[aniter]->SetNsigmaTPCTOF(kTRUE);
265
04e7fbb7 266 // // //V0 monitor
267 // cutPass1V0[aniter] = new AliFemtoCutMonitorV0(Form("cutPass1%stpcM%i", chrgs[ichg], imult));
268 // cutFail1V0[aniter] = new AliFemtoCutMonitorV0(Form("cutFail1%stpcM%i", chrgs[ichg], imult));
269 // dtc1etaphitpc[aniter]->AddCutMonitor(cutPass1V0[aniter], cutFail1V0[aniter]);
ba642b8c 270
04e7fbb7 271 // cutPass2V0[aniter] = new AliFemtoCutMonitorV0(Form("cutPass2%stpcM%i", chrgs[ichg], imult));
272 // cutFail2V0[aniter] = new AliFemtoCutMonitorV0(Form("cutFail2%stpcM%i", chrgs[ichg], imult));
273 // dtc2etaphitpc[aniter]->AddCutMonitor(cutPass2V0[aniter], cutFail2V0[aniter]);
ba642b8c 274
04e7fbb7 275 //cutPass1YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutPass1%stpcM%i", chrgs[ichg], imult), ProtonMass);
276 //cutFail1YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutFail1%stpcM%i", chrgs[ichg], imult), ProtonMass);
ba642b8c 277 // //if(ichg==7 || ichg==8 || ichg==9)
278 // //dtc3etaphitpc[aniter]->AddCutMonitor(cutPass1YPtetaphitpc[aniter], cutFail1YPtetaphitpc[aniter]);
279
280 // cutPass2YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutPass2%stpcM%i", chrgs[ichg], imult), ProtonMass);
281 // cutFail2YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutFail2%stpcM%i", chrgs[ichg], imult), ProtonMass);
282 // //if(ichg==7 || ichg==8 || ichg==9)
283 // //dtc4etaphitpc[aniter]->AddCutMonitor(cutPass2YPtetaphitpc[aniter], cutFail2YPtetaphitpc[aniter]);
284
04e7fbb7 285 // cutPass1PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass1%stpcM%i", chrgs[ichg], imult),2);
286 // cutFail1PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail1%stpcM%i", chrgs[ichg], imult),2);
287 // //dtc1etaphitpc[aniter]->AddCutMonitor(cutPass1PIDetaphitpc[aniter], cutFail1PIDetaphitpc[aniter]);
ba642b8c 288
04e7fbb7 289 // cutPass1PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass1%stpcM%i", chrgs[ichg], imult),2);
290 // cutFail1PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail1%stpcM%i", chrgs[ichg], imult),2);
291 // //if(ichg == 4 || ichg == 5 || ichg == 6 || ichg == 7 || ichg == 8 || ichg == 9)
292 // //dtc3etaphitpc[aniter]->AddCutMonitor(cutPass1PIDetaphitpc[aniter], cutFail1PIDetaphitpc[aniter]);
ba642b8c 293
294
295 sqp1cetaphitpc[aniter] = new AliFemtoV0PairCut();
296 sqp1cetaphitpc[aniter]->SetDataType(AliFemtoPairCut::kAOD);
297 sqp1cetaphitpc[aniter]->SetTPCEntranceSepMinimum(0.00001);
298 sqp1cetaphitpc[aniter]->SetTPCExitSepMinimum(-1.);
299 sqp1cetaphitpc[aniter]->SetMinAvgSeparation(0,3);
300 sqp1cetaphitpc[aniter]->SetMinAvgSeparation(1,0);
301 sqp1cetaphitpc[aniter]->SetMinAvgSeparation(2,0);
302 sqp1cetaphitpc[aniter]->SetMinAvgSeparation(3,3);
303
304 sqp2cetaphitpc[aniter] = new AliFemtoV0TrackPairCut(); //lambda-proton
305 sqp2cetaphitpc[aniter]->SetShareQualityMax(1.0); //between V0 daughter and track
306 sqp2cetaphitpc[aniter]->SetShareFractionMax(0.05);
307 sqp2cetaphitpc[aniter]->SetTPCOnly(kTRUE);
308 sqp2cetaphitpc[aniter]->SetDataType(AliFemtoPairCut::kAOD);
309 sqp2cetaphitpc[aniter]->SetTPCEntranceSepMinimum(0.00001);
310 sqp2cetaphitpc[aniter]->SetTPCExitSepMinimum(-1.);
311 sqp2cetaphitpc[aniter]->SetKstarCut(0.04,AliFemtoV0TrackPairCut::kLambda,AliFemtoV0TrackPairCut::kProton); //0 - lambda, 2 - proton
312 sqp2cetaphitpc[aniter]->SetMinAvgSeparation(0,11); //0 - track-pos, 1 - track-neg
313 sqp2cetaphitpc[aniter]->SetMinAvgSeparation(1,0);
314
315 sqp3cetaphitpc[aniter] = new AliFemtoV0TrackPairCut(); //antilambda-antiproton
316 sqp3cetaphitpc[aniter]->SetShareQualityMax(1.0); //between V0 daughter and track
317 sqp3cetaphitpc[aniter]->SetShareFractionMax(0.05);
318 sqp3cetaphitpc[aniter]->SetTPCOnly(kTRUE);
319 sqp3cetaphitpc[aniter]->SetDataType(AliFemtoPairCut::kAOD);
320 sqp3cetaphitpc[aniter]->SetTPCEntranceSepMinimum(0.00001);
321 sqp3cetaphitpc[aniter]->SetTPCExitSepMinimum(-1.);
322 sqp3cetaphitpc[aniter]->SetKstarCut(0.04,AliFemtoV0TrackPairCut::kAntiLambda,AliFemtoV0TrackPairCut::kAntiProton); //1 - antilambda, 3 - antiproton
323 sqp3cetaphitpc[aniter]->SetMinAvgSeparation(0,0); //0 - track-pos, 1 - track-neg
324 sqp3cetaphitpc[aniter]->SetMinAvgSeparation(1,11);
325
326 sqp4cetaphitpc[aniter] = new AliFemtoV0TrackPairCut(); //lambda-antiproton, antilambda-proton
327 sqp4cetaphitpc[aniter]->SetShareQualityMax(1.0); //between V0 daughter and track
328 sqp4cetaphitpc[aniter]->SetShareFractionMax(0.05);
329 sqp4cetaphitpc[aniter]->SetTPCOnly(kTRUE);
330 sqp4cetaphitpc[aniter]->SetDataType(AliFemtoPairCut::kAOD);
331 sqp4cetaphitpc[aniter]->SetTPCEntranceSepMinimum(0.00001);
332 sqp4cetaphitpc[aniter]->SetTPCExitSepMinimum(-1.);
333 //SetMinAvgSeparation w if'ach ponizej
334
335 //sqp3cetaphitpc[aniter] = new AliFemtoPairCutAntiGamma();
336 sqp5cetaphitpc[aniter] = new AliFemtoPairCutRadialDistance();
337 sqp5cetaphitpc[aniter]->SetMagneticFieldSign(-1.0); //-1->field1, 1->field3
338 sqp5cetaphitpc[aniter]->SetPhiStarDifferenceMinimum(0.012);
339 sqp5cetaphitpc[aniter]->SetEtaDifferenceMinimum(0.017);
340 sqp5cetaphitpc[aniter]->SetShareQualityMax(1.0);
341 sqp5cetaphitpc[aniter]->SetShareFractionMax(0.05);
342 sqp5cetaphitpc[aniter]->SetRemoveSameLabel(kFALSE);
343 sqp5cetaphitpc[aniter]->SetMaxEEMinv(0.002);
344 sqp5cetaphitpc[aniter]->SetMaxThetaDiff(0.008);
345 sqp5cetaphitpc[aniter]->SetDataType(AliFemtoPairCut::kAOD);
346 sqp5cetaphitpc[aniter]->SetTPCEntranceSepMinimum(0.0001);
347
348 avgsepcorr[aniter] = new AliFemtoAvgSepCorrFctn(Form("Avgsep%stpcM%i", chrgs[ichg], imult),5000,0,500);
04e7fbb7 349 anetaphitpc[aniter]->SetV0SharedDaughterCut(performSharedDaughterCut);
ba642b8c 350
351 if(ichg == 0) //V0LL
352 {
353 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
354 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);
355 anetaphitpc[aniter]->SetSecondParticleCut(dtc1etaphitpc[aniter]);
356 anetaphitpc[aniter]->SetPairCut(sqp1cetaphitpc[aniter]);
357 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kV0s);
358 }
359 else if(ichg == 1) //V0ALAL
360 {
361 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
362 anetaphitpc[aniter]->SetFirstParticleCut(dtc2etaphitpc[aniter]);
363 anetaphitpc[aniter]->SetSecondParticleCut(dtc2etaphitpc[aniter]);
364 anetaphitpc[aniter]->SetPairCut(sqp1cetaphitpc[aniter]);
365 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kV0s);
366 }
367 else if(ichg == 2) //VOLAL
368 {
369 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
370 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);
371 anetaphitpc[aniter]->SetSecondParticleCut(dtc2etaphitpc[aniter]);
372 anetaphitpc[aniter]->SetPairCut(sqp1cetaphitpc[aniter]);
373 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kV0s);
374 }
375 else if(ichg == 3) //V0PL
376 {
377 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
378 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);
379 anetaphitpc[aniter]->SetSecondParticleCut(dtc3etaphitpc[aniter]);
380 anetaphitpc[aniter]->SetPairCut(sqp2cetaphitpc[aniter]);
381 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTrackV0);
382 }
383 else if(ichg == 4) //V0APL
384 {
385 sqp4cetaphitpc[aniter]->SetMinAvgSeparation(0,0); //0 - track-pos, 1 - track-neg
386 sqp4cetaphitpc[aniter]->SetMinAvgSeparation(1,11);
387 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
388 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);
389 anetaphitpc[aniter]->SetSecondParticleCut(dtc4etaphitpc[aniter]);
390 anetaphitpc[aniter]->SetPairCut(sqp4cetaphitpc[aniter]);
391 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTrackV0);
392 }
393 else if(ichg == 5) //V0PAL
394 {
395 sqp4cetaphitpc[aniter]->SetMinAvgSeparation(0,11); //0 - track-pos, 1 - track-neg
396 sqp4cetaphitpc[aniter]->SetMinAvgSeparation(1,0);
397 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
398 anetaphitpc[aniter]->SetFirstParticleCut(dtc2etaphitpc[aniter]);
399 anetaphitpc[aniter]->SetSecondParticleCut(dtc3etaphitpc[aniter]);
400 anetaphitpc[aniter]->SetPairCut(sqp4cetaphitpc[aniter]);
401 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTrackV0);
402 }
403 else if(ichg == 6) //V0APAL
404 {
405 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
406 anetaphitpc[aniter]->SetFirstParticleCut(dtc2etaphitpc[aniter]);
407 anetaphitpc[aniter]->SetSecondParticleCut(dtc4etaphitpc[aniter]);
408 anetaphitpc[aniter]->SetPairCut(sqp3cetaphitpc[aniter]);
409 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTrackV0);
410 }
411 else if(ichg ==7) //PP
412 {
413 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
414 anetaphitpc[aniter]->SetFirstParticleCut(dtc3etaphitpc[aniter]);
415 anetaphitpc[aniter]->SetSecondParticleCut(dtc3etaphitpc[aniter]);
416 anetaphitpc[aniter]->SetPairCut(sqp5cetaphitpc[aniter]);
417 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTracks);
418 }
419 else if(ichg ==8) //PAP
420 {
421 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
422 anetaphitpc[aniter]->SetFirstParticleCut(dtc3etaphitpc[aniter]);
423 anetaphitpc[aniter]->SetSecondParticleCut(dtc4etaphitpc[aniter]);
424 anetaphitpc[aniter]->SetPairCut(sqp5cetaphitpc[aniter]);
425 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTracks);
426 }
427 else if(ichg ==9) //APAP
428 {
429 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
430 anetaphitpc[aniter]->SetFirstParticleCut(dtc4etaphitpc[aniter]);
431 anetaphitpc[aniter]->SetSecondParticleCut(dtc4etaphitpc[aniter]);
432 anetaphitpc[aniter]->SetPairCut(sqp5cetaphitpc[aniter]);
433 avgsepcorr[aniter]->SetPairType(AliFemtoAvgSepCorrFctn::kTracks);
434 }
435
436 anetaphitpc[aniter]->AddCorrFctn(avgsepcorr[aniter]);
437
438 //cylmetaphitpc[aniter] = new AliFemtoCorrFctnDirectYlm(Form("cylm%stpcM%i", chrgs[ichg], imult),3,nbinssh,0.0,shqmax,runshlcms);
439 //anetaphitpc[aniter]->AddCorrFctn(cylmetaphitpc[aniter]);
440
04e7fbb7 441 //cqinvnclstpc[aniter] = new AliFemtoCorrFctnTPCNcls(Form("cqinvncls%stpcM%i", chrgs[ichg], imult),nbinssh,0.0,shqmax);
442 //anetaphitpc[aniter]->AddCorrFctn(cqinvnclstpc[aniter]);
ba642b8c 443
444 //cdedpetaphi[aniter] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%i", chrgs[ichg], imult),45, 45);
445 //anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[aniter]);
446
447
448 // cqinvtitpc[aniter] = new AliFemtoTPCInnerCorrFctn(Form("cqinvti%stpcM%i", chrgs[ichg], imult),nbinssh,0.0,shqmax);
449 // anetaphitpc[aniter]->AddCorrFctn(cqinvtitpc[aniter]);
450
451 if(ichg==3 || ichg==4 || ichg==5 || ichg==6 || ichg==8) { //PL, APL, PAL, APAL, PAP
452 cnonidtpc[aniter] = new AliFemtoCorrFctnNonIdDR(Form("cnonid%stpcM%i", chrgs[ichg], imult), nbinssh, 0.0,shqmax);
453 anetaphitpc[aniter]->AddCorrFctn(cnonidtpc[aniter]);
454 }
455 else {
456 cqinvtpc[aniter] = new AliFemtoQinvCorrFctn(Form("cqinv%stpcM%i", chrgs[ichg], imult),nbinssh,0.0,shqmax);
457 anetaphitpc[aniter]->AddCorrFctn(cqinvtpc[aniter]);
458 }
459
460 // cylmkttpc[aniter] = new AliFemtoCorrFctnDirectYlm(Form("cylm%stpcM%i", chrgs[ichg], imult),3, nbinssh, 0.0,shqmax, runshlcms);
461 // anetaphitpc[aniter]->AddCorrFctn(cylmkttpc[aniter]);
462
463 if (runktdep)
464 {
465 int ktm;
466 for (int ikt=0; ikt<numOfkTBins; ikt++) {
467 ktm = aniter*numOfkTBins + ikt;
468 ktpcuts[ktm] = new AliFemtoKTPairCut(ktrng[ikt], ktrng[ikt+1]);
469
470 cylmkttpc[ktm] = new AliFemtoCorrFctnDirectYlm(Form("cylm%stpcM%ikT%i", chrgs[ichg], imult, ikt),3,nbinssh, 0.0,shqmax,runshlcms);
471 cylmkttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
472 anetaphitpc[aniter]->AddCorrFctn(cylmkttpc[ktm]);
473
474 //cdedpetaphi[ktm] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%ikT%i", chrgs[ichg], imult,ikt),45, 45);
475 // cdedpetaphi[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
476 //anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[ktm]);
477
478 //if(ichg==3 || ichg==4 || ichg==5 || ichg==6 || ichg==8) { //PL, APL, PAL, APAL, PAP
479 //cnonidtpc[ktm] = new AliFemtoCorrFctnNonIdDR(Form("cnonid%stpcM%ikT%i", chrgs[ichg], imult,ikt),nbinssh, 0.0,shqmax);
480 //cnonidtpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
481 //anetaphitpc[aniter]->AddCorrFctn(cnonidtpc[ktm]);
482 //}
483
484 //else{
485 //cqinvkttpc[ktm] = new AliFemtoQinvCorrFctn(Form("cqinv%stpcM%ikT%i", chrgs[ichg], imult, ikt),nbinssh,0.0,shqmax);
486 //cqinvkttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
487 //anetaphitpc[aniter]->AddCorrFctn(cqinvkttpc[ktm]);
488
489 //}
490
491 }
492 }
493
494 Manager->AddAnalysis(anetaphitpc[aniter]);
495 }
496 }
497 }
498 }
499 // *** End of analysis
500
501 return Manager;
502}