]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/macros/Train/DEtaDPhi/2014/Train8FinalApproval/NoCorrectionsParameters/ConfigFemtoAnalysis.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / macros / Train / DEtaDPhi / 2014 / Train8FinalApproval / NoCorrectionsParameters / ConfigFemtoAnalysis.C
1 /********************************************************************* *                                                                                                                                                                                         *
2  * Configfemtoanalysis.C - configuration macro for the femtoscopic       *
3  * analysis, meant as a QA process for two-particle effects                              *
4  *                                                                                                                                                                                       *
5  * Author: Adam Kisiel (Adam.Kisiel@cern.ch)                                                                     *
6  *                                                                                                                                                                                       *
7  *********************************************************************/
8
9 #if !defined(__CINT__) || defined(__MAKECINT_)
10 #include "AliFemtoManager.h"
11 #include "AliFemtoEventReaderESDChain.h"
12 #include "AliFemtoEventReaderESDChainKine.h"
13 #include "AliFemtoEventReaderAODChain.h"
14 #include "AliFemtoSimpleAnalysis.h"
15 #include "AliFemtoBasicEventCut.h"
16 #include "AliFemtoMJTrackCut.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 "AliFemtoPairCutRadialDistance.h"
27 #include "AliFemtoQinvCorrFctn.h"
28 #include "AliFemtoCorrFctnNonIdDR.h"
29 #include "AliFemtoShareQualityCorrFctn.h"
30 #include "AliFemtoTPCInnerCorrFctn.h"
31 #include "AliFemtoVertexMultAnalysis.h"
32 #include "AliFemtoCorrFctn3DSpherical.h"
33 #include "AliFemtoChi2CorrFctn.h"
34 #include "AliFemtoCorrFctnTPCNcls.h"
35 #include "AliFemtoBPLCMS3DCorrFctn.h"
36 #include "AliFemtoCorrFctn3DLCMSSym.h"
37 #include "AliFemtoModelBPLCMSCorrFctn.h"
38 #include "AliFemtoModelCorrFctn3DSpherical.h"
39 #include "AliFemtoModelGausLCMSFreezeOutGenerator.h"
40 #include "AliFemtoModelGausRinvFreezeOutGenerator.h"
41 #include "AliFemtoModelManager.h"
42 #include "AliFemtoModelWeightGeneratorBasic.h"
43 #include "AliFemtoModelWeightGeneratorLednicky.h"
44 #include "AliFemtoCorrFctnDirectYlm.h"
45 #include "AliFemtoModelCorrFctnDirectYlm.h"
46 #include "AliFemtoModelCorrFctnSource.h"
47 #include "AliFemtoCutMonitorParticlePtPDG.h"
48 #include "AliFemtoKTPairCut.h"
49 #include "AliFemtoPairCutPt.h"
50 #endif
51
52 //________________________________________________________________________
53 AliFemtoManager* ConfigFemtoAnalysis(const char* params) {
54
55         double PionMass = 0.13956995;
56         double KaonMass = 0.493677;
57         double ProtonMass = 0.938272013;
58         
59         const int numOfMultBins = 5;    
60         const int numOfChTypes = 13;
61         const int numOfkTbins = 5;
62
63         char *parameter[20];
64         if(strlen(params)!=0)
65           {
66             parameter[0] = strtok(params, ","); // Splits spaces between words in params
67             cout<<"Parameter [0] (filterbit):"<<parameter[0]<<endl; // Writes first parameter
68             parameter[1] = strtok(NULL, ",");
69             cout<<"Parameter [1] (ktdep):"<<parameter[1]<<" "<<endl;
70             parameter[2] = strtok(NULL, ",");
71             cout<<"Parameter [2] (multdep):"<<parameter[2]<<" "<<endl;    
72             parameter[3] = strtok(NULL, ",");
73             cout<<"Parameter [3]: (MinPlpContribSPD)"<<parameter[3]<<" "<<endl;
74             parameter[4] = strtok(NULL, ",");
75             cout<<"Parameter [4]: (multbino)"<<parameter[4]<<" "<<endl;
76             parameter[5] = strtok(NULL, ",");
77             cout<<"Parameter [5]: (zvertbino)"<<parameter[5]<<" "<<endl;
78             parameter[6] = strtok(NULL, ",");
79             cout<<"Parameter [6]: (ifGlobalTracks=true/false)"<<parameter[6]<<" "<<endl;
80             parameter[7] = strtok(NULL, ",");
81             cout<<"Parameter [7]: (shareQuality)"<<parameter[7]<<" "<<endl;
82             parameter[8] = strtok(NULL, ",");
83             cout<<"Parameter [8]: (shareFraction)"<<parameter[8]<<" "<<endl;
84             parameter[9] = strtok(NULL, ",");
85             cout<<"Parameter [9]: (ifElectronRejection)"<<parameter[9]<<" "<<endl;
86             parameter[10] = strtok(NULL, ",");
87             cout<<"Parameter [10]: (nSigma)"<<parameter[10]<<" "<<endl;
88             parameter[11] = strtok(NULL, ",");
89             cout<<"Parameter [12]: (etaMin)"<<parameter[11]<<" "<<endl;
90             parameter[12] = strtok(NULL, ",");
91             cout<<"Parameter [12]: (etaMax)"<<parameter[12]<<" "<<endl;
92             parameter[13] = strtok(NULL, ",");
93             cout<<"Parameter [13]: (ispileup)"<<parameter[13]<<" "<<endl;
94             parameter[14] = strtok(NULL, ",");
95             cout<<"Parameter [14]: (max pT kaons)"<<parameter[14]<<" "<<endl;
96             parameter[15] = strtok(NULL, ",");
97             cout<<"Parameter [15]: (SetMostProbable 1)"<<parameter[15]<<" "<<endl;
98             parameter[16] = strtok(NULL, ",");
99             cout<<"Parameter [16]: (SetMostProbable 2)"<<parameter[16]<<" "<<endl;
100             parameter[17] = strtok(NULL, ",");
101             cout<<"Parameter [17]: (SetMostProbable 3)"<<parameter[17]<<" "<<endl;
102           }
103         int filterbit = atoi(parameter[0]); //96 / 768 / 128 
104         int runktdep = atoi(parameter[1]); //0
105         int runmultdep = atoi(parameter[2]); //0
106         int minPlpContribSPD = atoi(parameter[3]); //3
107         int multbino = atoi(parameter[4]); //30
108         int zvertbino = atoi(parameter[5]); //10
109         Bool_t ifGlobalTracks=kFALSE; if(atoi(parameter[6]))ifGlobalTracks=kTRUE;//kTRUE 
110         double shareQuality = atof(parameter[7]); //0.00
111         double shareFraction = atof(parameter[8]); //0.05
112         bool ifElectronRejection = atoi(parameter[9]); //true
113         double nSigmaVal = atof(parameter[10]); //3.0
114         double nEtaMin = atof(parameter[11]); //-0.8
115         double nEtaMax = atof(parameter[12]);  //0.8
116         bool ifIsPileUp = atoi(parameter[13]); //true
117         double maxPtKaons = atof(parameter[14]);  //4.0
118
119         int setMostProb1 = atoi(parameter[15]);
120         int setMostProb2 = atoi(parameter[16]);
121         int setMostProb3 = atoi(parameter[17]);
122
123
124         printf("*** Connect to AliEn ***\n");
125         TGrid::Connect("alien://");
126
127         int runmults[numOfMultBins] = {0, 0, 0, 0, 1};
128         if(runmultdep)    {runmults[0]=1; runmults[1]=1; runmults[2]=1;   }
129         int multbins[numOfMultBins+1] = {2, 20, 50,150,2,150};
130         
131         int runch[numOfChTypes] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1};
132         const char *chrgs[numOfChTypes] = { "PP", "aPaP", "PaP", "KpKp", "KmKm", "KpKm", "PIpPIp", "PImPIm", "PIpPIm", "all", "plus", "minus", "mixed" };
133         
134         double ktrng[numOfkTbins+1] = {0.0, 0, 0, 0, 0, 0};
135         double ktrngAll[numOfkTbins+1] = {0.0, 1.0, 2.0, 3.0, 4.0, 100.0};
136         double ktrngPion[numOfkTbins+1] = {0.0, 0.8, 1.2, 1.4, 2.5, 100.0};
137         double ktrngKaon[numOfkTbins+1] = {0.0, 2.5, 3.5, 100.0, 0, 0};
138         double ktrngProton[numOfkTbins+1] = {0.0, 2.75, 100, 0, 0, 0};
139
140         int runqinv = 1;
141         int runshlcms = 1;// 0:PRF(PAP), 1:LCMS(PP,APAP)
142
143         int runtype = 0; // Types 0 - global, 1 - ITS only, 2 - TPC Inner       //global tracks ->mfit ITS+TPC
144         int owncuts = 0; 
145         int owndca = 0;
146
147         int gammacut = 0;       // cut na ee z gamma 
148         
149         double shqmax = 0.5; 
150         int nbinssh = 100;
151
152         //AliFemtoEventReaderESDChain *Reader = new AliFemtoEventReaderESDChain();
153         //Reader->SetUseMultiplicity(AliFemtoEventReaderESDChain::kGlobalCount);
154
155
156         AliFemtoEventReaderAODChain *Reader = new AliFemtoEventReaderAODChain();
157         Reader->SetFilterMask(filterbit);
158         Reader->SetDCAglobalTrack(ifGlobalTracks); //false for FB7, true for the rest //we do not use DCA at all
159         Reader->SetUseMultiplicity(AliFemtoEventReaderAOD::kReference);
160         Reader->SetMinPlpContribSPD(minPlpContribSPD);
161         Reader->SetIsPileUpEvent(ifIsPileUp);
162
163         AliFemtoManager* Manager = new AliFemtoManager();
164         Manager->SetEventReader(Reader);
165
166         AliFemtoVertexMultAnalysis              *anetaphitpc[numOfMultBins*numOfChTypes];
167         AliFemtoBasicEventCut                            *mecetaphitpc[numOfMultBins*numOfChTypes];
168         AliFemtoCutMonitorEventMult      *cutPassEvMetaphitpc[numOfMultBins*numOfChTypes];
169         AliFemtoCutMonitorEventMult      *cutFailEvMetaphitpc[numOfMultBins*numOfChTypes];
170         AliFemtoCutMonitorEventVertex *cutPassEvVetaphitpc[numOfMultBins*numOfChTypes];
171         AliFemtoCutMonitorEventVertex *cutFailEvVetaphitpc[numOfMultBins*numOfChTypes];
172         AliFemtoMJTrackCut                       *dtc1etaphitpc[numOfMultBins*numOfChTypes];
173         AliFemtoMJTrackCut                       *dtc2etaphitpc[numOfMultBins*numOfChTypes];
174         AliFemtoMJTrackCut                       *dtc3etaphitpc[numOfMultBins*numOfChTypes];
175         AliFemtoCutMonitorParticleYPt *cutPass1YPtetaphitpc[numOfMultBins*numOfChTypes];
176         AliFemtoCutMonitorParticleYPt *cutFail1YPtetaphitpc[numOfMultBins*numOfChTypes];
177         AliFemtoCutMonitorParticlePID *cutPass1PIDetaphitpc[numOfMultBins*numOfChTypes];
178         AliFemtoCutMonitorParticlePID *cutFail1PIDetaphitpc[numOfMultBins*numOfChTypes];
179         AliFemtoCutMonitorParticleYPt *cutPass2YPtetaphitpc[numOfMultBins*numOfChTypes];
180         AliFemtoCutMonitorParticleYPt *cutFail2YPtetaphitpc[numOfMultBins*numOfChTypes];
181         AliFemtoCutMonitorParticlePID *cutPass2PIDetaphitpc[numOfMultBins*numOfChTypes];
182         AliFemtoCutMonitorParticlePID *cutFail2PIDetaphitpc[numOfMultBins*numOfChTypes];
183         AliFemtoCutMonitorParticleYPt *cutPass3YPtetaphitpc[numOfMultBins*numOfChTypes];
184         AliFemtoCutMonitorParticleYPt *cutFail3YPtetaphitpc[numOfMultBins*numOfChTypes];
185         AliFemtoCutMonitorParticlePID *cutPass3PIDetaphitpc[numOfMultBins*numOfChTypes];
186         AliFemtoCutMonitorParticlePID *cutFail3PIDetaphitpc[numOfMultBins*numOfChTypes];
187         //       AliFemtoShareQualityTPCEntranceSepPairCut                      *sqpcetaphitpcsame[numOfMultBins*numOfChTypes];
188         //AliFemtoPairCutAntiGamma                      *sqpcetaphitpc[numOfMultBins*numOfChTypes];
189         //AliFemtoPairCutRadialDistance                 *sqpcetaphitpc[numOfMultBins*numOfChTypes];
190         AliFemtoShareQualityPairCut                     *sqpcetaphitpc[numOfMultBins*numOfChTypes];
191         //      AliFemtoChi2CorrFctn                                    *cchiqinvetaphitpc[numOfMultBins*numOfChTypes];
192         AliFemtoPairCutPt                                       *ktpcuts[numOfMultBins*numOfChTypes*numOfkTbins];
193         AliFemtoQinvCorrFctn                                    *cqinvkttpc[numOfMultBins*numOfChTypes*numOfkTbins];
194         AliFemtoQinvCorrFctn                                    *cqinvtpc[numOfMultBins*numOfChTypes];
195         AliFemtoCorrFctnDEtaDPhi                        *cdedpetaphi[numOfMultBins*numOfChTypes];
196         AliFemtoCorrFctnDEtaDPhi                        *cdedpetaphiPt[numOfMultBins*numOfChTypes*numOfkTbins];
197
198
199         
200         // *** Third QA task - HBT analysis with all pair cuts off, TPC only ***
201         // *** Begin pion-pion (positive) analysis ***
202         int aniter = 0; 
203
204         for (int imult = 0; imult < numOfMultBins; imult++)
205         {
206                 if (runmults[imult])
207                 {
208                         for (int ichg = 0; ichg < numOfChTypes; ichg++)
209                         {
210                                 if (runch[ichg])
211                                 {
212
213                                         aniter = ichg * numOfMultBins + imult;
214                                         anetaphitpc[aniter] = new AliFemtoVertexMultAnalysis(zvertbino, -10.0, 10.0, multbino, multbins[imult], multbins[imult+1]);
215                                         anetaphitpc[aniter]->SetNumEventsToMix(10);
216                                         anetaphitpc[aniter]->SetMinSizePartCollection(1);
217                                         anetaphitpc[aniter]->SetVerboseMode(kFALSE);//~~~~~~~~~~~~~~~~
218
219                                         //*** Event cut ***
220                                         mecetaphitpc[aniter] = new AliFemtoBasicEventCut();
221                                         mecetaphitpc[aniter]->SetEventMult(0.001,100000);
222                                         mecetaphitpc[aniter]->SetVertZPos(-10,10);//cm
223
224                                         //****** event monitors **********      
225                                         cutPassEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutPass%stpcM%i", chrgs[ichg], imult));
226                                         cutFailEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutFail%stpcM%i", chrgs[ichg], imult));
227                                         mecetaphitpc[aniter]->AddCutMonitor(cutPassEvMetaphitpc[aniter], cutFailEvMetaphitpc[aniter]);
228                 
229                                         //cutPassEvVetaphitpc[aniter] = new AliFemtoCutMonitorEventVertex(Form("cutPass%stpcM%i", chrgs[ichg], imult));
230                                         //cutFailEvVetaphitpc[aniter] = new AliFemtoCutMonitorEventVertex(Form("cutFail%stpcM%i", chrgs[ichg], imult));
231                                         //mecetaphitpc[aniter]->AddCutMonitor(cutPassEvVetaphitpc[aniter], cutFailEvVetaphitpc[aniter]);
232
233
234                                         // ***** single particle track cuts *********
235                                         dtc1etaphitpc[aniter] = new AliFemtoMJTrackCut();
236                                         dtc2etaphitpc[aniter] = new AliFemtoMJTrackCut();
237                                         dtc1etaphitpc[aniter]->SetNsigmaTPCTOF(kTRUE);
238                                         dtc2etaphitpc[aniter]->SetNsigmaTPCTOF(kTRUE);
239                                         dtc1etaphitpc[aniter]->SetNsigma(nSigmaVal);
240                                         dtc2etaphitpc[aniter]->SetNsigma(nSigmaVal);
241                                         //dtc3etaphitpc[aniter]->SetNsigma(3.0);
242
243                                         dtc1etaphitpc[aniter]->SetCharge(1.0);
244                                         dtc2etaphitpc[aniter]->SetCharge(-1.0);
245
246                                         dtc1etaphitpc[aniter]->SetEta(nEtaMin,nEtaMax);
247                                         dtc2etaphitpc[aniter]->SetEta(nEtaMin,nEtaMax);
248
249
250                                         dtc1etaphitpc[aniter]->SetElectronRejection(ifElectronRejection);       
251                                         dtc2etaphitpc[aniter]->SetElectronRejection(ifElectronRejection);
252
253
254
255                                         if (ichg == 0 ||ichg == 1 ||ichg == 2)//protons 0-2
256                                           {
257                                             dtc1etaphitpc[aniter]->SetPt(0.5,4);
258                                             dtc2etaphitpc[aniter]->SetPt(0.5,4);
259                                            
260                                             dtc1etaphitpc[aniter]->SetMass(ProtonMass);         
261                                             dtc1etaphitpc[aniter]->SetMostProbable(setMostProb1);//cut on Nsigma in pT not p
262                                             dtc2etaphitpc[aniter]->SetMass(ProtonMass);         
263                                             dtc2etaphitpc[aniter]->SetMostProbable(setMostProb1);//cut on Nsigma in pT not p
264                                           }
265
266                                         if (ichg == 3 ||ichg == 4 ||ichg == 5)//kaons 3-5
267                                           {
268                                             dtc1etaphitpc[aniter]->SetPt(0.3,maxPtKaons);
269                                             dtc2etaphitpc[aniter]->SetPt(0.3,maxPtKaons);
270                                             dtc1etaphitpc[aniter]->SetMass(KaonMass);
271                                             dtc1etaphitpc[aniter]->SetMostProbable(setMostProb2);//cut on Nsigma in pT not p
272                                             dtc2etaphitpc[aniter]->SetMass(KaonMass);
273                                             dtc2etaphitpc[aniter]->SetMostProbable(setMostProb2);//cut on Nsigma in pT not p
274
275                                           }
276                                         if (ichg == 6 ||ichg == 7 ||ichg == 8)//pions 6-8
277                                           {
278                                             dtc1etaphitpc[aniter]->SetPt(0.2,4);
279                                             dtc2etaphitpc[aniter]->SetPt(0.2,4);
280
281                                             dtc1etaphitpc[aniter]->SetMass(PionMass);           
282                                             dtc1etaphitpc[aniter]->SetMostProbable(setMostProb3);//cut on Nsigma in pT not p
283                                             dtc2etaphitpc[aniter]->SetMass(PionMass);           
284                                             dtc2etaphitpc[aniter]->SetMostProbable(setMostProb3);//cut on Nsigma in pT not p
285                                           }
286                                         if (ichg == 9)//all
287                                           {
288
289                                             dtc3etaphitpc[aniter] = new AliFemtoMJTrackCut();
290                                             dtc3etaphitpc[aniter]->SetNsigmaTPCTOF(kTRUE);
291                                             dtc3etaphitpc[aniter]->SetEta(nEtaMin,nEtaMax);
292                                             dtc3etaphitpc[aniter]->SetElectronRejection(ifElectronRejection); 
293                                             dtc3etaphitpc[aniter]->SetPt(0.2,4);
294                                           }
295                                         if (ichg == 10 ||ichg == 11 ||ichg == 12)//plus,minus,mixed
296                                           {
297                                             dtc1etaphitpc[aniter]->SetPt(0.2,4);
298                                             dtc2etaphitpc[aniter]->SetPt(0.2,4);
299                                           }
300
301                                         //****** DCA ******
302
303                                         if(owndca){
304                                           dtc1etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01);      //      DCA xy
305                                           //dtc1etaphitpc[aniter]->SetMaxImpactXYPtDep(0.0182, 0.0350, -1.01);
306                                           dtc1etaphitpc[aniter]->SetMaxImpactZ(2);      //DCA Z
307                                           dtc2etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01);      //      DCA xy
308                                           dtc2etaphitpc[aniter]->SetMaxImpactZ(2);      //DCA Z
309                                           if (ichg == 9){dtc3etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01);       //      DCA xy
310                                           dtc3etaphitpc[aniter]->SetMaxImpactZ(2);}     //DCA Z
311                                         }
312                                         //****** Track quality cuts ******
313
314                                         if(owncuts){
315
316                                           dtc1etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
317                                           dtc1etaphitpc[aniter]->SetminTPCncls(70);
318                                           dtc1etaphitpc[aniter]->SetRemoveKinks(kTRUE);
319                                           dtc1etaphitpc[aniter]->SetLabel(kFALSE);
320                                           //    dtc1etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
321                                           dtc1etaphitpc[aniter]->SetMaxTPCChiNdof(4.0); // pisac
322                                           //dtc1etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
323
324                                           dtc2etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
325                                           dtc2etaphitpc[aniter]->SetminTPCncls(70);
326                                           dtc2etaphitpc[aniter]->SetRemoveKinks(kTRUE);
327                                           dtc2etaphitpc[aniter]->SetLabel(kFALSE);
328                                           //    dtc2etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
329                                           dtc2etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
330                                           //    dtc2etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
331                                           if (ichg == 9){
332                                             dtc3etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
333                                             dtc3etaphitpc[aniter]->SetminTPCncls(70);
334                                             dtc3etaphitpc[aniter]->SetRemoveKinks(kTRUE);
335                                             dtc3etaphitpc[aniter]->SetLabel(kFALSE);
336                                             //  dtc3etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
337                                             dtc3etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
338                                             //  dtc3etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
339                                           }
340         
341                                         }
342                                         //**************** track Monitors ***************
343
344                                         
345                                         if(1)//ichg>8)
346                                           {
347                                             if(ichg<2 || ichg==3||ichg==4 || ichg==6|| ichg==7||ichg==9||ichg==10||ichg==11){ 
348                                               cutPass3YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutPass%stpcM%i", chrgs[ichg], imult),PionMass);
349                                               cutFail3YPtetaphitpc[aniter] = new AliFemtoCutMonitorParticleYPt(Form("cutFail%stpcM%i", chrgs[ichg], imult),PionMass);
350                                             }
351                                             if(ichg==9) dtc3etaphitpc[aniter]->AddCutMonitor(cutPass3YPtetaphitpc[aniter], cutFail3YPtetaphitpc[aniter]);
352                                             if(ichg==0||ichg==3||ichg==6||ichg==10) dtc1etaphitpc[aniter]->AddCutMonitor(cutPass3YPtetaphitpc[aniter], cutFail3YPtetaphitpc[aniter]);
353                                             if(ichg==1||ichg==4||ichg==7||ichg==11) dtc2etaphitpc[aniter]->AddCutMonitor(cutPass3YPtetaphitpc[aniter], cutFail3YPtetaphitpc[aniter]);
354
355                                             /*
356                                             if(ichg<2){ //PP, PaP
357                                               cutPass3PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass%stpcM%i", chrgs[ichg], imult),2);//0-pion,1-kaon,2-proton
358                                               cutFail3PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail%stpcM%i", chrgs[ichg], imult),2);
359                                               if(ichg==0) dtc1etaphitpc[aniter]->AddCutMonitor(cutPass3PIDetaphitpc[aniter], cutFail3PIDetaphitpc[aniter]);
360                                               if(ichg==1) dtc2etaphitpc[aniter]->AddCutMonitor(cutPass3PIDetaphitpc[aniter], cutFail3PIDetaphitpc[aniter]);
361                                             }
362                                             else if(ichg>=3 && ichg<=4){//KpKp, KmKm
363                                               cutPass3PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass%stpcM%i", chrgs[ichg], imult),1);//0-pion,1-kaon,2-proton
364                                               cutFail3PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail%stpcM%i", chrgs[ichg], imult),1);
365                                               if(ichg==3) dtc1etaphitpc[aniter]->AddCutMonitor(cutPass3PIDetaphitpc[aniter], cutFail3PIDetaphitpc[aniter]);
366                                               if(ichg==4) dtc2etaphitpc[aniter]->AddCutMonitor(cutPass3PIDetaphitpc[aniter], cutFail3PIDetaphitpc[aniter]);
367                                             }
368                                             else if(ichg==6||ichg==10||ichg==7||ichg==11||ichg==9){ //pions, all
369                                               cutPass3PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutPass%stpcM%i", chrgs[ichg], imult),0);//0-pion,1-kaon,2-proton
370                                               cutFail3PIDetaphitpc[aniter] = new AliFemtoCutMonitorParticlePID(Form("cutFail%stpcM%i", chrgs[ichg], imult),0);
371                                               if(ichg==6||ichg==10) dtc1etaphitpc[aniter]->AddCutMonitor(cutPass3PIDetaphitpc[aniter], cutFail3PIDetaphitpc[aniter]);
372                                               if(ichg==7||ichg==11) dtc2etaphitpc[aniter]->AddCutMonitor(cutPass3PIDetaphitpc[aniter], cutFail3PIDetaphitpc[aniter]);
373                                               if(ichg==9) dtc3etaphitpc[aniter]->AddCutMonitor(cutPass3PIDetaphitpc[aniter], cutFail3PIDetaphitpc[aniter]);
374                                             }
375                                             */
376
377                                           }
378                                          
379                                         //******** Two - track cuts ************
380                                         //sqpcetaphitpc[aniter] = new AliFemtoPairCutAntiGamma();
381                                         sqpcetaphitpc[aniter] = new AliFemtoShareQualityPairCut();
382                                 
383                                         sqpcetaphitpc[aniter]->SetShareQualityMax(shareQuality);                // two track cuts on splitting and merging  //1- wylaczany 0 -wlaczany   
384                                         sqpcetaphitpc[aniter]->SetShareFractionMax(shareFraction);      //  ile moga miec wspolnych klastrow //1 - wylaczany, 0.05 - wlaczany
385                                         sqpcetaphitpc[aniter]->SetRemoveSameLabel(kFALSE);
386                                         // sqpcetaphitpc[aniter]->SetMaximumRadius(0.82);
387                                         // sqpcetaphitpc[aniter]->SetMinimumRadius(0.8);
388                                         // sqpcetaphitpc[aniter]->SetPhiStarDifferenceMinimum(0.02);
389                                         // sqpcetaphitpc[aniter]->SetEtaDifferenceMinimum(0.02);
390                                         /*
391                                         if (gammacut == 0)
392                                           {
393                                             sqpcetaphitpc[aniter]->SetMaxEEMinv(0.0);
394                                             sqpcetaphitpc[aniter]->SetMaxThetaDiff(0.0);
395                                           }
396                                         else if (gammacut == 1)
397                                           {
398                                             sqpcetaphitpc[aniter]->SetMaxEEMinv(0.002);
399                                             sqpcetaphitpc[aniter]->SetMaxThetaDiff(0.008);
400                                           }
401                                         */
402                                         // sqpcetaphitpc[aniter]->SetTPCEntranceSepMinimum(1.5);
403                                         // sqpcetaphitpc[aniter]->SetRadialDistanceMinimum(0.12, 0.03);
404                                         // sqpcetaphitpc[aniter]->SetEtaDifferenceMinimum(0.02);
405                                           
406                                         
407                 
408
409                                         //***** Setting cuts ***********
410
411                 
412                                         // setting event cut
413                                         anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
414                                         //setting single track cuts
415                                         if(ichg==0 || ichg==3  || ichg==6 || ichg==10) //positive like-sign
416                                         {
417                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);
418                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc1etaphitpc[aniter]);
419                                         }
420                                         if(ichg==1 || ichg==4 || ichg==7 || ichg==11)//negative like-sign
421                                         {
422                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc2etaphitpc[aniter]);
423                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc2etaphitpc[aniter]);
424                                         }
425                                         if(ichg==2 || ichg==5 || ichg==8 || ichg==12)//unlike-sign
426                                         {
427                                                 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);
428                                                 anetaphitpc[aniter]->SetSecondParticleCut(dtc2etaphitpc[aniter]);
429                                         }
430                                         if(ichg==9) //all
431                                         {
432                                           anetaphitpc[aniter]->SetFirstParticleCut(dtc3etaphitpc[aniter]);
433                                           anetaphitpc[aniter]->SetSecondParticleCut(dtc3etaphitpc[aniter]);
434                                         }
435
436                                         //setting two-track cuts
437                                         anetaphitpc[aniter]->SetPairCut(sqpcetaphitpc[aniter]);
438
439
440                                         //**** Correlation functions *******
441
442                                         cdedpetaphi[aniter] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%i", chrgs[ichg], imult),35, 35);
443                                         anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[aniter]);
444
445                 
446                                         if (runktdep)
447                                         {
448
449                                           if(ichg<=2){
450                                           for(int kit=0;kit<=numOfkTbins;kit++)
451                                             ktrng[kit]=ktrngProton[kit];
452                                           }
453                                           else if(ichg>2&&ichg<6){
454                                             for(int kit=0;kit<=numOfkTbins;kit++)
455                                               ktrng[kit]=ktrngKaon[kit];
456                                           }
457                                           else if(ichg>=6&&ichg<=8){
458                                             for(int kit=0;kit<=numOfkTbins;kit++)
459                                               ktrng[kit]=ktrngPion[kit];
460                                           }
461                                           else if(ichg>=9){
462                                             for(int kit=0;kit<=numOfkTbins;kit++)
463                                               ktrng[kit]=ktrngAll[kit];
464                                           }
465
466
467                                                 int ktm;
468                                                 for (int ikt=0; ikt<numOfkTbins; ikt++)
469                                                 {
470                                                         if(ktrng[ikt+1]==0) continue;
471                                                         ktm = aniter * numOfkTbins + ikt;
472                                                         ktpcuts[ktm] = new AliFemtoPairCutPt(ktrng[ikt], ktrng[ikt+1]);
473                                 
474                                                         //cqinvkttpc[ktm] = new AliFemtoQinvCorrFctn(Form("cqinv%stpcM%ikT%i", chrgs[ichg], imult, ikt),nbinssh,0.0,(imult>6)?shqmax*2.5:shqmax);
475                                                         //cqinvkttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
476                                                         //anetaphitpc[aniter]->AddCorrFctn(cqinvkttpc[ktm]);
477
478                                                         cdedpetaphiPt[ktm] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%ipT%i", chrgs[ichg], imult,ikt),35, 35);
479                                                         cdedpetaphiPt[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
480                                                         anetaphitpc[aniter]->AddCorrFctn(cdedpetaphiPt[ktm]);
481
482                                                 }
483                                         }               
484                                         Manager->AddAnalysis(anetaphitpc[aniter]);      
485                                 }
486                         }
487                 }
488         }
489         return Manager;
490 }