]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/macros/AddTask_GammaConvDalitzQAV1_pPb.C
including a flag do enable filling QA histos
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / macros / AddTask_GammaConvDalitzQAV1_pPb.C
CommitLineData
34fc0eec 1void 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
2d49ea4c 5 Bool_t enableSetProdVtxVGamma = kTRUE,
34fc0eec 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;
2d49ea4c 19 cout<<"enableSetProdVtxVGamma: "<<enableSetProdVtxVGamma<<endl;
34fc0eec 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
58326f11 44
45
46
47
48
2d49ea4c 49
50
51
34fc0eec 52
53 cout<<"Entro 0"<<endl;
54
55 // ================== GetAnalysisManager ===============================
56 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
57 if (!mgr) {
58 Error(Form("AddTask_GammaConvDalitzV1_pPb_%i",trainConfig), "No analysis manager found.");
59 return ;
60 }
61
62 // ================== GetInputEventHandler =============================
63 AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
64
65 //========= Add PID Reponse to ANALYSIS manager ====
66 if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){
67 gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
68 AddTaskPIDResponse(isMC);
69 }
70
71 //========= Set Cutnumber for V0Reader ================================
f47b2bb5 72 TString ConvCutnumber="";
73
74 if(trainConfig == 9 || trainConfig == 10 ){
75 ConvCutnumber = "8000000160084001001500000000"; //Offline V0 finder
76 }
77 else {
2d49ea4c 78 ConvCutnumber = "8000000060084001001500000000"; //Online V0 finder
f47b2bb5 79 }
80
34fc0eec 81 TString ElecCuts = "9000540000000200000"; //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 if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){
90 AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1");
91
92 fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
93 fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output
94 fV0ReaderV1->SetUseAODConversionPhoton(kTRUE);
95
96 if (!mgr) {
97 Error("AddTask_V0ReaderV1", "No analysis manager found.");
98 return;
99 }
100
101 // Set AnalysisCut Number
102 AliConversionCuts *fCuts=NULL;
103 if( ConvCutnumber !=""){
104 fCuts= new AliConversionCuts(ConvCutnumber.Data(),ConvCutnumber.Data());
105 fCuts->SetPreSelectionCutFlag(kTRUE);
106 if(fCuts->InitializeCutsFromCutString(ConvCutnumber.Data())){
107 fCuts->DoEtaShift(doEtaShift);
108 fV0ReaderV1->SetConversionCuts(fCuts);
109 fCuts->SetFillCutHistograms("",kTRUE);
110 }
111 }
112 if(inputHandler->IsA()==AliAODInputHandler::Class()){
113 // AOD mode
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 //ElecCuts = "900054000000020000";
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 fElectronSelector->Init();
154 mgr->AddTask(fElectronSelector);
155
156 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
157
158 //connect input V0Reader
159
160 mgr->ConnectInput (fElectronSelector,0,cinput1);
161
162 }
163
164
165
166 cout<<"Entro"<<endl;
167 //================================================
168 //========= Add task to the ANALYSIS manager =====
169 //================================================
170 // find input container
171
172
173
174 AliAnalysisTaskGammaConvDalitzV1 *task=NULL;
175
176 task= new AliAnalysisTaskGammaConvDalitzV1(Form("GammaConvDalitzV1_%i",trainConfig));
177
178 task->SetIsHeavyIon(2);
179 task->SetIsMC(isMC);
180
181
182
183 // Cut Numbers to use in Analysis
184 Int_t numberOfCuts = 1;
185
186 TString *ConvCutarray = new TString[numberOfCuts];
187
188 TString *ElecCutarray = new TString[numberOfCuts];
189
190 TString *MesonCutarray = new TString[numberOfCuts];
191
192 Bool_t doEtaShiftIndCuts = kFALSE;
193 TString stringShift = "";
194
195 // Shifting in pPb direction
196
197 doEtaShiftIndCuts = kFALSE;
198 stringShift = "pPb";
199
200
201
202
203if( trainConfig == 1 ) { // No eta shift |Y| < 0.8
204
205 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540023310262371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011
206
207} else if( trainConfig == 2 ) { // No eta shift |Y| < 0.8
208
258b4572 209 ConvCutarray[0] = "8000011032093603007200000000"; ElecCutarray[0] = "9047540023910262371"; 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
34fc0eec 210
211} else if( trainConfig == 3 ) { // No eta shift |Y| < 0.8
212
258b4572 213 ConvCutarray[0] = "8000011042093603007200000000"; ElecCutarray[0] = "9047540023510262371"; 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
34fc0eec 214
215} else if( trainConfig == 4 ) { // No eta shift |Y| < 0.8
216
258b4572 217 ConvCutarray[0] = "8000011012093603007200000000"; ElecCutarray[0] = "9047540023610262371"; 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
34fc0eec 218
258b4572 219} else if ( trainConfig == 5 ) {
220
221 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540023310262331"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011
222
78cea1d2 223} else if ( trainConfig == 6 ) { // No eta shift |Y| < 0.8
224
225 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540023310264371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011
226
227} else if ( trainConfig == 7 ) {
228
229 ConvCutarray[0] = "8000012002093603007200000000"; ElecCutarray[0] = "9047540023310262371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011
230
231} else if ( trainConfig == 8 ) { // No eta shift |Y| < 0.8
232
233 ConvCutarray[0] = "8000012002093603007200000000"; ElecCutarray[0] = "9047540023310264371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011
234
f47b2bb5 235} else if ( trainConfig == 9 ) {
236
237 ConvCutarray[0] = "8000011102093603007200000000"; ElecCutarray[0] = "9047540023310262371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011
238
239} else if ( trainConfig == 10 ) {
240
241 ConvCutarray[0] = "8000012102093603007200000000"; ElecCutarray[0] = "9047540023310262371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011
242
f4d5bd23 243} else if ( trainConfig == 11 ) {
244
245 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540023310262301"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011
246
247} else if ( trainConfig == 12 ) {
248
249 ConvCutarray[0] = "8000012002093603007200000000"; ElecCutarray[0] = "9047540023310262301"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011
250
2d49ea4c 251} else if ( trainConfig == 13 ) {
252
253 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540053310262371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011 + 4 ITScls
254
255} else if ( trainConfig == 14 ) {
256
257 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540073310262371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011 + 4 ITScls no Any
258
259} else if ( trainConfig == 15 ) {
34fc0eec 260
2d49ea4c 261 ConvCutarray[0] = "8000012002093603007200000000"; ElecCutarray[0] = "9047540053310262371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011 + 4 ITScls
262
263} else if ( trainConfig == 16 ) {
264
265 ConvCutarray[0] = "8000012002093603007200000000"; ElecCutarray[0] = "9047540073310262371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011 + 4 ITScls no Any
8fa2d145 266
267} else if ( trainConfig == 17 ) {
268
269 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540083310262371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011 + kBoth
270
271} else if ( trainConfig == 18 ) {
34fc0eec 272
8fa2d145 273 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540093310262371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011 + kBoth + 4ITS cls
274
275} else if ( trainConfig == 19 ) {
276
277 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540013310262371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011 + kFirts
278
2055a442 279} else if ( trainConfig == 20 ) {
280
58326f11 281 ConvCutarray[0] = "8000011002092170008260400000"; ElecCutarray[0] = "9047540023310262371"; MesonCutarray[0] = "01621035009000"; // standard cut Annika analysis:
2055a442 282
283} else if ( trainConfig == 21 ) {
284
58326f11 285 ConvCutarray[0] = "8000011002092170008260400000"; ElecCutarray[0] = "9047540013310262371"; MesonCutarray[0] = "01621035009000"; // standard cut Annika analysis: + kFirst
286
287} else if ( trainConfig == 22 ){
288
289 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540015310262171"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 + Old Standard 2010 + kFirtst
290
291} else if ( trainConfig == 23 ) {
292
293 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540085310262171"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 + Old Standard 2010 + kBoth
294
295} else if ( trainConfig == 24 ){
296
297 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540015310262170"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 + Old Standard 2010 + kFirtst No weights
298
299} else if ( trainConfig == 25 ) {
300
301 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540085310262170"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 + Old Standard 2010 + kBoth No weights
302
303} else if ( trainConfig == 26 ) {
304
305 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540013310262370"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011 + kFirts + No weights
306
307} else if ( trainConfig == 27 ) {
308
309 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540083310262370"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011 + kBoth + No weights
310
311} else if ( trainConfig == 28 ) {
312
313 ConvCutarray[0] = "8000011002493603007200000000"; ElecCutarray[0] = "9047540023310262371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011 + Pt > 0.075
314
315} else if ( trainConfig == 29 ) {
316
317 ConvCutarray[0] = "8000011002193603007200000000"; ElecCutarray[0] = "9047540023310262371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011 + Pt > 0.100
318
319} else if ( trainConfig == 30 ) {
320
321 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540023310263371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011 + Pt{e} > 0.150
322
323} else if ( trainConfig == 31 ) {
324
325 ConvCutarray[0] = "8000011002093603007200000000"; ElecCutarray[0] = "9047540023310265371"; MesonCutarray[0] = "01031035009000"; //standard cut Pi0 pPb 00-100 //Tracks 2011 + Pt{e} > 0.175
8fa2d145 326}
34fc0eec 327
f4d5bd23 328
58326f11 329
330
331
332
333
34fc0eec 334 TList *ConvCutList = new TList();
335 TList *MesonCutList = new TList();
336 TList *ElecCutList = new TList();
337
338 TList *HeaderList = new TList();
339 TObjString *Header1 = new TObjString("pi0_1");
340 HeaderList->Add(Header1);
341 TObjString *Header3 = new TObjString("eta_2");
342 HeaderList->Add(Header3);
343
344 ConvCutList->SetOwner(kTRUE);
345 AliConversionCuts **analysisCuts = new AliConversionCuts*[numberOfCuts];
346 MesonCutList->SetOwner(kTRUE);
347 AliConversionMesonCuts **analysisMesonCuts = new AliConversionMesonCuts*[numberOfCuts];
348 ElecCutList->SetOwner(kTRUE);
349 AliDalitzElectronCuts **analysisElecCuts = new AliDalitzElectronCuts*[numberOfCuts];
350
351
352
353 for(Int_t i = 0; i<numberOfCuts; i++){
354
355
2d49ea4c 356 analysisCuts[i] = new AliConversionCuts();
357
34fc0eec 358
58326f11 359 if ( ( trainConfig >= 1 && trainConfig <= 6 ) || trainConfig == 9 || trainConfig == 11 || trainConfig == 13 || trainConfig == 14 || trainConfig == 17 || trainConfig == 18 || trainConfig == 19 || trainConfig == 20 || trainConfig == 21 || trainConfig == 22 || trainConfig == 23 ||
360 trainConfig == 28 || trainConfig == 29 || trainConfig == 30 || trainConfig == 31 )
361 ){
34fc0eec 362
363 if (doWeighting){
364 if (generatorName.CompareTo("DPMJET")==0){
365 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");
366 } else if (generatorName.CompareTo("HIJING")==0){
367 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");
368 }
369 }
2d49ea4c 370 } else if ( trainConfig == 7 || trainConfig == 8 || trainConfig == 10 || trainConfig == 12 || trainConfig == 15 || trainConfig == 16 ){
78cea1d2 371
2d49ea4c 372 if (doWeighting){
373 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");
374 }
34fc0eec 375 }
2d49ea4c 376 if( ! analysisCuts[i]->InitializeCutsFromCutString(ConvCutarray[i].Data()) ) {
377 cout<<"ERROR: analysisCuts [" <<i<<"]"<<endl;
378 return 0;
379 } else {
380
381 if (doEtaShiftIndCuts) {
78cea1d2 382
2d49ea4c 383 analysisCuts[i]->DoEtaShift(doEtaShiftIndCuts);
384 analysisCuts[i]->SetEtaShift(stringShift);
385 }
386 ConvCutList->Add(analysisCuts[i]);
387 analysisCuts[i]->SetFillCutHistograms("",kFALSE);
388 analysisCuts[i]->SetAcceptedHeader(HeaderList);
34fc0eec 389
34fc0eec 390 }
34fc0eec 391
392
393
394 analysisMesonCuts[i] = new AliConversionMesonCuts();
395
396 if( ! analysisMesonCuts[i]->InitializeCutsFromCutString(MesonCutarray[i].Data()) ) {
397 cout<<"ERROR: analysisMesonCuts [ " <<i<<" ] "<<endl;
398 return 0;
399 }
400 else {
401 MesonCutList->Add(analysisMesonCuts[i]);
402 analysisMesonCuts[i]->SetFillCutHistograms("");
403 }
404
405
406 TString cutName( Form("%s_%s_%s",ConvCutarray[i].Data(),ElecCutarray[i].Data(),MesonCutarray[i].Data() ) );
407
408
409 analysisElecCuts[i] = new AliDalitzElectronCuts();
410 if( !analysisElecCuts[i]->InitializeCutsFromCutString(ElecCutarray[i].Data())) {
411
412 cout<< "ERROR: analysisElecCuts [ " <<i<<" ] "<<endl;
413 return 0;
414 }
415 else {
416 ElecCutList->Add(analysisElecCuts[i]);
417 analysisElecCuts[i]->SetFillCutHistograms("",kFALSE,cutName);
418 }
419
420
421 }
422
423
424 task->SetConversionCutList(numberOfCuts,ConvCutList);
425 task->SetMesonCutList(MesonCutList);
426 task->SetElectronCutList(ElecCutList);
427
428 task->SetMoveParticleAccordingToVertex(kTRUE);
2d49ea4c 429
430 if(enableSetProdVtxVGamma) task->SetProductionVertextoVGamma(kTRUE);
34fc0eec 431 if(enableQAMesonTask) task->SetDoMesonQA(kTRUE);
432 if(enableDoMesonChic) task->SetDoChicAnalysis(kTRUE);
433
434 //connect containers
435 AliAnalysisDataContainer *coutput =
436 mgr->CreateContainer(Form("GammaConvDalitzV1_%i",trainConfig), TList::Class(),
437 AliAnalysisManager::kOutputContainer,Form("GammaConvV1Dalitz_%i.root",trainConfig));
438
439 mgr->AddTask(task);
440 mgr->ConnectInput(task,0,cinput);
441 mgr->ConnectOutput(task,1,coutput);
442
443 return;
444
445}