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