]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/macros/AddTask_GammaConvDalitzV1_pPb.C
Merge branch 'TPCdev' of https://git.cern.ch/reps/AliRoot into TPCdev
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / macros / AddTask_GammaConvDalitzV1_pPb.C
1 void AddTask_GammaConvDalitzV1_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                                        TString fileNameInputForWeighting = "MCSpectraInput.root", // path to file for weigting input
6                                        Bool_t doWeighting = kFALSE,  //enable Weighting
7                                        TString generatorName = "DPMJET",                                
8                                        TString cutnumberAODBranch = "0000000060084001001500000"
9                                   ) {
10
11
12    
13    cout<<"*********Parameters*******"<<endl;
14    cout<<"trainConfig: "<<trainConfig<<endl;
15    cout<<"isMC: "<<isMC<<endl;
16    cout<<"enableQAMesonTask: "<<enableQAMesonTask<<endl;
17    cout<<"enableDoMesonChic: "<<enableDoMesonChic<<endl;
18    cout<<"fileNameInputForWeighting: "<<fileNameInputForWeighting.Data()<<endl;
19    cout<<"doWeighting: "<<doWeighting<<endl;
20    cout<<"generatorName: "<<generatorName.Data()<<endl;
21    cout<<"cutnumberAODBranch: "<<cutnumberAODBranch.Data()<<endl;
22
23   // ================= Load Librariers =================================
24    gSystem->Load("libCore.so");  
25    gSystem->Load("libTree.so");
26    gSystem->Load("libGeom.so");
27    gSystem->Load("libVMC.so");
28    gSystem->Load("libPhysics.so");
29    gSystem->Load("libMinuit");
30    gSystem->Load("libSTEERBase");
31    gSystem->Load("libESD");
32    gSystem->Load("libAOD");
33    gSystem->Load("libANALYSIS");
34    gSystem->Load("libANALYSISalice");  
35    gSystem->Load("libPWGGAGammaConv.so");
36    gSystem->Load("libCDB.so");
37    gSystem->Load("libSTEER.so");
38    gSystem->Load("libSTEERBase.so");
39    gSystem->Load("libTENDER.so");
40    gSystem->Load("libTENDERSupplies.so");
41
42
43    cout<<"Entro 0"<<endl;
44    
45    Int_t isHeavyIon = 2;
46
47    // ================== GetAnalysisManager ===============================
48    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
49    if (!mgr) {
50       Error(Form("AddTask_GammaConvDalitzV1_pPb_%i",trainConfig), "No analysis manager found.");
51       return ;
52    }
53
54    // ================== GetInputEventHandler =============================
55    AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
56    
57    //========= Add PID Reponse to ANALYSIS manager ====
58    if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){
59       gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
60       AddTaskPIDResponse(isMC);
61    }
62    
63    //=========  Set Cutnumber for V0Reader ================================
64    TString cutnumberEvent = "8000000";
65    
66    TString cutnumberPhoton="060084001001500000000";   //Online  V0 finder
67    
68    TString ElecCuts      = "90005400000002000000";            //Electron Cuts
69    
70    Bool_t doEtaShift = kFALSE;
71   
72
73
74    AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
75    
76    //========= Add V0 Reader to  ANALYSIS manager if not yet existent =====
77    if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){
78                 AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1");
79                 
80                 fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
81                 fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output
82                 fV0ReaderV1->SetUseAODConversionPhoton(kTRUE);
83                 
84                 if (!mgr) {
85                         Error("AddTask_V0ReaderV1", "No analysis manager found.");
86                         return;
87                 }
88         
89                 AliConvEventCuts *fEventCuts=NULL;
90                 if(cutnumberEvent!=""){
91                         fEventCuts= new AliConvEventCuts(cutnumberEvent.Data(),cutnumberEvent.Data());
92                         fEventCuts->SetPreSelectionCutFlag(kTRUE);
93                         if(fEventCuts->InitializeCutsFromCutString(cutnumberEvent.Data())){
94                                 fEventCuts->DoEtaShift(doEtaShift);
95                                 fV0ReaderV1->SetEventCuts(fEventCuts);
96                                 fEventCuts->SetFillCutHistograms("",kTRUE);
97                         }
98                 }
99
100                 // Set AnalysisCut Number
101                 AliConversionPhotonCuts *fCuts=NULL;
102                 if(cutnumberPhoton!=""){
103                         fCuts= new AliConversionPhotonCuts(cutnumberPhoton.Data(),cutnumberPhoton.Data());
104                         fCuts->SetPreSelectionCutFlag(kTRUE);
105                         fCuts->SetIsHeavyIon(isHeavyIon);
106                         if(fCuts->InitializeCutsFromCutString(cutnumberPhoton.Data())){
107                                 fV0ReaderV1->SetConversionCuts(fCuts);
108                                 fCuts->SetFillCutHistograms("",kTRUE);
109                         }
110                 }
111                 if(inputHandler->IsA()==AliAODInputHandler::Class()){
112                 // AOD mode
113                         cout << "AOD handler: adding " << cutnumberAODBranch.Data() << " as conversion branch" << endl;
114                         fV0ReaderV1->SetDeltaAODBranchName(Form("GammaConv_%s_gamma",cutnumberAODBranch.Data()));
115                 }
116                 fV0ReaderV1->Init();
117         
118                 AliLog::SetGlobalLogLevel(AliLog::kInfo);
119         
120                 //connect input V0Reader
121                 mgr->AddTask(fV0ReaderV1);
122                 mgr->ConnectInput(fV0ReaderV1,0,cinput);
123         
124     }
125
126    //================================================
127    //========= Add Electron Selector ================
128
129
130    if( !(AliDalitzElectronSelector*)mgr->GetTask("ElectronSelector") ){
131
132    AliDalitzElectronSelector *fElectronSelector = new AliDalitzElectronSelector("ElectronSelector");
133
134    // Set AnalysisCut Number
135
136    AliDalitzElectronCuts *fElecCuts=0;
137
138    
139
140     if( ElecCuts!=""){
141
142        fElecCuts= new AliDalitzElectronCuts(ElecCuts.Data(),ElecCuts.Data());
143
144             if(fElecCuts->InitializeCutsFromCutString(ElecCuts.Data())){
145
146                 fElectronSelector->SetDalitzElectronCuts(fElecCuts);
147
148                 fElecCuts->SetFillCutHistograms("",kTRUE);
149
150             }
151
152     }
153
154     fElectronSelector->Init();
155     mgr->AddTask(fElectronSelector);
156     
157     AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer();
158
159     //connect input V0Reader
160
161     mgr->ConnectInput (fElectronSelector,0,cinput1);
162
163     }
164
165
166
167     cout<<"Entro"<<endl;
168    //================================================
169    //========= Add task to the ANALYSIS manager =====
170    //================================================
171    //            find input container
172    
173   
174  
175    AliAnalysisTaskGammaConvDalitzV1 *task=NULL;
176
177    task= new AliAnalysisTaskGammaConvDalitzV1(Form("GammaConvDalitzV1_%i",trainConfig));
178
179    task->SetIsHeavyIon(isHeavyIon);
180    task->SetIsMC(isMC);
181
182
183
184    // Cut Numbers to use in Analysis
185    Int_t numberOfCuts = 4;
186
187    
188    
189    TString *eventCutArray   = new TString[numberOfCuts];
190    TString *photonCutArray  = new TString[numberOfCuts];
191    TString *ElecCutarray    = new TString[numberOfCuts];
192    TString *MesonCutarray   = new TString[numberOfCuts];
193
194    Bool_t doEtaShiftIndCuts = kFALSE;
195    TString stringShift = "";
196
197    // Shifting in pPb direction
198
199    doEtaShiftIndCuts = kFALSE;
200    stringShift = "pPb";
201
202
203    
204    
205 if( trainConfig == 1 ) {  // No eta shift |Y| < 0.8
206         
207         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
208         eventCutArray[1]="8000011"; photonCutArray[1] = "002093603007900000000"; ElecCutarray[1] = "90475400233102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Chi2 < 15
209         eventCutArray[2]="8000011"; photonCutArray[2] = "002093603007800000000"; ElecCutarray[2] = "90475400233102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Chi2 < 20
210         eventCutArray[3]="8000011"; photonCutArray[3] = "002093603007100000000"; ElecCutarray[3] = "90475400233102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Chi2 < 50
211         
212 }  else if( trainConfig == 2 ) {  // No eta shift |Y| < 0.8
213                                                          
214         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603002200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Qt < 0.7
215         eventCutArray[1]="8000011"; photonCutArray[1] = "002093603003200000000"; ElecCutarray[1] = "90475400233102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Qt < 0.5
216         eventCutArray[2]="8000011"; photonCutArray[2] = "002093653007200000000"; ElecCutarray[2] = "90475400233102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + dEdx pion rejec sec 0.3 GeV Low and 3.5 High momentum
217         eventCutArray[3]="8000011"; photonCutArray[3] = "002093601007200000000"; ElecCutarray[3] = "90475400233102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + dEdx pion rejec sec 0.5 GeV Low and 5.0 High momentum
218         
219 }  else if( trainConfig == 3 ) {  // No eta shift |Y| < 0.8
220
221         eventCutArray[0]="8000011"; photonCutArray[0] = "002093803007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + dEdx pion rejec  sec  2.0sigmas Low and  1 High momentum
222         eventCutArray[1]="8000011"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90435400233102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + dEdx pion rejec primary 2.0sigmas Low and 0 High momentum
223         eventCutArray[2]="8000011"; photonCutArray[2] = "002093603007200000000"; ElecCutarray[2] = "90477400233102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + dEdx pion rejec primary 0.3 GeV Low and 3.5 High momentum
224         eventCutArray[3]="8000011"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475200233102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + dEdx pion rejec primary 0.5 GeV Low and 5.0 High momentum
225         
226 }  else if( trainConfig == 4 ) {  // No eta shift  |Y| < 0.8
227   
228         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90425400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 New Standard cut + dEdx pion rejec  primary  2.0sigmas Low and -1 High momentum 
229         eventCutArray[1]="8000011"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90475400133102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + SPD first layer
230         eventCutArray[2]="8000011"; photonCutArray[2] = "002093603007200000000"; ElecCutarray[2] = "90475400233302623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + PsiPair cut 0.52
231         eventCutArray[3]="8000011"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475400233102623710"; MesonCutarray[3] = "01031005009000"; //standard cut Pi0 pPb 00-100 Standard cut + Alpha cut < 0.7    
232         
233 }  else if( trainConfig == 5 ) { // No eta shift  |Y| < 0.8     
234   
235         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90375400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 New Standard cut + dEdx primary   electron -5,5
236         eventCutArray[1]="8000011"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90575400233102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100 New Standard cut + dEdx primary   electron -3,5
237         eventCutArray[2]="8000011"; photonCutArray[2] = "002091603007200000000"; ElecCutarray[2] = "90475400233102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100 New Standard cut + dEdx secondary electron -5,5
238         eventCutArray[3]="8000011"; photonCutArray[3] = "002092603007200000000"; ElecCutarray[3] = "90475400233102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100 New Standard cut + dEdx secondary electron -3,5
239         
240 } else if ( trainConfig == 6 ) { //No eta shift   |Y| < 0.8
241         
242         eventCutArray[0]="8000011"; photonCutArray[0] = "042093603007200000000"; ElecCutarray[0] = "90475400235102623710"; MesonCutarray[0] = "01032035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Y < 0.70  and prim and sec e |eta| < 0.75 //NOTE revisar
243         eventCutArray[1]="8000011"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90475400233102633710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Single prim Pt cut > 0.150
244         eventCutArray[2]="8000011"; photonCutArray[2] = "002093603007200000000"; ElecCutarray[2] = "90475400233102631710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100 Standard cut + Single prim Pt cut > 0.100
245         eventCutArray[3]="8000011"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475400233102622710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100 Standard cut + DCAxy < 1 cm
246         
247         
248 } else if ( trainConfig == 7 ) {  // No eta shift |Y| < 0.8
249
250         eventCutArray[0]="8000011"; photonCutArray[0] = "002493603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Single sec  Pt cut > 0.075
251         eventCutArray[1]="8000011"; photonCutArray[1] = "002193603007200000000"; ElecCutarray[1] = "90475400233102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Single sec  Pt cut > 0.100
252         eventCutArray[2]="8000011"; photonCutArray[2] = "002083603007200000000"; ElecCutarray[2] = "90475400233102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Findable Cls sec  > 0.35
253         eventCutArray[3]="8000011"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475400273102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Findable Cls prim > 0.60
254         
255         
256 } else if ( trainConfig == 8 ) {  //No eta shift |Y| < 0.8
257         
258         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623810"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 Standard cut + 0.015 < InvMass(e+,e-) < 0.050
259         eventCutArray[1]="8000011"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90475400233102623910"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100 Standard cut + 0.025 < InvMass(e+,e-) < 0.035
260         eventCutArray[2]="8000011"; photonCutArray[2] = "002093603001200000000"; ElecCutarray[2] = "90475400233102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100 Standard cut + qT < 0.1
261         eventCutArray[3]="8000011"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475400233102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
262         
263 } else if ( trainConfig == 9 ) {  //No eta shift |Y| < 0.8
264
265   
266         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102723710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Stardad cut +100 events background
267         eventCutArray[1]="8000011"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90475400233101623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Background method V0 multiplicity
268         eventCutArray[2]="8000011"; photonCutArray[2] = "002093603007200000000"; ElecCutarray[2] = "90475400233102623710"; MesonCutarray[2] = "01031035000000"; //standard cut Pi0 PbPb 00-100 + No extra smearing
269         eventCutArray[3]="8000011"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475400253102621710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100 + Old Standard
270
271 } else if( trainConfig == 10 ) {  // No eta shift |Y| < 0.8 + AddedSignals
272         
273         eventCutArray[0]="8000012"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
274         eventCutArray[1]="8000012"; photonCutArray[1] = "002093603007900000000"; ElecCutarray[1] = "90475400233102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Chi2 < 15
275         eventCutArray[2]="8000012"; photonCutArray[2] = "002093603007800000000"; ElecCutarray[2] = "90475400233102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Chi2 < 20
276         eventCutArray[3]="8000012"; photonCutArray[3] = "002093603007100000000"; ElecCutarray[3] = "90475400233102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Chi2 < 50
277         
278 }  else if( trainConfig == 11 ) {  // No eta shift |Y| < 0.8 + AddedSignals
279
280         eventCutArray[0]="8000012"; photonCutArray[0] = "002093603002200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Qt < 0.7
281         eventCutArray[1]="8000012"; photonCutArray[1] = "002093603003200000000"; ElecCutarray[1] = "90475400233102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Qt < 0.5
282         eventCutArray[2]="8000012"; photonCutArray[2] = "002093653007200000000"; ElecCutarray[2] = "90475400233102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + dEdx pion rejec sec 0.3 GeV Low and 3.5 High momentum
283         eventCutArray[3]="8000012"; photonCutArray[3] = "002093601007200000000"; ElecCutarray[3] = "90475400233102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + dEdx pion rejec sec 0.5 GeV Low and 5.0 High momentum
284         
285 }  else if( trainConfig == 12 ) {  // No eta shift |Y| < 0.8 + AddedSignals
286
287         eventCutArray[0]="8000012"; photonCutArray[0] = "002093803007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + dEdx pion rejec  sec  2.0sigmas Low and  1 High momentum
288         eventCutArray[1]="8000012"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90435400233102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + dEdx pion rejec primary 2.0sigmas Low and 0 High momentum
289         eventCutArray[2]="8000012"; photonCutArray[2] = "002093603007200000000"; ElecCutarray[2] = "90477400233102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + dEdx pion rejec primary 0.3 GeV Low and 3.5 High momentum
290         eventCutArray[3]="8000012"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475200233102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + dEdx pion rejec primary 0.5 GeV Low and 5.0 High momentum
291         
292 }  else if( trainConfig == 13 ) {  // No eta shift  |Y| < 0.8 + AddedSignals
293   
294         eventCutArray[0]="8000012"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90425400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 New Standard cut + dEdx pion rejec  primary  2.0sigmas Low and -1 High momentum 
295         eventCutArray[1]="8000012"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90475400133102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + SPD first layer
296         eventCutArray[2]="8000012"; photonCutArray[2] = "002093603007200000000"; ElecCutarray[2] = "90475400233302623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + PsiPair cut 0.52
297         eventCutArray[3]="8000012"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475400233102623710"; MesonCutarray[3] = "01031005009000"; //standard cut Pi0 pPb 00-100 Standard cut + Alpha cut < 0.7    
298         
299 }  else if( trainConfig == 14 ) { // No eta shift  |Y| < 0.8 + AddedSignals
300   
301         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90375400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 New Standard cut + dEdx primary   electron -5,5
302         eventCutArray[1]="8000011"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90575400233102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100 New Standard cut + dEdx primary   electron -3,5
303         eventCutArray[2]="8000011"; photonCutArray[2] = "002091603007200000000"; ElecCutarray[2] = "90475400233102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100 New Standard cut + dEdx secondary electron -5,5
304         eventCutArray[3]="8000011"; photonCutArray[3] = "002092603007200000000"; ElecCutarray[3] = "90475400233102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100 New Standard cut + dEdx secondary electron -3,5
305         
306 } else if ( trainConfig == 15 ) { //No eta shift   |Y| < 0.8 + AddedSignals
307         
308         eventCutArray[0]="8000012"; photonCutArray[0] = "042093603007200000000"; ElecCutarray[0] = "90475400235102623710"; MesonCutarray[0] = "01032035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Y < 0.70  and prim and sec e |eta| < 0.75 //NOTE revisar
309         eventCutArray[1]="8000012"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90475400233102633710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Single prim Pt cut > 0.150
310         eventCutArray[2]="8000012"; photonCutArray[2] = "002093603007200000000"; ElecCutarray[2] = "90475400233102631710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100 Standard cut + Single prim Pt cut > 0.100
311         eventCutArray[3]="8000012"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475400233102622710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100 Standard cut + DCAxy < 1 cm
312         
313         
314 } else if ( trainConfig == 16 ) {  // No eta shift |Y| < 0.8 
315
316         eventCutArray[0]="8000011"; photonCutArray[0] = "002493603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Single sec  Pt cut > 0.075
317         eventCutArray[1]="8000011"; photonCutArray[1] = "002193603007200000000"; ElecCutarray[1] = "90475400233102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Single sec  Pt cut > 0.100
318         eventCutArray[2]="8000011"; photonCutArray[2] = "002083603007200000000"; ElecCutarray[2] = "90475400233102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Findable Cls sec  > 0.35
319         eventCutArray[3]="8000011"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475400273102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Findable Cls prim > 0.60
320         
321         
322 } else if ( trainConfig == 17 ) {  //No eta shift |Y| < 0.8 + AddedSignals
323         
324         eventCutArray[0]="8000012"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623810"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 Standard cut + 0.015 < InvMass(e+,e-) < 0.050
325         eventCutArray[1]="8000012"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90475400233102623910"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100 Standard cut + 0.025 < InvMass(e+,e-) < 0.035
326         eventCutArray[2]="8000012"; photonCutArray[2] = "002093603001200000000"; ElecCutarray[2] = "90475400233102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100 Standard cut + qT < 0.1
327         eventCutArray[3]="8000012"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475400233102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
328         
329 } else if ( trainConfig == 18 ) {  //No eta shift |Y| < 0.8 + AddedSignals
330   
331         eventCutArray[0]="8000012"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102723710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Stardad cut +100 events background
332         eventCutArray[1]="8000012"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90475400233101623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  New Standard cut + Background method V0 multiplicity
333         eventCutArray[2]="8000012"; photonCutArray[2] = "002093603007200000000"; ElecCutarray[2] = "90475400233102623710"; MesonCutarray[2] = "01031035000000"; //standard cut Pi0 PbPb 00-100 + No extra smearing
334         eventCutArray[3]="8000012"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475400253102621710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100 + Old Standard
335
336 } else if ( trainConfig == 19 ) {
337         
338         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
339         eventCutArray[1]="8000011"; photonCutArray[1] = "032093603007200000000"; ElecCutarray[1] = "90475400239102623710"; MesonCutarray[1] = "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 
340         eventCutArray[2]="8000011"; photonCutArray[2] = "042093603007200000000"; ElecCutarray[2] = "90475400235102623710"; MesonCutarray[2] = "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
341         eventCutArray[3]="8000011"; photonCutArray[3] = "012093603007200000000"; ElecCutarray[3] = "90475400236102623710"; MesonCutarray[3] = "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  
342         
343 } else if ( trainConfig == 20 ) {
344         
345         eventCutArray[0]="8000012"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011
346         eventCutArray[1]="8000012"; photonCutArray[1] = "032093603007200000000"; ElecCutarray[1] = "90475400239102623710"; MesonCutarray[1] = "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 
347         eventCutArray[2]="8000012"; photonCutArray[2] = "042093603007200000000"; ElecCutarray[2] = "90475400235102623710"; MesonCutarray[2] = "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
348         eventCutArray[3]="8000012"; photonCutArray[3] = "012093603007200000000"; ElecCutarray[3] = "90475400236102623710"; MesonCutarray[3] = "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  
349         
350 } else if ( trainConfig == 21 ) {
351         
352         eventCutArray[0]="8000011"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400433102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  +  3Cls ITS
353         eventCutArray[1]="8000011"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90475400533102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  +  4Cls ITS
354         eventCutArray[2]="8000011"; photonCutArray[2] = "002093603007200000000"; ElecCutarray[2] = "90475400633102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  +  5Cls ITS
355         eventCutArray[3]="8000011"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475400733102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  +  4Cls ITS no Any
356         
357         
358 } else if ( trainConfig == 22 ) {
359         
360         eventCutArray[0]="8000012"; photonCutArray[0] = "002093603007200000000"; ElecCutarray[0] = "90475400433102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  + 3 ITScls
361         eventCutArray[1]="8000012"; photonCutArray[1] = "002093603007200000000"; ElecCutarray[1] = "90475400533102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  + 4 ITScls
362         eventCutArray[2]="8000012"; photonCutArray[2] = "002093603007200000000"; ElecCutarray[2] = "90475400633102623710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  + 5 ITScls
363         eventCutArray[3]="8000012"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475400733102623710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011  + 4 ITScls no Any
364         
365 } else if ( trainConfig == 23 ) {
366   
367         eventCutArray[0]="8000011"; photonCutArray[0] = "002493603007200000000"; ElecCutarray[0] = "90475400233102623710"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + Pt > 0.075
368         eventCutArray[1]="8000011"; photonCutArray[1] = "002193603007200000000"; ElecCutarray[1] = "90475400233102623710"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + Pt > 0.100
369         eventCutArray[2]="8000011"; photonCutArray[2] = "002093603007200000000"; ElecCutarray[2] = "90475400233102633710"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + Pt{e} > 0.150
370         eventCutArray[3]="8000011"; photonCutArray[3] = "002093603007200000000"; ElecCutarray[3] = "90475400233102653710"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 pPb 00-100  //Tracks 2011 + Pt{e} > 0.175
371         
372   
373 }
374
375
376
377
378
379
380    TList *EventCutList = new TList();
381    TList *ConvCutList  = new TList();
382    TList *MesonCutList = new TList();
383    TList *ElecCutList  = new TList();
384
385    TList *HeaderList = new TList();
386    TObjString *Header1 = new TObjString("pi0_1");
387    HeaderList->Add(Header1);
388    TObjString *Header3 = new TObjString("eta_2");
389    HeaderList->Add(Header3);
390    
391    EventCutList->SetOwner(kTRUE);
392    AliConvEventCuts **analysisEventCuts         = new AliConvEventCuts*[numberOfCuts];
393    ConvCutList->SetOwner(kTRUE);
394    AliConversionPhotonCuts **analysisCuts       = new AliConversionPhotonCuts*[numberOfCuts];
395    MesonCutList->SetOwner(kTRUE);
396    AliConversionMesonCuts **analysisMesonCuts   = new AliConversionMesonCuts*[numberOfCuts];
397    ElecCutList->SetOwner(kTRUE);
398    AliDalitzElectronCuts **analysisElecCuts     = new AliDalitzElectronCuts*[numberOfCuts];
399
400
401
402    for(Int_t i = 0; i<numberOfCuts; i++){
403
404       analysisEventCuts[i] = new AliConvEventCuts();
405
406           if (  ( trainConfig >= 1 && trainConfig <= 9 ) || trainConfig == 19  || trainConfig == 21 || trainConfig == 23 ){
407             
408             if (doWeighting){
409               if (generatorName.CompareTo("DPMJET")==0){
410                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");
411               } else if (generatorName.CompareTo("HIJING")==0){   
412                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");
413               }
414             }
415           }
416           else if (  ( trainConfig >= 10 && trainConfig <= 18 ) || trainConfig == 20 || trainConfig == 22 ){
417             
418              if (doWeighting){
419                 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");
420              }
421             
422           }
423    
424    
425        analysisEventCuts[i]->InitializeCutsFromCutString(eventCutArray[i].Data());
426        if (doEtaShiftIndCuts) {
427             analysisEventCuts[i]->DoEtaShift(doEtaShiftIndCuts);
428             analysisEventCuts[i]->SetEtaShift(stringShift);
429        }
430        EventCutList->Add(analysisEventCuts[i]);
431        analysisEventCuts[i]->SetFillCutHistograms("",kFALSE);
432        analysisEventCuts[i]->SetAcceptedHeader(HeaderList);
433        
434        analysisCuts[i] = new AliConversionPhotonCuts();
435        
436        if( ! analysisCuts[i]->InitializeCutsFromCutString(photonCutArray[i].Data()) ) {
437             cout<<"ERROR: analysisCuts [" <<i<<"]"<<endl;
438             return 0;
439        }
440        analysisCuts[i]->SetIsHeavyIon(isHeavyIon);
441        ConvCutList->Add(analysisCuts[i]);
442        analysisCuts[i]->SetFillCutHistograms("",kFALSE);
443                 
444        
445               
446
447       analysisMesonCuts[i] = new AliConversionMesonCuts();
448     
449       if( ! analysisMesonCuts[i]->InitializeCutsFromCutString(MesonCutarray[i].Data()) ) {
450             cout<<"ERROR: analysisMesonCuts [ " <<i<<" ] "<<endl;
451             return 0;
452       }
453       MesonCutList->Add(analysisMesonCuts[i]);
454       analysisMesonCuts[i]->SetFillCutHistograms("");
455       
456
457
458       //TString cutName( Form("%s_%s_%s",photonCutArray[i].Data(),ElecCutarray[i].Data(),MesonCutarray[i].Data() ) );
459
460
461        analysisElecCuts[i] = new AliDalitzElectronCuts();
462        if( !analysisElecCuts[i]->InitializeCutsFromCutString(ElecCutarray[i].Data())) {
463
464             cout<< "ERROR:  analysisElecCuts [ " <<i<<" ] "<<endl;
465             return 0;
466        }
467        ElecCutList->Add(analysisElecCuts[i]);
468        analysisElecCuts[i]->SetFillCutHistograms("",kFALSE,ElecCutarray[i].Data()); 
469        
470
471    }
472
473    task->SetEventCutList(numberOfCuts,EventCutList);
474    task->SetConversionCutList(numberOfCuts,ConvCutList);
475    task->SetMesonCutList(MesonCutList);
476    task->SetElectronCutList(ElecCutList);
477
478    task->SetMoveParticleAccordingToVertex(kTRUE);
479    task->SetProductionVertextoVGamma(kTRUE);
480
481
482    if(enableQAMesonTask) task->SetDoMesonQA(kTRUE);
483    if(enableDoMesonChic) task->SetDoChicAnalysis(kTRUE);
484
485    //connect containers
486    AliAnalysisDataContainer *coutput =
487    mgr->CreateContainer(Form("GammaConvDalitzV1_%i",trainConfig), TList::Class(),
488                            AliAnalysisManager::kOutputContainer,Form("GammaConvV1Dalitz_%i.root",trainConfig));
489
490    mgr->AddTask(task);
491    mgr->ConnectInput(task,0,cinput);
492    mgr->ConnectOutput(task,1,coutput);
493
494    return;
495
496 }