]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/macros/AddTask_GammaConvDalitzQAV1_pPb.C
36e756b221cbeebb01fd70b3696f66bbdd6ceda8
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / macros / AddTask_GammaConvDalitzQAV1_pPb.C
1 void AddTask_GammaConvDalitzQAV1_pPb(  Int_t trainConfig = 1,
2                                        Bool_t isMC       = kFALSE, //run MC 
3                                        Bool_t enableQAMesonTask = kTRUE, //enable QA in AliAnalysisTaskGammaConvDalitzV1
4                                        Bool_t enableDoMesonChic = kFALSE, // enable additional Chic analysis
5                                        Bool_t enableSetProdVtxVGamma = kTRUE,
6                                        TString fileNameInputForWeighting = "MCSpectraInput.root", // path to file for weigting input
7                                        Bool_t doWeighting = kFALSE,  //enable Weighting
8                                        TString generatorName = "DPMJET",                                
9                                        TString cutnumberAODBranch = "0000000060084001001500000"
10                                   ) {
11
12
13    
14    cout<<"*********Parameters*******"<<endl;
15    cout<<"trainConfig: "<<trainConfig<<endl;
16    cout<<"isMC: "<<isMC<<endl;
17    cout<<"enableQAMesonTask: "<<enableQAMesonTask<<endl;
18    cout<<"enableDoMesonChic: "<<enableDoMesonChic<<endl;
19    cout<<"enableSetProdVtxVGamma: "<<enableSetProdVtxVGamma<<endl;
20    cout<<"fileNameInputForWeighting: "<<fileNameInputForWeighting.Data()<<endl;
21    cout<<"doWeighting: "<<doWeighting<<endl;
22    cout<<"generatorName: "<<generatorName.Data()<<endl;
23    cout<<"cutnumberAODBranch: "<<cutnumberAODBranch.Data()<<endl;
24
25   // ================= Load Librariers =================================
26    gSystem->Load("libCore.so");  
27    gSystem->Load("libTree.so");
28    gSystem->Load("libGeom.so");
29    gSystem->Load("libVMC.so");
30    gSystem->Load("libPhysics.so");
31    gSystem->Load("libMinuit");
32    gSystem->Load("libSTEERBase");
33    gSystem->Load("libESD");
34    gSystem->Load("libAOD");
35    gSystem->Load("libANALYSIS");
36    gSystem->Load("libANALYSISalice");  
37    gSystem->Load("libPWGGAGammaConv.so");
38    gSystem->Load("libCDB.so");
39    gSystem->Load("libSTEER.so");
40    gSystem->Load("libSTEERBase.so");
41    gSystem->Load("libTENDER.so");
42    gSystem->Load("libTENDERSupplies.so");
43    
44   
45   
46    
47    Int_t isHeavyIon = 2;
48
49    cout<<"Entro 0"<<endl;
50
51    // ================== GetAnalysisManager ===============================
52    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
53    if (!mgr) {
54       Error(Form("AddTask_GammaConvDalitzV1_pPb_%i",trainConfig), "No analysis manager found.");
55       return ;
56    }
57
58    // ================== GetInputEventHandler =============================
59    AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
60    
61    //========= Add PID Reponse to ANALYSIS manager ====
62    if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){
63       gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
64       AddTaskPIDResponse(isMC);
65    }
66    
67    //=========  Set Cutnumber for V0Reader ================================
68    
69    TString cutnumberEvent = "8000000";
70    
71    TString cutnumberPhoton="";
72    
73    if(trainConfig == 9 || trainConfig == 10 ){
74    cutnumberPhoton = "160084001001500000000";   //Offline  V0 finder 
75    }
76    else {
77    cutnumberPhoton = "060084001001500000000";   //Online  V0 finder
78    }
79    
80    TString ElecCuts      = "90005400000002000000";            //Electron Cuts
81    Bool_t doEtaShift = kFALSE;
82
83
84
85    AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
86    
87    //========= Add V0 Reader to  ANALYSIS manager if not yet existent =====
88    //========= Add V0 Reader to  ANALYSIS manager if not yet existent =====
89         if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){
90                 AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1");
91                 
92                 fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
93                 fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output
94                 fV0ReaderV1->SetUseAODConversionPhoton(kTRUE);
95                 
96                 if (!mgr) {
97                         Error("AddTask_V0ReaderV1", "No analysis manager found.");
98                         return;
99                 }
100         
101                 AliConvEventCuts *fEventCuts=NULL;
102                 if(cutnumberEvent!=""){
103                         fEventCuts= new AliConvEventCuts(cutnumberEvent.Data(),cutnumberEvent.Data());
104                         fEventCuts->SetPreSelectionCutFlag(kTRUE);
105                         if(fEventCuts->InitializeCutsFromCutString(cutnumberEvent.Data())){
106                                 fEventCuts->DoEtaShift(doEtaShift);
107                                 fV0ReaderV1->SetEventCuts(fEventCuts);
108                                 fEventCuts->SetFillCutHistograms("",kTRUE);
109                         }
110                 }
111
112                 // Set AnalysisCut Number
113                 AliConversionPhotonCuts *fCuts=NULL;
114                 if(cutnumberPhoton!=""){
115                         fCuts= new AliConversionPhotonCuts(cutnumberPhoton.Data(),cutnumberPhoton.Data());
116                         fCuts->SetPreSelectionCutFlag(kTRUE);
117                         fCuts->SetIsHeavyIon(isHeavyIon);
118                         if(fCuts->InitializeCutsFromCutString(cutnumberPhoton.Data())){
119                                 fV0ReaderV1->SetConversionCuts(fCuts);
120                                 fCuts->SetFillCutHistograms("",kTRUE);
121                         }
122                 }
123                 if(inputHandler->IsA()==AliAODInputHandler::Class()){
124                 // AOD mode
125                         cout << "AOD handler: adding " << cutnumberAODBranch.Data() << " as conversion branch" << endl;
126                         fV0ReaderV1->SetDeltaAODBranchName(Form("GammaConv_%s_gamma",cutnumberAODBranch.Data()));
127                 }
128                 fV0ReaderV1->Init();
129         
130                 AliLog::SetGlobalLogLevel(AliLog::kInfo);
131         
132                 //connect input V0Reader
133                 mgr->AddTask(fV0ReaderV1);
134                 mgr->ConnectInput(fV0ReaderV1,0,cinput);
135         
136         }
137    //================================================
138    //========= Add Electron Selector ================
139
140
141    if( !(AliDalitzElectronSelector*)mgr->GetTask("ElectronSelector") ){
142
143    AliDalitzElectronSelector *fElectronSelector = new AliDalitzElectronSelector("ElectronSelector");
144
145    // Set AnalysisCut Number
146
147    AliDalitzElectronCuts *fElecCuts=0;
148
149    //ElecCuts = "900054000000020000";
150
151     if( ElecCuts!=""){
152
153        fElecCuts= new AliDalitzElectronCuts(ElecCuts.Data(),ElecCuts.Data());
154
155             if(fElecCuts->InitializeCutsFromCutString(ElecCuts.Data())){
156
157                 fElectronSelector->SetDalitzElectronCuts(fElecCuts);
158
159                 fElecCuts->SetFillCutHistograms("",kTRUE);
160
161             }
162     }
163
164     fElectronSelector->Init();
165     mgr->AddTask(fElectronSelector);
166     
167     AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer();
168
169     //connect input V0Reader
170
171     mgr->ConnectInput (fElectronSelector,0,cinput1);
172
173  }
174
175
176
177     cout<<"Entro"<<endl;
178    //================================================
179    //========= Add task to the ANALYSIS manager =====
180    //================================================
181    //            find input container
182    
183   
184  
185    AliAnalysisTaskGammaConvDalitzV1 *task=NULL;
186
187    task= new AliAnalysisTaskGammaConvDalitzV1(Form("GammaConvDalitzV1_%i",trainConfig));
188
189    task->SetIsHeavyIon(2);
190    task->SetIsMC(isMC);
191
192
193
194    // Cut Numbers to use in Analysis
195    Int_t numberOfCuts = 1;
196    
197    TString *eventCutArray     = new TString[numberOfCuts];
198
199    TString *photonCutArray    = new TString[numberOfCuts];
200
201    TString *ElecCutarray      = new TString[numberOfCuts];
202
203    TString *MesonCutarray     = new TString[numberOfCuts];
204
205    Bool_t doEtaShiftIndCuts = kFALSE;
206    TString stringShift = "";
207
208    // Shifting in pPb direction
209
210    doEtaShiftIndCuts = kFALSE;
211    stringShift = "pPb";
212
213
214    
215    
216 if( trainConfig == 1 ) {  // No eta shift |Y| < 0.8
217                                                                                      
218         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
219         
220 }  else if( trainConfig == 2 ) {  // No eta shift |Y| < 0.8
221   
222         eventCutArray[0]="8000011"; photonCutArray[0] = "032093603007200000000"; ElecCutarray[0] = "90475400239102623710"; MesonCutarray[0] = "01033035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 +  |Y| < 0.6 and |Gamma_eta| < 0.65 and |e+_eta| < 0.65 and |e-_eta| < 0.65 
223         
224 }  else if( trainConfig == 3 ) {  // No eta shift |Y| < 0.8
225   
226         eventCutArray[0]="8000011"; photonCutArray[0] = "042093603007200000000"; ElecCutarray[0] = "90475400235102623710"; MesonCutarray[0] = "01032035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 +  |Y| < 0.7 and |Gamma_eta| < 0.75 and |e+_eta| < 0.75 and |e-_eta| < 0.75
227
228 }  else if( trainConfig == 4 ) {  // No eta shift  |Y| < 0.8
229   
230         eventCutArray[0]="8000011"; photonCutArray[0] = "012093603007200000000"; ElecCutarray[0] = "90475400236102623710"; MesonCutarray[0] = "01034035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 +  |Y| < 0.5 and |Gamma_eta| < 0.60 and |e+_eta| < 0.60 and |e-_eta| < 0.60  
231     
232 } else if ( trainConfig == 5 ) {
233
234         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623310"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
235
236 } else if ( trainConfig == 6 ) {  // No eta shift |Y| < 0.8
237         
238         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102643710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
239         
240 } else if ( trainConfig == 7 ) {
241   
242         eventCutArray[0]="8000012"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
243         
244 } else if ( trainConfig == 8 ) {  // No eta shift |Y| < 0.8
245         
246         eventCutArray[0]="8000012"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102643710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
247         
248 } else if ( trainConfig == 9  ) {
249         
250         eventCutArray[0]="8000011"; photonCutArray[0] = "102093603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
251         
252 } else if ( trainConfig == 10 ) {
253
254         eventCutArray[0]="8000012"; photonCutArray[0] = "102093603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
255
256 } else if ( trainConfig == 11  ) {
257         
258         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623010"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
259         
260 } else if ( trainConfig == 12 ) {
261
262         eventCutArray[0]="8000012"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623010"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
263
264 }  else if ( trainConfig == 13 ) {
265         
266         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400533102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  + 4 ITScls
267         
268 }  else if ( trainConfig == 14 ) {
269   
270         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400733102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  + 4 ITScls no Any
271         
272 }  else if ( trainConfig == 15 ) {
273
274         eventCutArray[0]="8000012"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400533102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  + 4 ITScls
275         
276 }  else if ( trainConfig == 16 ) {
277   
278         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400833002623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kBoth  +  No psipair
279                 
280 }  else if ( trainConfig == 17 ) {
281   
282         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400833102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kBoth
283         
284 } else if ( trainConfig  == 18 ) {
285
286         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400933102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kBoth + 4ITS cls
287
288 } else if ( trainConfig  == 19 ) {
289   
290         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400133102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kFirts
291         
292 } else if ( trainConfig  == 20 ) {
293
294         eventCutArray[0]="8000011"; photonCutArray[0] = "002092170008260400000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01621035009000"; // standard cut Annika analysis:
295         
296 } else if ( trainConfig  == 21 ) {
297
298         eventCutArray[0]="8000011"; photonCutArray[0] = "002092170008260400000"; ElecCutarray[0] = "90475400133102623710"; MesonCutarray[0] = "01621035009000"; // standard cut Annika analysis: + kFirst
299         
300 } else if ( trainConfig  == 22 ){
301   
302         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400153102621710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 + Old Standard 2010 + kFirtst
303
304 } else if ( trainConfig  == 23 ) {
305   
306         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400853102621710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 + Old Standard 2010 + kBoth
307         
308 } else if ( trainConfig  == 24 ){
309   
310         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400153102621700"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 + Old Standard 2010 + kFirtst No weights
311
312 } else if ( trainConfig  == 25 ) {
313   
314         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400853102621700"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 + Old Standard 2010 + kBoth No weights
315         
316 } else if ( trainConfig  == 26 ) {
317   
318         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400133102623700"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kFirts + No weights
319         
320 } else if ( trainConfig  == 27 ) {
321   
322         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400833102623700"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kBoth  +  No weights
323         
324 } else if ( trainConfig  == 28 ) {
325   
326         eventCutArray[0]="8000011"; photonCutArray[0] = "002493603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + Pt > 0.075
327         
328 } else if ( trainConfig  == 29 ) {
329   
330         eventCutArray[0]="8000011"; photonCutArray[0] = "002193603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + Pt > 0.100
331         
332 } else if ( trainConfig  == 30 ) {
333       
334         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102633710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + Pt{e} > 0.150
335         
336 } else if ( trainConfig  == 31 ) {
337         
338         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102653710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + Pt{e} > 0.175
339         
340 } else if ( trainConfig  == 32  ) {
341   
342         eventCutArray[0]="8000011"; photonCutArray[0] = "007093603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  + Photon R > 35 cm
343   
344 } else if ( trainConfig  == 33  ) {
345   
346         eventCutArray[0]="8000011"; photonCutArray[0] = "007093603007200000000"; ElecCutarray[0] = "90475400833102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kBoth + Photon R > 35 cm 
347         
348 } else if ( trainConfig  == 34  ) {
349   
350         eventCutArray[0]="8000011"; photonCutArray[0] = "007093603007200000000"; ElecCutarray[0] = "90475400833102623700"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kBoth + Photon R > 35 cm + No weights 
351         
352 } else if ( trainConfig  == 35 ) {                                              
353                                                                              
354         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400833002623700"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kBoth  + NoPsiPair + No weights
355         
356 } else if ( trainConfig  == 36 ) {
357   
358         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623700"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kAny no Weights
359
360 } else if ( trainConfig  == 37 ) {
361   
362         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400833102623711"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kBoth + smearing photon virtual
363
364 } else if ( trainConfig  == 38 ) {
365   
366         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400133102623711"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kFirts + smearing photon virtual
367         
368 } else if( trainConfig   == 39 ) {  
369                                              
370         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623711"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  + kAny  + smearing photon virtual 
371
372 } else if ( trainConfig  == 40 ) {
373   
374         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400833102623712"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kBoth + smearing photon virtual  electrons
375
376 } else if ( trainConfig  == 41 ) {
377   
378         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400133102623712"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kFirts + smearing photon virtual electrons
379         
380 } else if( trainConfig   == 42 ) {  
381                                              
382         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623712"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  + kAny  + smearing photon virtual electrons 
383
384 } else if( trainConfig  == 43 ) {
385   
386         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400833202623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 +  kBoth + New psi pair cut  fPsiPairCut = 0.60;    fDeltaPhiCutMin = 0.0; fDeltaPhiCutMax = 0.12;
387
388 } else if( trainConfig  == 44 ) {
389   
390         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400833502623712"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kBoth + New psi pair cut  fPsiPairCut = 0.60;     fDeltaPhiCutMin = 0.0; fDeltaPhiCutMax = 0.12; +  Electron Smearing
391         
392 } else if( trainConfig  == 45 ) {  
393                                              
394         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233202623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  + kAny  + New psi pair cut + New psi pair cut  fPsiPairCut = 0.60    fDeltaPhiCutMin = 0.0 fDeltaPhiCutMax = 0.12
395
396 } else if( trainConfig == 46 ) {  
397
398         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233202623712"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  + kAny  + New psi pair cut + New psi pair cut  fPsiPairCut = 0.60;    fDeltaPhiCutMin = 0.0; fDeltaPhiCutMax = 0.12; + photon virtual electrons 
399         
400 } else if( trainConfig == 47 ) {
401
402         eventCutArray[0]="8000011"; photonCutArray[0] = "005093603007200000000"; ElecCutarray[0] = "90475400233202623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kAny + new psiPair Cut + gammaR >  10cm
403         
404 } else if( trainConfig == 48 ){
405   
406         eventCutArray[0]="8000011"; photonCutArray[0] = "008093603007200000000"; ElecCutarray[0] = "90475400233202623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kAny + new psiPair Cut + gammaR >  12.5cm
407         
408 } else if( trainConfig == 49 ){
409   
410         eventCutArray[0]="8000011"; photonCutArray[0] = "006093603007200000000"; ElecCutarray[0] = "90475400233202623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kAny + new psiPair Cut + gammaR >  20 cm 
411         
412 } else if( trainConfig == 50 ){
413   
414         eventCutArray[0]="8000011"; photonCutArray[0] = "007093603007200000000"; ElecCutarray[0] = "90475400233202623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kAny + new psiPair Cut + gammaR >  35 cm
415         
416 } else if( trainConfig == 51 ){
417   
418         eventCutArray[0]="8000011"; photonCutArray[0] = "009093603007200000000"; ElecCutarray[0] = "90475400233202623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + kAny + new psiPair Cut + gammaR >  7.5 cm
419 }
420         
421
422
423
424
425
426    TList *EventCutList = new TList();
427    TList *ConvCutList  = new TList();
428    TList *MesonCutList = new TList();
429    TList *ElecCutList  = new TList();
430    
431
432    TList *HeaderList = new TList();
433    TObjString *Header1 = new TObjString("pi0_1");
434    HeaderList->Add(Header1);
435    TObjString *Header3 = new TObjString("eta_2");
436    HeaderList->Add(Header3);
437    
438    
439    EventCutList->SetOwner(kTRUE);
440    AliConvEventCuts **analysisEventCuts = new AliConvEventCuts*[numberOfCuts];
441    
442    
443    ConvCutList->SetOwner(kTRUE);
444    AliConversionPhotonCuts **analysisCuts = new AliConversionPhotonCuts*[numberOfCuts];
445    
446    
447    MesonCutList->SetOwner(kTRUE);
448    AliConversionMesonCuts **analysisMesonCuts   = new AliConversionMesonCuts*[numberOfCuts];
449    
450    
451    ElecCutList->SetOwner(kTRUE);
452    AliDalitzElectronCuts **analysisElecCuts     = new AliDalitzElectronCuts*[numberOfCuts];
453
454
455
456    for(Int_t i = 0; i<numberOfCuts; i++){
457
458
459           analysisEventCuts[i] = new AliConvEventCuts();
460       
461
462           if (  ( trainConfig >= 1 && trainConfig <= 6 ) || trainConfig == 9  ||  trainConfig == 11  || trainConfig == 13 || trainConfig == 14 || trainConfig == 16 || trainConfig == 17 || trainConfig == 18 || trainConfig == 19 || trainConfig == 20 || trainConfig == 21 || trainConfig == 22 || trainConfig == 23 ||
463                   trainConfig == 28 || trainConfig == 29 || trainConfig == 30 ||  trainConfig == 31  || trainConfig == 32 || trainConfig == 33 || trainConfig == 37 || trainConfig == 38 || trainConfig == 39 || trainConfig == 40 || trainConfig == 41 || trainConfig == 41 || trainConfig == 43 || trainConfig == 44 ||
464                   trainConfig == 45 || trainConfig == 46 || trainConfig == 47 ||  trainConfig == 48  || trainConfig == 49 || trainConfig == 50 || trainConfig == 51 )
465           ){
466             
467             if (doWeighting){
468               if (generatorName.CompareTo("DPMJET")==0){
469                analysisEventCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_DPMJET_LHC13b2_efix_pPb_5023GeV_MBV0A", "Eta_DPMJET_LHC13b2_efix_pPb_5023GeV_MBV0A", "","Pi0_Fit_Data_pPb_5023GeV_MBV0A","Eta_Fit_Data_pPb_5023GeV_MBV0A");
470               } else if (generatorName.CompareTo("HIJING")==0){   
471                analysisEventCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13e7_pPb_5023GeV_MBV0A", "Eta_Hijing_LHC13e7_pPb_5023GeV_MBV0A", "","Pi0_Fit_Data_pPb_5023GeV_MBV0A","Eta_Fit_Data_pPb_5023GeV_MBV0A");
472               }
473             }
474           } else if ( trainConfig == 7 || trainConfig == 8 || trainConfig == 10 || trainConfig == 12  || trainConfig == 15 ){
475             
476               if (doWeighting){
477                   analysisEventCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13e7_addSig_pPb_5023GeV_MBV0A", "Eta_Hijing_LHC13e7_addSig_pPb_5023GeV_MBV0A", "","Pi0_Fit_Data_pPb_5023GeV_MBV0A","Eta_Fit_Data_pPb_5023GeV_MBV0A");
478               }
479           }
480          
481           
482           
483        if( ! analysisEventCuts[i]->InitializeCutsFromCutString(eventCutArray[i].Data()) ){
484           cout<<"ERROR: analysisEventCuts [ " << i <<" ] "<<endl;
485           return 0;
486        }
487        
488        if (doEtaShiftIndCuts) {
489           analysisEventCuts[i]->DoEtaShift(doEtaShiftIndCuts);
490           analysisEventCuts[i]->SetEtaShift(stringShift);
491        }
492                 
493        EventCutList->Add(analysisEventCuts[i]);
494        analysisEventCuts[i]->SetFillCutHistograms("",kFALSE);   
495        analysisEventCuts[i]->SetAcceptedHeader(HeaderList);
496           
497                   
498           
499        analysisCuts[i] = new AliConversionPhotonCuts();
500        
501        if( ! analysisCuts[i]->InitializeCutsFromCutString(photonCutArray[i].Data()) ) {
502               cout<<"ERROR: analysisCuts [ " << i <<" ] "<<endl;
503               return 0;
504        }
505        analysisCuts[i]->SetIsHeavyIon(isHeavyIon);
506        ConvCutList->Add(analysisCuts[i]);
507        analysisCuts[i]->SetFillCutHistograms("",kFALSE);           
508
509        analysisMesonCuts[i] = new AliConversionMesonCuts();
510     
511        if( ! analysisMesonCuts[i]->InitializeCutsFromCutString(MesonCutarray[i].Data()) ) {
512             cout<<"ERROR: analysisMesonCuts [ " <<i<<" ] "<<endl;
513             return 0;
514        }
515        MesonCutList->Add(analysisMesonCuts[i]);
516        analysisMesonCuts[i]->SetFillCutHistograms("");
517   
518
519       TString cutName( Form("%s_%s_%s_%s",eventCutArray[i].Data(), photonCutArray[i].Data(),ElecCutarray[i].Data(),MesonCutarray[i].Data() ) );
520
521
522       analysisElecCuts[i] = new AliDalitzElectronCuts();
523       if( !analysisElecCuts[i]->InitializeCutsFromCutString(ElecCutarray[i].Data())) {
524
525             cout<< "ERROR:  analysisElecCuts [ " <<i<<" ] "<<endl;
526             return 0;
527       }
528       
529       ElecCutList->Add(analysisElecCuts[i]);
530       analysisElecCuts[i]->SetFillCutHistograms("",kFALSE,cutName); 
531            
532
533    }
534
535    
536    
537    
538    task->SetEventCutList(numberOfCuts,EventCutList);
539    task->SetConversionCutList(numberOfCuts,ConvCutList);
540    task->SetMesonCutList(MesonCutList);
541    task->SetElectronCutList(ElecCutList);
542
543    task->SetMoveParticleAccordingToVertex(kTRUE);
544    
545    if(enableSetProdVtxVGamma) task->SetProductionVertextoVGamma(kTRUE);
546    if(enableQAMesonTask) task->SetDoMesonQA(kTRUE);
547    if(enableDoMesonChic) task->SetDoChicAnalysis(kTRUE);
548
549    //connect containers
550    AliAnalysisDataContainer *coutput =
551    mgr->CreateContainer(Form("GammaConvDalitzV1_%i",trainConfig), TList::Class(),
552                            AliAnalysisManager::kOutputContainer,Form("GammaConvV1Dalitz_%i.root",trainConfig));
553
554    mgr->AddTask(task);
555    mgr->ConnectInput(task,0,cinput);
556    mgr->ConnectOutput(task,1,coutput);
557
558    return;
559
560 }