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