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