]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/macros/Train/DEtaDPhi/PID/ESD/ConfigFemtoAnalysis.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / macros / Train / DEtaDPhi / PID / ESD / ConfigFemtoAnalysis.C
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 "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 "AliFemtoCorrFctnNonIdDR.h"
30 #include "AliFemtoShareQualityCorrFctn.h"
31 #include "AliFemtoTPCInnerCorrFctn.h"
32 #include "AliFemtoVertexMultAnalysis.h"
33 #include "AliFemtoCorrFctn3DSpherical.h"
34 #include "AliFemtoChi2CorrFctn.h"
35 #include "AliFemtoCorrFctnTPCNcls.h"
36 #include "AliFemtoBPLCMS3DCorrFctn.h"
37 #include "AliFemtoCorrFctn3DLCMSSym.h"
38 #include "AliFemtoModelBPLCMSCorrFctn.h"
39 #include "AliFemtoModelCorrFctn3DSpherical.h"
40 #include "AliFemtoModelGausLCMSFreezeOutGenerator.h"
41 #include "AliFemtoModelGausRinvFreezeOutGenerator.h"
42 #include "AliFemtoModelManager.h"
43 #include "AliFemtoModelWeightGeneratorBasic.h"
44 #include "AliFemtoModelWeightGeneratorLednicky.h"
45 #include "AliFemtoCorrFctnDirectYlm.h"
46 #include "AliFemtoModelCorrFctnDirectYlm.h"
47 #include "AliFemtoModelCorrFctnSource.h"
48 #include "AliFemtoCutMonitorParticlePtPDG.h"
49 #include "AliFemtoKTPairCut.h"
50 #include "AliFemtoPairCutPt.h"
51 #endif
52
53 //________________________________________________________________________
54 AliFemtoManager* ConfigFemtoAnalysis() {
55
56         double PionMass = 0.13956995;
57         double KaonMass = 0.493677;
58         double ProtonMass = 0.938272013;
59         
60         const int numOfMultBins = 5;    
61         const int numOfChTypes = 13;
62         const int numOfkTbins = 2;
63
64         int runmults[numOfMultBins] = {1, 1, 1, 0, 1};
65         int multbins[numOfMultBins+1] = {2, 20, 50,150,2,150};
66         
67         int runch[numOfChTypes] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
68         const char *chrgs[numOfChTypes] = { "PP", "aPaP", "PaP", "KpKp", "KmKm", "KpKm", "PIpPIp", "PImPIm", "PIpPIm", "all", "plus", "minus", "mixed" };
69         
70         int runktdep = 0;
71         double ktrng[numOfkTbins+1] = {0.0, 0.7, 100.0};
72
73         int runqinv = 1;
74         int runshlcms = 1;// 0:PRF(PAP), 1:LCMS(PP,APAP)
75
76         int runtype = 0; // Types 0 - global, 1 - ITS only, 2 - TPC Inner       //global tracks ->mfit ITS+TPC
77         int isrealdata = 1;
78
79         int gammacut = 1;       // cut na ee z gamma 
80         
81         double shqmax = 0.5; 
82         int nbinssh = 100;
83
84         AliFemtoEventReaderESDChain *Reader = new AliFemtoEventReaderESDChain();
85         Reader->SetUseMultiplicity(AliFemtoEventReaderESDChain::kReferenceITSTPC);
86         
87         //AliFemtoEventReaderAODChain *Reader = new AliFemtoEventReaderAODChain();
88         //Reader->SetFilterBit(7);
89         // //Reader->SetCentralityPreSelection(0.001, 910);
90
91         AliFemtoManager* Manager = new AliFemtoManager();
92         Manager->SetEventReader(Reader);
93
94         AliFemtoVertexMultAnalysis              *anetaphitpc[320];
95         AliFemtoBasicEventCut                            *mecetaphitpc[320];
96         AliFemtoCutMonitorEventMult      *cutPassEvMetaphitpc[320];
97         AliFemtoCutMonitorEventMult      *cutFailEvMetaphitpc[320];
98         AliFemtoCutMonitorEventVertex *cutPassEvVetaphitpc[320];
99         AliFemtoCutMonitorEventVertex *cutFailEvVetaphitpc[320];
100         AliFemtoESDTrackCut                                      *dtc1etaphitpc[320];
101         AliFemtoESDTrackCut                                      *dtc2etaphitpc[320];
102         AliFemtoESDTrackCut                                      *dtc3etaphitpc[320];
103         AliFemtoESDTrackCut                                      *dtc4etaphitpc[320];
104         AliFemtoESDTrackCut                                      *dtc5etaphitpc[320];
105         AliFemtoESDTrackCut                                      *dtc6etaphitpc[320];
106         AliFemtoESDTrackCut                                      *dtc7etaphitpc[320];
107         AliFemtoESDTrackCut                                      *dtc8etaphitpc[320];
108         AliFemtoESDTrackCut                                      *dtc9etaphitpc[320];
109         AliFemtoCutMonitorParticleYPt *cutPass1YPtetaphitpc[320];
110         AliFemtoCutMonitorParticleYPt *cutFail1YPtetaphitpc[320];
111         AliFemtoCutMonitorParticlePID *cutPass1PIDetaphitpc[320];
112         AliFemtoCutMonitorParticlePID *cutFail1PIDetaphitpc[320];
113         AliFemtoCutMonitorParticleYPt *cutPass2YPtetaphitpc[320];
114         AliFemtoCutMonitorParticleYPt *cutFail2YPtetaphitpc[320];
115         AliFemtoCutMonitorParticlePID *cutPass2PIDetaphitpc[320];
116         AliFemtoCutMonitorParticlePID *cutFail2PIDetaphitpc[320];
117         AliFemtoCutMonitorParticleYPt *cutPass3YPtetaphitpc[320];
118         AliFemtoCutMonitorParticleYPt *cutFail3YPtetaphitpc[320];
119         AliFemtoCutMonitorParticlePID *cutPass3PIDetaphitpc[320];
120         AliFemtoCutMonitorParticlePID *cutFail3PIDetaphitpc[320];
121         AliFemtoCutMonitorParticleYPt *cutPass4YPtetaphitpc[320];
122         AliFemtoCutMonitorParticleYPt *cutFail4YPtetaphitpc[320];
123         AliFemtoCutMonitorParticlePID *cutPass4PIDetaphitpc[320];
124         AliFemtoCutMonitorParticlePID *cutFail4PIDetaphitpc[320];
125         AliFemtoCutMonitorParticleYPt *cutPass5YPtetaphitpc[320];
126         AliFemtoCutMonitorParticleYPt *cutFail5YPtetaphitpc[320];
127         AliFemtoCutMonitorParticlePID *cutPass5PIDetaphitpc[320];
128         AliFemtoCutMonitorParticlePID *cutFail5PIDetaphitpc[320];
129         AliFemtoCutMonitorParticleYPt *cutPass6YPtetaphitpc[320];
130         AliFemtoCutMonitorParticleYPt *cutFail6YPtetaphitpc[320];
131         AliFemtoCutMonitorParticlePID *cutPass6PIDetaphitpc[320];
132         AliFemtoCutMonitorParticlePID *cutFail6PIDetaphitpc[320];
133         //       AliFemtoPairCutAntiGamma                       *sqpcetaphitpcdiff[320];
134         //       AliFemtoShareQualityTPCEntranceSepPairCut                      *sqpcetaphitpcsame[320];
135         AliFemtoPairCutAntiGamma                        *sqpcetaphitpc[320];
136         //      AliFemtoPairCutRadialDistance                   *sqpcetaphitpc[320];
137         //      AliFemtoChi2CorrFctn                                    *cchiqinvetaphitpc[320];
138         AliFemtoPairCutPt                                                *ktpcuts[320];
139         AliFemtoQinvCorrFctn                                    *cqinvkttpc[320];
140         AliFemtoQinvCorrFctn                                    *cqinvtpc[320];
141         AliFemtoCorrFctnDEtaDPhi                        *cdedpetaphi[320];
142
143
144         
145         // *** Third QA task - HBT analysis with all pair cuts off, TPC only ***
146         // *** Begin pion-pion (positive) analysis ***
147         int aniter = 0; 
148
149         for (int imult = 0; imult < numOfMultBins; imult++)
150         {
151                 if (runmults[imult])
152                 {
153                         for (int ichg = 0; ichg < numOfChTypes; ichg++)
154                         {
155                                 if (runch[ichg])
156                                 {
157
158                                         aniter = ichg * numOfMultBins + imult;
159                                         anetaphitpc[aniter] = new AliFemtoVertexMultAnalysis(8, -8.0, 8.0, 6, multbins[imult], multbins[imult+1]);
160                                         anetaphitpc[aniter]->SetNumEventsToMix(10);
161                                         anetaphitpc[aniter]->SetMinSizePartCollection(1);
162
163                                         mecetaphitpc[aniter] = new AliFemtoBasicEventCut();
164                                         mecetaphitpc[aniter]->SetEventMult(0.001,100000);
165                                         mecetaphitpc[aniter]->SetVertZPos(-8,8);//cm
166
167                                         //if (isrealdata)mecetaphitpc[aniter]->SetAcceptOnlyPhysics(kTRUE);
168                                 
169                                         cutPassEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutPass%stpcM%i", chrgs[ichg], imult));
170                                         cutFailEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutFail%stpcM%i", chrgs[ichg], imult));
171                                         mecetaphitpc[aniter]->AddCutMonitor(cutPassEvMetaphitpc[aniter], cutFailEvMetaphitpc[aniter]);
172                 
173                                         cutPassEvVetaphitpc[aniter] = new AliFemtoCutMonitorEventVertex(Form("cutPass%stpcM%i", chrgs[ichg], imult));
174                                         cutFailEvVetaphitpc[aniter] = new AliFemtoCutMonitorEventVertex(Form("cutFail%stpcM%i", chrgs[ichg], imult));
175                                         mecetaphitpc[aniter]->AddCutMonitor(cutPassEvVetaphitpc[aniter], cutFailEvVetaphitpc[aniter]);
176                 
177                                         dtc1etaphitpc[aniter] = new AliFemtoESDTrackCut();
178                                         dtc2etaphitpc[aniter] = new AliFemtoESDTrackCut();
179                                         dtc3etaphitpc[aniter] = new AliFemtoESDTrackCut();
180                                         dtc4etaphitpc[aniter] = new AliFemtoESDTrackCut();
181                                         dtc5etaphitpc[aniter] = new AliFemtoESDTrackCut();
182                                         dtc6etaphitpc[aniter] = new AliFemtoESDTrackCut();
183                                         dtc7etaphitpc[aniter] = new AliFemtoESDTrackCut();
184                                         dtc8etaphitpc[aniter] = new AliFemtoESDTrackCut();
185                                         dtc9etaphitpc[aniter] = new AliFemtoESDTrackCut();
186
187                                         dtc1etaphitpc[aniter]->SetCharge(1.0);
188                                         dtc2etaphitpc[aniter]->SetCharge(-1.0);
189                                         dtc3etaphitpc[aniter]->SetCharge(1.0);
190                                         dtc4etaphitpc[aniter]->SetCharge(-1.0);
191                                         dtc5etaphitpc[aniter]->SetCharge(1.0);
192                                         dtc6etaphitpc[aniter]->SetCharge(-1.0);
193                                         dtc8etaphitpc[aniter]->SetCharge(1.0);
194                                         dtc9etaphitpc[aniter]->SetCharge(-1.0);
195                                                         
196
197                                         dtc1etaphitpc[aniter]->SetEta(-1.0,1.0);
198                                         dtc1etaphitpc[aniter]->SetPt(0.5,20);
199                                         dtc1etaphitpc[aniter]->SetMass(ProtonMass);             
200                                         dtc1etaphitpc[aniter]->SetMostProbableProton();
201                                         dtc2etaphitpc[aniter]->SetEta(-1.0,1.0);
202                                         dtc2etaphitpc[aniter]->SetPt(0.5,20);
203                                         dtc2etaphitpc[aniter]->SetMass(ProtonMass);             
204                                         dtc2etaphitpc[aniter]->SetMostProbableProton();
205                                         dtc3etaphitpc[aniter]->SetEta(-1.0,1.0);
206                                         dtc3etaphitpc[aniter]->SetPt(0.3,20);
207                                         dtc3etaphitpc[aniter]->SetMass(KaonMass);
208                                         dtc3etaphitpc[aniter]->SetMostProbableKaon();
209                                         dtc4etaphitpc[aniter]->SetEta(-1.0,1.0);
210                                         dtc4etaphitpc[aniter]->SetPt(0.3,20);
211                                         dtc4etaphitpc[aniter]->SetMass(KaonMass);               
212                                         dtc4etaphitpc[aniter]->SetMostProbableKaon();
213                                         dtc5etaphitpc[aniter]->SetEta(-1.0,1.0);
214                                         dtc5etaphitpc[aniter]->SetPt(0.2,20);
215                                         dtc5etaphitpc[aniter]->SetMass(PionMass);               
216                                         dtc5etaphitpc[aniter]->SetMostProbablePion();
217                                         dtc6etaphitpc[aniter]->SetEta(-1.0,1.0);
218                                         dtc6etaphitpc[aniter]->SetPt(0.2,20);
219                                         dtc6etaphitpc[aniter]->SetMass(PionMass);               
220                                         dtc6etaphitpc[aniter]->SetMostProbablePion();
221                                         dtc7etaphitpc[aniter]->SetEta(-1.0,1.0);
222                                         dtc7etaphitpc[aniter]->SetPt(0.2,20);
223                                         dtc8etaphitpc[aniter]->SetEta(-1.0,1.0);
224                                         dtc8etaphitpc[aniter]->SetPt(0.2,20);
225                                         dtc9etaphitpc[aniter]->SetEta(-1.0,1.0);
226                                         dtc9etaphitpc[aniter]->SetPt(0.2,20);
227
228                                 // Track quality cuts
229
230                                         if (runtype == 0)
231                                         {
232                                                 if(ichg==0 || ichg==2)
233                                                 {
234                                                         dtc1etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
235                                                         dtc1etaphitpc[aniter]->SetminTPCncls(70);
236                                                         dtc1etaphitpc[aniter]->SetRemoveKinks(kTRUE);
237                                                         dtc1etaphitpc[aniter]->SetLabel(kFALSE);
238                                                         //      dtc1etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
239                                                         dtc1etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);   // pisac
240                                                         dtc1etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01);        //      DCA xy
241                                                         //      dtc1etaphitpc[aniter]->SetMaxImpactXYPtDep(0.0182, 0.0350, -1.01);
242                                                         dtc1etaphitpc[aniter]->SetMaxImpactZ(2);        //DCA Z
243                                                         //      dtc1etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
244                                                 }
245                                                 if(ichg==1 || ichg==2)
246                                                 {
247                                                         dtc2etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
248                                                         dtc2etaphitpc[aniter]->SetminTPCncls(70);
249                                                         dtc2etaphitpc[aniter]->SetRemoveKinks(kTRUE);
250                                                         dtc2etaphitpc[aniter]->SetLabel(kFALSE);
251                                                         //      dtc2etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
252                                                         dtc2etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
253                                                         dtc2etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01) ;
254                                                         //      dtc2etaphitpc[aniter]->SetMaxImpactXYPtDep(0.0182, 0.0350, -1.01);
255                                                         dtc2etaphitpc[aniter]->SetMaxImpactZ(2);
256                                                         //      dtc2etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
257                                                 }
258                                                 if(ichg==3 || ichg==5)
259                                                 {
260                                                         dtc3etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
261                                                         dtc3etaphitpc[aniter]->SetminTPCncls(70);
262                                                         dtc3etaphitpc[aniter]->SetRemoveKinks(kTRUE);
263                                                         dtc3etaphitpc[aniter]->SetLabel(kFALSE);
264                                                         //      dtc3etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
265                                                         dtc3etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
266                                                         dtc3etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01) ;
267                                                         //      dtc3etaphitpc[aniter]->SetMaxImpactXYPtDep(0.0182, 0.0350, -1.01);
268                                                         dtc3etaphitpc[aniter]->SetMaxImpactZ(2);
269                                                         //      dtc3etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
270                                                 }
271                                                 if(ichg==4 || ichg==5)
272                                                 {
273                                                         dtc4etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
274                                                         dtc4etaphitpc[aniter]->SetminTPCncls(70);
275                                                         dtc4etaphitpc[aniter]->SetRemoveKinks(kTRUE);
276                                                         dtc4etaphitpc[aniter]->SetLabel(kFALSE);
277                                                         //      dtc4etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
278                                                         dtc4etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
279                                                         dtc4etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01) ;
280                                                         //      dtc4etaphitpc[aniter]->SetMaxImpactXYPtDep(0.0182, 0.0350, -1.01);
281                                                         dtc4etaphitpc[aniter]->SetMaxImpactZ(2);
282                                                         //      dtc4etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
283                                                 }
284                                                 if(ichg==6 || ichg==8)
285                                                 {
286                                                         dtc5etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
287                                                         dtc5etaphitpc[aniter]->SetminTPCncls(70);
288                                                         dtc5etaphitpc[aniter]->SetRemoveKinks(kTRUE);
289                                                         dtc5etaphitpc[aniter]->SetLabel(kFALSE);
290                                                         //      dtc5etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
291                                                         dtc5etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
292                                                         dtc5etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01) ;
293                                                         //      dtc5etaphitpc[aniter]->SetMaxImpactXYPtDep(0.0182, 0.0350, -1.01);
294                                                         dtc5etaphitpc[aniter]->SetMaxImpactZ(2);
295                                                         //      dtc5etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
296                                                 }
297                                                 if(ichg==7 || ichg ==8)
298                                                 {
299                                                         dtc6etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
300                                                         dtc6etaphitpc[aniter]->SetminTPCncls(70);
301                                                         dtc6etaphitpc[aniter]->SetRemoveKinks(kTRUE);
302                                                         dtc6etaphitpc[aniter]->SetLabel(kFALSE);
303                                                         //      dtc6etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
304                                                         dtc6etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
305                                                         dtc6etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01) ;
306                                                         //      dtc6etaphitpc[aniter]->SetMaxImpactXYPtDep(0.0182, 0.0350, -1.01);
307                                                         dtc6etaphitpc[aniter]->SetMaxImpactZ(2);
308                                                         //      dtc6etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
309                                                 }
310
311                                                 if(ichg==9)
312                                                 {
313                                                         dtc7etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
314                                                         dtc7etaphitpc[aniter]->SetminTPCncls(70);
315                                                         dtc7etaphitpc[aniter]->SetRemoveKinks(kTRUE);
316                                                         dtc7etaphitpc[aniter]->SetLabel(kFALSE);
317                                                         //      dtc6etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
318                                                         dtc7etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
319                                                         dtc7etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01) ;
320                                                         //      dtc6etaphitpc[aniter]->SetMaxImpactXYPtDep(0.0182, 0.0350, -1.01);
321                                                         dtc7etaphitpc[aniter]->SetMaxImpactZ(2);
322                                                         //      dtc6etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
323                                                 }
324                                                 if(ichg==10 || ichg==12)
325                                                 {
326                                                         dtc8etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
327                                                         dtc8etaphitpc[aniter]->SetminTPCncls(70);
328                                                         dtc8etaphitpc[aniter]->SetRemoveKinks(kTRUE);
329                                                         dtc8etaphitpc[aniter]->SetLabel(kFALSE);
330                                                         //      dtc6etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
331                                                         dtc8etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
332                                                         dtc8etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01) ;
333                                                         //      dtc6etaphitpc[aniter]->SetMaxImpactXYPtDep(0.0182, 0.0350, -1.01);
334                                                         dtc8etaphitpc[aniter]->SetMaxImpactZ(2);
335                                                         //      dtc6etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
336                                                 }
337
338                                                 if(ichg==11 || ichg==12)
339                                                 {
340                                                         dtc9etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
341                                                         dtc9etaphitpc[aniter]->SetminTPCncls(70);
342                                                         dtc9etaphitpc[aniter]->SetRemoveKinks(kTRUE);
343                                                         dtc9etaphitpc[aniter]->SetLabel(kFALSE);
344                                                         //      dtc6etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
345                                                         dtc9etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
346                                                         dtc9etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01) ;
347                                                         //      dtc6etaphitpc[aniter]->SetMaxImpactXYPtDep(0.0182, 0.0350, -1.01);
348                                                         dtc9etaphitpc[aniter]->SetMaxImpactZ(2);
349                                                         //      dtc6etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
350                                                 }
351
352                                         }
353                                         else if (runtype == 1)
354                                         {
355                                                 ;
356                                         }
357                                         else if (runtype == 2)
358                                         {
359                                                 ;
360                                         }
361                                         if(ichg==0 || ichg==2)
362                                         {
363                                                 cutPass1YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutPass1%stpcM%i", chrgs[ichg], imult),ProtonMass);
364                                                 cutFail1YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutFail1%stpcM%i", chrgs[ichg], imult),ProtonMass);
365                                                 dtc1etaphitpc[aniter]->AddCutMonitor(cutPass1YPtetaphitpc[aniter], cutFail1YPtetaphitpc[aniter]);
366                                                 cutPass1PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass1%stpcM%i", chrgs[ichg], imult),2);//0-pion,1-kaon,2-proton
367                                                 cutFail1PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail1%stpcM%i", chrgs[ichg], imult),2);
368                                                 dtc1etaphitpc[aniter]->AddCutMonitor(cutPass1PIDetaphitpc[aniter], cutFail1PIDetaphitpc[aniter]);
369                                         }
370                                         if(ichg==1 || ichg==2)
371                                         {
372                                                 cutPass2YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutPass2%stpcM%i", chrgs[ichg], imult),ProtonMass);
373                                                 cutFail2YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutFail2%stpcM%i", chrgs[ichg], imult),ProtonMass);
374                                                 dtc2etaphitpc[aniter]->AddCutMonitor(cutPass2YPtetaphitpc[aniter], cutFail2YPtetaphitpc[aniter]);
375
376                                                 cutPass2PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass2%stpcM%i", chrgs[ichg], imult),2);//0-pion,1-kaon,2-proton
377                                                 cutFail2PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail2%stpcM%i", chrgs[ichg], imult),2);
378                                                 dtc2etaphitpc[aniter]->AddCutMonitor(cutPass2PIDetaphitpc[aniter], cutFail2PIDetaphitpc[aniter]);
379                                         }
380
381                                         if(ichg==3 || ichg==5)
382                                         {
383                                                 cutPass3YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutPass3%stpcM%i", chrgs[ichg], imult),KaonMass);
384                                                 cutFail3YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutFail3%stpcM%i", chrgs[ichg], imult),KaonMass);
385                                                 dtc3etaphitpc[aniter]->AddCutMonitor(cutPass3YPtetaphitpc[aniter], cutFail3YPtetaphitpc[aniter]);
386                                                 cutPass3PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass3%stpcM%i", chrgs[ichg], imult),1);//0-pion,1-kaon,2-proton
387                                                 cutFail3PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail3%stpcM%i", chrgs[ichg], imult),1);
388                                                 dtc3etaphitpc[aniter]->AddCutMonitor(cutPass3PIDetaphitpc[aniter], cutFail3PIDetaphitpc[aniter]);
389                                         }
390                                         if(ichg==4 || ichg==5)
391                                         {
392                                                 cutPass4YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutPass4%stpcM%i", chrgs[ichg], imult),KaonMass);
393                                                 cutFail4YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutFail4%stpcM%i", chrgs[ichg], imult),KaonMass);
394                                                 dtc4etaphitpc[aniter]->AddCutMonitor(cutPass4YPtetaphitpc[aniter], cutFail4YPtetaphitpc[aniter]);
395
396                                                 cutPass4PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass4%stpcM%i", chrgs[ichg], imult),1);//0-pion,1-kaon,2-proton
397                                                 cutFail4PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail4%stpcM%i", chrgs[ichg], imult),1);
398                                                 dtc4etaphitpc[aniter]->AddCutMonitor(cutPass4PIDetaphitpc[aniter], cutFail4PIDetaphitpc[aniter]);
399                                         }
400
401                                         if(ichg==6 || ichg==8)
402                                         {
403                                                 cutPass5YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutPass5%stpcM%i", chrgs[ichg], imult),PionMass);
404                                                 cutFail5YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutFail5%stpcM%i", chrgs[ichg], imult),PionMass);
405                                                 dtc5etaphitpc[aniter]->AddCutMonitor(cutPass5YPtetaphitpc[aniter], cutFail5YPtetaphitpc[aniter]);
406                                                 cutPass5PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass5%stpcM%i", chrgs[ichg], imult),0);//0-pion,1-kaon,2-proton
407                                                 cutFail5PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail5%stpcM%i", chrgs[ichg], imult),0);
408                                                 dtc5etaphitpc[aniter]->AddCutMonitor(cutPass5PIDetaphitpc[aniter], cutFail5PIDetaphitpc[aniter]);
409                                         }
410                                         if(ichg==7 || ichg==8)
411                                         {
412                                                 cutPass6YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutPass6%stpcM%i", chrgs[ichg], imult),PionMass);
413                                                 cutFail6YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutFail6%stpcM%i", chrgs[ichg], imult),PionMass);
414                                                 dtc6etaphitpc[aniter]->AddCutMonitor(cutPass6YPtetaphitpc[aniter], cutFail6YPtetaphitpc[aniter]);
415
416                                                 cutPass6PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass6%stpcM%i", chrgs[ichg], imult),0);//0-pion,1-kaon,2-proton
417                                                 cutFail6PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail6%stpcM%i", chrgs[ichg], imult),0);
418                                                 dtc6etaphitpc[aniter]->AddCutMonitor(cutPass6PIDetaphitpc[aniter], cutFail6PIDetaphitpc[aniter]);
419                                         }
420                                         if(ichg>8)
421                                           {
422                                             cutPass6YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutPass%stpcM%i", chrgs[ichg], imult),PionMass);
423                                             cutFail6YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutFail%stpcM%i", chrgs[ichg], imult),PionMass);
424                                             if(ichg==9) dtc7etaphitpc[aniter]->AddCutMonitor(cutPass6YPtetaphitpc[aniter], cutFail6YPtetaphitpc[aniter]);
425                                             if(ichg==10 || ichg==12) dtc8etaphitpc[aniter]->AddCutMonitor(cutPass6YPtetaphitpc[aniter], cutFail6YPtetaphitpc[aniter]);
426                                             if(ichg==11 || ichg==12) dtc9etaphitpc[aniter]->AddCutMonitor(cutPass6YPtetaphitpc[aniter], cutFail6YPtetaphitpc[aniter]);
427
428                                             cutPass6PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass%stpcM%i", chrgs[ichg], imult),0);//0-pion,1-kaon,2-proton
429                                             cutFail6PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail%stpcM%i", chrgs[ichg], imult),0);
430                                             if(ichg==9) dtc7etaphitpc[aniter]->AddCutMonitor(cutPass6PIDetaphitpc[aniter], cutFail6PIDetaphitpc[aniter]);
431                                             if(ichg==10 || ichg==12) dtc8etaphitpc[aniter]->AddCutMonitor(cutPass6PIDetaphitpc[aniter], cutFail6PIDetaphitpc[aniter]);
432                                             if(ichg==11 || ichg==12) dtc9etaphitpc[aniter]->AddCutMonitor(cutPass6PIDetaphitpc[aniter], cutFail6PIDetaphitpc[aniter]);
433                                           }
434
435                                         sqpcetaphitpc[aniter] = new AliFemtoPairCutAntiGamma();
436
437                                         if (runtype == 0)
438                                         {
439                                                 sqpcetaphitpc[aniter]->SetShareQualityMax(1.0);         // two track cuts on splitting and merging
440                                                 sqpcetaphitpc[aniter]->SetShareFractionMax(0.05);       //  ile moga miec wspolnych klastrow
441                                                 sqpcetaphitpc[aniter]->SetRemoveSameLabel(kFALSE);
442                                                 // sqpcetaphitpc[aniter]->SetMaxEEMinv(0.0);
443                                                 // sqpcetaphitpc[aniter]->SetMaxThetaDiff(0.0);
444                                                 //      sqpcetaphitpc[aniter]->SetTPCEntranceSepMinimum(1.5);
445                                                 // sqpcetaphitpc[aniter]->SetRadialDistanceMinimum(0.12, 0.03);
446                                                 //      sqpcetaphitpc[aniter]->SetEtaDifferenceMinimum(0.02);
447                                         }
448                                         else if (runtype == 1)
449                                         {
450                                                 sqpcetaphitpc[aniter]->SetShareQualityMax(1.0);
451                                                 sqpcetaphitpc[aniter]->SetShareFractionMax(1.05);
452                                                 sqpcetaphitpc[aniter]->SetRemoveSameLabel(kFALSE);
453                                                 // sqpcetaphitpc[aniter]->SetMaxEEMinv(0.002);
454                                                 // sqpcetaphitpc[aniter]->SetMaxThetaDiff(0.008);
455                                                 //      sqpcetaphitpc[aniter]->SetTPCEntranceSepMinimum(5.0);
456                                                 // sqpcetaphitpc[aniter]->SetRadialDistanceMinimum(1.2, 0.03);
457                                                 //      sqpcetaphitpc[aniter]->SetEtaDifferenceMinimum(0.02);
458                                         }
459                                         else if (runtype == 2)
460                                         {
461                                                 sqpcetaphitpc[aniter]->SetDataType(kESD);
462                                                 sqpcetaphitpc[aniter]->SetShareQualityMax(1.0);
463                                                 sqpcetaphitpc[aniter]->SetShareFractionMax(0.05);
464                                                 sqpcetaphitpc[aniter]->SetRemoveSameLabel(kFALSE);
465
466                                                 if (gammacut == 0)
467                                                 {
468                                                         sqpcetaphitpc[aniter]->SetMaxEEMinv(0.0);
469                                                         sqpcetaphitpc[aniter]->SetMaxThetaDiff(0.0);
470                                                 }
471                                                 else if (gammacut == 1)
472                                                 { 
473                                                         sqpcetaphitpc[aniter]->SetMaxEEMinv(0.002);
474                                                         sqpcetaphitpc[aniter]->SetMaxThetaDiff(0.008);
475                                                 }
476                                         }
477                 
478                                         anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
479
480                                         if(ichg==0)
481                                         {
482                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);
483                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc1etaphitpc[aniter]);
484                                         }
485                                         if(ichg==1)
486                                         {
487                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc2etaphitpc[aniter]);
488                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc2etaphitpc[aniter]);
489                                         }
490                                         if(ichg==2)
491                                         {
492                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);
493                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc2etaphitpc[aniter]);
494                                         }
495                                         if(ichg==3)
496                                         {
497                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc3etaphitpc[aniter]);
498                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc3etaphitpc[aniter]);
499                                         }
500                                         if(ichg==4)
501                                         {
502                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc4etaphitpc[aniter]);
503                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc4etaphitpc[aniter]);
504                                         
505                                         }
506                                         if(ichg==5)
507                                         {
508                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc3etaphitpc[aniter]);
509                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc4etaphitpc[aniter]);
510                                         }
511                                         if(ichg==6)
512                                         {
513                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc5etaphitpc[aniter]);
514                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc5etaphitpc[aniter]);
515                                         }
516                                         if(ichg==7)
517                                         {
518                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc6etaphitpc[aniter]);
519                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc6etaphitpc[aniter]);
520                                         
521                                         }
522                                         if(ichg==8)
523                                         {
524                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc5etaphitpc[aniter]);
525                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc6etaphitpc[aniter]);
526                                         }
527
528                                         if(ichg==9)
529                                         {
530                                           anetaphitpc[aniter]->SetFirstParticleCut(dtc7etaphitpc[aniter]);
531                                           anetaphitpc[aniter]->SetSecondParticleCut(dtc7etaphitpc[aniter]);
532                                         }
533
534                                         if(ichg==10)
535                                         {
536                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc8etaphitpc[aniter]);
537                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc8etaphitpc[aniter]);
538                                         }
539
540                                         if(ichg==11)
541                                         {
542                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc9etaphitpc[aniter]);
543                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc9etaphitpc[aniter]);
544                                          
545                                         }
546                                         if(ichg==12)
547                                         {
548                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc8etaphitpc[aniter]);
549                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc9etaphitpc[aniter]);
550                                         }
551
552
553
554                                         anetaphitpc[aniter]->SetPairCut(sqpcetaphitpc[aniter]);
555                                         cdedpetaphi[aniter] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%i", chrgs[ichg], imult),35, 35);
556                                         anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[aniter]);
557
558                 
559                                         if (runktdep)
560                                         {
561                                                 int ktm;
562                                                 for (int ikt=0; ikt<numOfkTbins; ikt++)
563                                                 {
564                                                         ktm = aniter * numOfkTbins + ikt;
565                                                         ktpcuts[ktm] = new AliFemtoPairCutPt(ktrng[ikt], ktrng[ikt+1]);
566                                 
567                                                         //cqinvkttpc[ktm] = new AliFemtoQinvCorrFctn(Form("cqinv%stpcM%ikT%i", chrgs[ichg], imult, ikt),nbinssh,0.0,(imult>6)?shqmax*2.5:shqmax);
568                                                         //cqinvkttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
569                                                         //anetaphitpc[aniter]->AddCorrFctn(cqinvkttpc[ktm]);
570
571                                                         cdedpetaphi[ktm] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%ipT%i", chrgs[ichg], imult,ikt),35, 35);
572                                                         cdedpetaphi[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
573                                                         anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[ktm]);
574
575                                                 }
576                                         }               
577                                         Manager->AddAnalysis(anetaphitpc[aniter]);      
578                                 }
579                         }
580                 }
581         }
582         // *** End pion-pion (positive) analysis
583
584         return Manager;
585 }