]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/macros/AddTask_GammaConvDalitzV1_pPb.C
29234ac178526c51cdd3046118074f16786c9c14
[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<<"Entro -1"<<endl;
14
15   // ================= Load Librariers =================================
16    gSystem->Load("libCore.so");  
17    gSystem->Load("libTree.so");
18    gSystem->Load("libGeom.so");
19    gSystem->Load("libVMC.so");
20    gSystem->Load("libPhysics.so");
21    gSystem->Load("libMinuit");
22    gSystem->Load("libSTEERBase");
23    gSystem->Load("libESD");
24    gSystem->Load("libAOD");
25    gSystem->Load("libANALYSIS");
26    gSystem->Load("libANALYSISalice");  
27    gSystem->Load("libPWGGAGammaConv.so");
28    gSystem->Load("libCDB.so");
29    gSystem->Load("libSTEER.so");
30    gSystem->Load("libSTEERBase.so");
31    gSystem->Load("libTENDER.so");
32    gSystem->Load("libTENDERSupplies.so");
33
34
35    cout<<"Entro 0"<<endl;
36
37    // ================== GetAnalysisManager ===============================
38    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
39    if (!mgr) {
40       Error(Form("AddTask_GammaConvDalitzV1_pPb_%i",trainConfig), "No analysis manager found.");
41       return ;
42    }
43
44    // ================== GetInputEventHandler =============================
45    AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
46    
47    //========= Add PID Reponse to ANALYSIS manager ====
48    if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){
49       gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
50       AddTaskPIDResponse(isMC);
51    }
52    
53    //=========  Set Cutnumber for V0Reader ================================
54    TString ConvCutnumber = "8000000060084001001500000000";   //Online  V0 finder
55    TString ElecCuts      = "9000540000000200000";            //Electron Cuts
56    Bool_t doEtaShift = kFALSE;
57
58
59
60    AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
61    
62    //========= Add V0 Reader to  ANALYSIS manager if not yet existent =====
63    if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){
64       AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1");
65       
66       fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
67       fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output
68       fV0ReaderV1->SetUseAODConversionPhoton(kTRUE);
69       
70       if (!mgr) {
71          Error("AddTask_V0ReaderV1", "No analysis manager found.");
72          return;
73       }
74
75       // Set AnalysisCut Number
76       AliConversionCuts *fCuts=NULL;
77       if( ConvCutnumber !=""){
78          fCuts= new AliConversionCuts(ConvCutnumber.Data(),ConvCutnumber.Data());
79          fCuts->SetPreSelectionCutFlag(kTRUE);
80          if(fCuts->InitializeCutsFromCutString(ConvCutnumber.Data())){
81             fCuts->DoEtaShift(doEtaShift);
82             fV0ReaderV1->SetConversionCuts(fCuts);
83             fCuts->SetFillCutHistograms("",kTRUE);
84          }
85       }
86       if(inputHandler->IsA()==AliAODInputHandler::Class()){
87       // AOD mode
88          fV0ReaderV1->SetDeltaAODBranchName(Form("GammaConv_%s_gamma",cutnumberAODBranch.Data()));
89       }
90       fV0ReaderV1->Init();
91
92       AliLog::SetGlobalLogLevel(AliLog::kInfo);
93
94       //connect input V0Reader
95       mgr->AddTask(fV0ReaderV1);
96       mgr->ConnectInput(fV0ReaderV1,0,cinput);
97
98    }
99
100    //================================================
101    //========= Add Electron Selector ================
102
103
104    if( !(AliDalitzElectronSelector*)mgr->GetTask("ElectronSelector") ){
105
106    AliDalitzElectronSelector *fElectronSelector = new AliDalitzElectronSelector("ElectronSelector");
107
108    // Set AnalysisCut Number
109
110    AliDalitzElectronCuts *fElecCuts=0;
111
112    //ElecCuts = "900054000000020000";
113
114     if( ElecCuts!=""){
115
116        fElecCuts= new AliDalitzElectronCuts(ElecCuts.Data(),ElecCuts.Data());
117
118             if(fElecCuts->InitializeCutsFromCutString(ElecCuts.Data())){
119
120                 fElectronSelector->SetDalitzElectronCuts(fElecCuts);
121
122                 fElecCuts->SetFillCutHistograms("",kTRUE);
123
124             }
125
126     }
127
128     fElectronSelector->Init();
129     mgr->AddTask(fElectronSelector);
130     
131     AliAnalysisDataContainer *cinput1  = mgr->GetCommonInputContainer();
132
133     //connect input V0Reader
134
135     mgr->ConnectInput (fElectronSelector,0,cinput1);
136
137     }
138
139
140
141     cout<<"Entro"<<endl;
142    //================================================
143    //========= Add task to the ANALYSIS manager =====
144    //================================================
145    //            find input container
146    
147   
148  
149    AliAnalysisTaskGammaConvDalitzV1 *task=NULL;
150
151    task= new AliAnalysisTaskGammaConvDalitzV1(Form("GammaConvDalitzV1_%i",trainConfig));
152
153    task->SetIsHeavyIon(2);
154    task->SetIsMC(isMC);
155
156
157
158    // Cut Numbers to use in Analysis
159    Int_t numberOfCuts = 6;
160
161    TString *ConvCutarray    = new TString[numberOfCuts];
162
163    TString *ElecCutarray    = new TString[numberOfCuts];
164
165    TString *MesonCutarray   = new TString[numberOfCuts];
166
167    Bool_t doEtaShiftIndCuts = kFALSE;
168    TString stringShift = "";
169
170    // Shifting in pPb direction
171
172    doEtaShiftIndCuts = kTRUE;
173    stringShift = "pPb";
174
175
176    if( trainConfig == 1 ) {
177         
178      //No eta shift Standard
179      
180         ConvCutarray[0] = "8000011082093603007200000000"; ElecCutarray[0] = "9047540025810262170"; MesonCutarray[0] = "01039035009000"; //standard cut Pi0 PbPb 00-100
181         ConvCutarray[1] = "8020011082093603007200000000"; ElecCutarray[1] = "9047540025810262170"; MesonCutarray[1] = "01039035009000"; //standard cut Pi0 PbPb 00-20
182         ConvCutarray[2] = "8240011082093603007200000000"; ElecCutarray[2] = "9047540025810262170"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 20-40
183         ConvCutarray[3] = "8460011082093603007200000000"; ElecCutarray[3] = "9047540025810262170"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 40-60
184         ConvCutarray[4] = "8680011082093603007200000000"; ElecCutarray[4] = "9047540025810262170"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 60-80        
185         ConvCutarray[5] = "8600011082093603007200000000"; ElecCutarray[5] = "9047540025810262170"; MesonCutarray[5] = "01039035009000"; //standard cut Pi0 PbPb 60-100
186         
187    } 
188   
189   else if( trainConfig == 2 ) {
190        //Standard cut
191        
192         ConvCutarray[0] = "8000011082093603007200000000"; ElecCutarray[0] = "9047540025810262170"; MesonCutarray[0] = "01039035009000"; //standard cut Pi0 PbPb 00-100
193         ConvCutarray[1] = "8020011082093603007200000000"; ElecCutarray[1] = "9047540025810262170"; MesonCutarray[1] = "01039035009000"; //standard cut Pi0 PbPb 00-20
194         ConvCutarray[2] = "8240011082093603007200000000"; ElecCutarray[2] = "9047540025810262170"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 20-40
195         ConvCutarray[3] = "8460011082093603007200000000"; ElecCutarray[3] = "9047540025810262170"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 40-60
196         ConvCutarray[4] = "8680011082093603007200000000"; ElecCutarray[4] = "9047540025810262170"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 60-80        
197         ConvCutarray[5] = "8600011082093603007200000000"; ElecCutarray[5] = "9047540025810262170"; MesonCutarray[5] = "01039035009000"; //standard cut Pi0 PbPb 60-100
198
199  }
200  else if( trainConfig == 3 ) {
201    
202         //No eta shift   |y| < 0.8 |electrons.eta < 0.9|  |gamma.eta| < 0.9
203         
204         ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540025310262170"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 PbPb 00-100
205         ConvCutarray[1] = "8020011002093603007200000000"; ElecCutarray[1] = "9047540025310262170"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 PbPb 00-20
206         ConvCutarray[2] = "8240011002093603007200000000"; ElecCutarray[2] = "9047540025310262170"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 PbPb 20-40
207         ConvCutarray[3] = "8460011002093603007200000000"; ElecCutarray[3] = "9047540025310262170"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 PbPb 40-60
208         ConvCutarray[4] = "8680011002093603007200000000"; ElecCutarray[4] = "9047540025310262170"; MesonCutarray[4] = "01031035009000"; //standard cut Pi0 PbPb 60-80        
209         ConvCutarray[5] = "8600011002093603007200000000"; ElecCutarray[5] = "9047540025310262170"; MesonCutarray[5] = "01031035009000"; //standard cut Pi0 PbPb 60-100
210    
211  }
212
213 else if( trainConfig == 4 ) {
214
215         ConvCutarray[0] = "8000011082093603007200000000"; ElecCutarray[0] = "9047540025810262171"; MesonCutarray[0] = "01039035009000"; //standard cut Pi0 PbPb 00-100
216         ConvCutarray[1] = "8020011082093603007200000000"; ElecCutarray[1] = "9047540025810262171"; MesonCutarray[1] = "01039035009000"; //standard cut Pi0 PbPb 00-20
217         ConvCutarray[2] = "8240011082093603007200000000"; ElecCutarray[2] = "9047540025810262171"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 20-40
218         ConvCutarray[3] = "8460011082093603007200000000"; ElecCutarray[3] = "9047540025810262171"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 40-60
219         ConvCutarray[4] = "8680011082093603007200000000"; ElecCutarray[4] = "9047540025810262171"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 60-80        
220         ConvCutarray[5] = "8600011082093603007200000000"; ElecCutarray[5] = "9047540025810262171"; MesonCutarray[5] = "01039035009000"; //standard cut Pi0 PbPb 60-100
221
222 } else if( trainConfig == 5 ) {
223
224         ConvCutarray[0] = "8000012082093603007200000000"; ElecCutarray[0] = "9047540025810262171"; MesonCutarray[0] = "01039035009000"; //standard cut Pi0 PbPb 00-100
225         ConvCutarray[1] = "8020012082093603007200000000"; ElecCutarray[1] = "9047540025810262171"; MesonCutarray[1] = "01039035009000"; //standard cut Pi0 PbPb 00-20
226         ConvCutarray[2] = "8240012082093603007200000000"; ElecCutarray[2] = "9047540025810262171"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 20-40
227         ConvCutarray[3] = "8460012082093603007200000000"; ElecCutarray[3] = "9047540025810262171"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 40-60
228         ConvCutarray[4] = "8680012082093603007200000000"; ElecCutarray[4] = "9047540025810262171"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 60-80        
229         ConvCutarray[5] = "8600012082093603007200000000"; ElecCutarray[5] = "9047540025810262171"; MesonCutarray[5] = "01039035009000"; //standard cut Pi0 PbPb 60-100
230         
231 } else if( trainConfig == 6 ) {
232   
233         //No eta shift |Y| < 0.8 |electrons.eta| < 0.9 |gamma.eta| < 0.9
234         
235         ConvCutarray[0] = "8000012002093603007200000000"; ElecCutarray[0] = "9047540025310262171"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 PbPb 00-100
236         ConvCutarray[1] = "8020012002093603007200000000"; ElecCutarray[1] = "9047540025310262171"; MesonCutarray[1] = "01031035009000"; //standard cut Pi0 PbPb 00-20
237         ConvCutarray[2] = "8240012002093603007200000000"; ElecCutarray[2] = "9047540025310262171"; MesonCutarray[2] = "01031035009000"; //standard cut Pi0 PbPb 20-40
238         ConvCutarray[3] = "8460012002093603007200000000"; ElecCutarray[3] = "9047540025310262171"; MesonCutarray[3] = "01031035009000"; //standard cut Pi0 PbPb 40-60
239         ConvCutarray[4] = "8680012002093603007200000000"; ElecCutarray[4] = "9047540025310262171"; MesonCutarray[4] = "01031035009000"; //standard cut Pi0 PbPb 60-80        
240         ConvCutarray[5] = "8600012002093603007200000000"; ElecCutarray[5] = "9047540025310262171"; MesonCutarray[5] = "01031035009000"; //standard cut Pi0 PbPb 60-100
241  }  else if( trainConfig == 7 ) {
242         //No eta shift added signals
243     
244         ConvCutarray[0] = "8000012082093603007200000000"; ElecCutarray[0] = "9047540025810262171"; MesonCutarray[0] = "01039035009000"; //standard cut Pi0 PbPb 00-100
245         ConvCutarray[1] = "8020012082093603007200000000"; ElecCutarray[1] = "9047540025810262171"; MesonCutarray[1] = "01039035009000"; //standard cut Pi0 PbPb 00-20
246         ConvCutarray[2] = "8240012082093603007200000000"; ElecCutarray[2] = "9047540025810262171"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 20-40
247         ConvCutarray[3] = "8460012082093603007200000000"; ElecCutarray[3] = "9047540025810262171"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 40-60
248         ConvCutarray[4] = "8680012082093603007200000000"; ElecCutarray[4] = "9047540025810262171"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 60-80        
249         ConvCutarray[5] = "8600012082093603007200000000"; ElecCutarray[5] = "9047540025810262171"; MesonCutarray[5] = "01039035009000"; //standard cut Pi0 PbPb 60-100
250
251  
252    
253    
254
255         
256
257    TList *ConvCutList  = new TList();
258    TList *MesonCutList = new TList();
259    TList *ElecCutList  = new TList();
260
261    TList *HeaderList = new TList();
262    TObjString *Header1 = new TObjString("pi0_1");
263    HeaderList->Add(Header1);
264    TObjString *Header3 = new TObjString("eta_2");
265    HeaderList->Add(Header3);
266    
267    ConvCutList->SetOwner(kTRUE);
268    AliConversionCuts **analysisCuts             = new AliConversionCuts*[numberOfCuts];
269    MesonCutList->SetOwner(kTRUE);
270    AliConversionMesonCuts **analysisMesonCuts   = new AliConversionMesonCuts*[numberOfCuts];
271    ElecCutList->SetOwner(kTRUE);
272    AliDalitzElectronCuts **analysisElecCuts     = new AliDalitzElectronCuts*[numberOfCuts];
273
274
275
276    for(Int_t i = 0; i<numberOfCuts; i++){
277
278
279       analysisCuts[i] = new AliConversionCuts();
280       if( ! analysisCuts[i]->InitializeCutsFromCutString(ConvCutarray[i].Data()) ) {
281             cout<<"ERROR: analysisCuts [" <<i<<"]"<<endl;
282             return 0;
283       }
284    else {
285
286    if ( trainConfig == 4 ){
287
288          if (i == 0 && doWeighting){
289
290             if (generatorName.CompareTo("DPMJET")==0){
291                analysisCuts[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");
292             } else if (generatorName.CompareTo("HIJING")==0){
293                analysisCuts[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");
294             }
295          }
296          if (i == 1 && doWeighting){
297             if (generatorName.CompareTo("DPMJET")==0){
298                analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_DPMJET_LHC13b2_efix_pPb_5023GeV_0020V0A", "Eta_DPMJET_LHC13b2_efix_pPb_5023GeV_0020V0A", "","Pi0_Fit_Data_pPb_5023GeV_0020V0A","Eta_Fit_Data_pPb_5023GeV_0020V0A");
299             } else if (generatorName.CompareTo("HIJING")==0){
300                analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13e7_pPb_5023GeV_0020V0A", "Eta_Hijing_LHC13e7_pPb_5023GeV_0020V0A", "","Pi0_Fit_Data_pPb_5023GeV_0020V0A","Eta_Fit_Data_pPb_5023GeV_0020V0A");
301             }
302          }
303          if (i == 2 && doWeighting){
304             if (generatorName.CompareTo("DPMJET")==0){
305                analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_DPMJET_LHC13b2_efix_pPb_5023GeV_2040V0A", "Eta_DPMJET_LHC13b2_efix_pPb_5023GeV_2040V0A", "","Pi0_Fit_Data_pPb_5023GeV_2040V0A","Eta_Fit_Data_pPb_5023GeV_2040V0A");
306             } else if (generatorName.CompareTo("HIJING")==0){
307                analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13e7_pPb_5023GeV_2040V0A", "Eta_Hijing_LHC13e7_pPb_5023GeV_2040V0A", "","Pi0_Fit_Data_pPb_5023GeV_2040V0A","Eta_Fit_Data_pPb_5023GeV_2040V0A");
308             }
309          }
310          if (i == 3 && doWeighting){
311             if (generatorName.CompareTo("DPMJET")==0){
312                analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_DPMJET_LHC13b2_efix_pPb_5023GeV_4060V0A", "Eta_DPMJET_LHC13b2_efix_pPb_5023GeV_4060V0A", "","Pi0_Fit_Data_pPb_5023GeV_4060V0A","Eta_Fit_Data_pPb_5023GeV_4060V0A");
313             } else if (generatorName.CompareTo("HIJING")==0){
314                analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13e7_pPb_5023GeV_4060V0A", "Eta_Hijing_LHC13e7_pPb_5023GeV_4060V0A", "","Pi0_Fit_Data_pPb_5023GeV_4060V0A","Eta_Fit_Data_pPb_5023GeV_4060V0A");
315             }
316          }
317          if (i == 4 && doWeighting){
318             if (generatorName.CompareTo("DPMJET")==0){
319                analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_DPMJET_LHC13b2_efix_pPb_5023GeV_6080V0A", "Eta_DPMJET_LHC13b2_efix_pPb_5023GeV_6080V0A", "","Pi0_Fit_Data_pPb_5023GeV_6080V0A","Eta_Fit_Data_pPb_5023GeV_6080V0A");
320             } else if (generatorName.CompareTo("HIJING")==0){
321                analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13e7_pPb_5023GeV_6080V0A", "Eta_Hijing_LHC13e7_pPb_5023GeV_6080V0A", "","Pi0_Fit_Data_pPb_5023GeV_6080V0A","Eta_Fit_Data_pPb_5023GeV_6080V0A");
322             }
323          }
324          if (i == 5 && doWeighting){
325             if (generatorName.CompareTo("DPMJET")==0){
326                analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_DPMJET_LHC13b2_efix_pPb_5023GeV_60100V0A", "Eta_DPMJET_LHC13b2_efix_pPb_5023GeV_60100V0A", "","Pi0_Fit_Data_pPb_5023GeV_60100V0A","Eta_Fit_Data_pPb_5023GeV_60100V0A");
327             } else if (generatorName.CompareTo("HIJING")==0){
328                analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13e7_pPb_5023GeV_60100V0A", "Eta_Hijing_LHC13e7_pPb_5023GeV_60100V0A", "","Pi0_Fit_Data_pPb_5023GeV_60100V0A","Eta_Fit_Data_pPb_5023GeV_60100V0A");
329             }
330          }
331    }
332       
333    else if (trainConfig == 5 ||  trainConfig == 6  || trainConfig == 7 ){
334
335          if (i == 0 && doWeighting){
336             analysisCuts[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");
337          }
338          if (i == 1 && doWeighting){
339             analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13e7_addSig_pPb_5023GeV_0020V0A", "Eta_Hijing_LHC13e7_addSig_pPb_5023GeV_0020V0A", "","Pi0_Fit_Data_pPb_5023GeV_0020V0A","Eta_Fit_Data_pPb_5023GeV_0020V0A");
340             
341          }
342          if (i == 2 && doWeighting){
343             analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13e7_addSig_pPb_5023GeV_2040V0A", "Eta_Hijing_LHC13e7_addSig_pPb_5023GeV_2040V0A", "","Pi0_Fit_Data_pPb_5023GeV_2040V0A","Eta_Fit_Data_pPb_5023GeV_2040V0A");
344             
345          }
346          if (i == 3 && doWeighting){
347             analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13e7_addSig_pPb_5023GeV_4060V0A", "Eta_Hijing_LHC13e7_addSig_pPb_5023GeV_4060V0A", "","Pi0_Fit_Data_pPb_5023GeV_4060V0A","Eta_Fit_Data_pPb_5023GeV_4060V0A");
348          }
349          if (i == 4 && doWeighting){
350             analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13e7_addSig_pPb_5023GeV_6080V0A", "Eta_Hijing_LHC13e7_addSig_pPb_5023GeV_6080V0A", "","Pi0_Fit_Data_pPb_5023GeV_6080V0A","Eta_Fit_Data_pPb_5023GeV_6080V0A");
351          }
352          if (i == 5 && doWeighting){
353             analysisCuts[i]->SetUseReweightingWithHistogramFromFile(kTRUE, kTRUE, kFALSE, fileNameInputForWeighting, "Pi0_Hijing_LHC13e7_addSig_pPb_5023GeV_60100V0A", "Eta_Hijing_LHC13e7_addSig_pPb_5023GeV_60100V0A", "","Pi0_Fit_Data_pPb_5023GeV_60100V0A","Eta_Fit_Data_pPb_5023GeV_60100V0A");
354          }
355      }
356         
357
358
359       
360         if (doEtaShiftIndCuts) {
361           
362           if( trainConfig == 2 || trainConfig == 4 || trainConfig == 5 ){   //Apply_eta shift
363           
364               analysisCuts[i]->DoEtaShift(doEtaShiftIndCuts);
365               analysisCuts[i]->SetEtaShift(stringShift);
366           }
367         }
368         ConvCutList->Add(analysisCuts[i]);
369         analysisCuts[i]->SetFillCutHistograms("",kFALSE);
370         analysisCuts[i]->SetAcceptedHeader(HeaderList);
371    }
372
373
374
375       analysisMesonCuts[i] = new AliConversionMesonCuts();
376     
377       if( ! analysisMesonCuts[i]->InitializeCutsFromCutString(MesonCutarray[i].Data()) ) {
378             cout<<"ERROR: analysisMesonCuts [ " <<i<<" ] "<<endl;
379             return 0;
380       }
381       else {
382             MesonCutList->Add(analysisMesonCuts[i]);
383             analysisMesonCuts[i]->SetFillCutHistograms("");
384       }
385
386
387        TString cutName( Form("%s_%s_%s",ConvCutarray[i].Data(),ElecCutarray[i].Data(),MesonCutarray[i].Data() ) );
388
389
390        analysisElecCuts[i] = new AliDalitzElectronCuts();
391        if( !analysisElecCuts[i]->InitializeCutsFromCutString(ElecCutarray[i].Data())) {
392
393             cout<< "ERROR:  analysisElecCuts [ " <<i<<" ] "<<endl;
394             return 0;
395        }
396        else { 
397         ElecCutList->Add(analysisElecCuts[i]);
398         analysisElecCuts[i]->SetFillCutHistograms("",kFALSE,cutName); 
399        }
400      
401
402    }
403
404
405    task->SetConversionCutList(numberOfCuts,ConvCutList);
406    task->SetMesonCutList(MesonCutList);
407    task->SetElectronCutList(ElecCutList);
408
409    task->SetMoveParticleAccordingToVertex(kTRUE);
410
411
412    if(enableQAMesonTask) task->SetDoMesonQA(kTRUE);
413    if(enableDoMesonChic) task->SetDoChicAnalysis(kTRUE);
414
415    //connect containers
416    AliAnalysisDataContainer *coutput =
417    mgr->CreateContainer(Form("GammaConvDalitzV1_%i",trainConfig), TList::Class(),
418                            AliAnalysisManager::kOutputContainer,Form("GammaConvV1Dalitz_%i.root",trainConfig));
419
420    mgr->AddTask(task);
421    mgr->ConnectInput(task,0,cinput);
422    mgr->ConnectOutput(task,1,coutput);
423
424    return;
425
426 }