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"
13 cout<<"Entro -1"<<endl;
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");
35 cout<<"Entro 0"<<endl;
37 // ================== GetAnalysisManager ===============================
38 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
40 Error(Form("AddTask_GammaConvDalitzV1_pPb_%i",trainConfig), "No analysis manager found.");
44 // ================== GetInputEventHandler =============================
45 AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
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);
53 //========= Set Cutnumber for V0Reader ================================
54 TString ConvCutnumber = "8000000060084001001500000000"; //Online V0 finder
55 TString ElecCuts = "9000540000000200000"; //Electron Cuts
56 Bool_t doEtaShift = kFALSE;
60 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
62 //========= Add V0 Reader to ANALYSIS manager if not yet existent =====
63 if( !(AliV0ReaderV1*)mgr->GetTask("V0ReaderV1") ){
64 AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1");
66 fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE);
67 fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output
68 fV0ReaderV1->SetUseAODConversionPhoton(kTRUE);
71 Error("AddTask_V0ReaderV1", "No analysis manager found.");
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);
86 if(inputHandler->IsA()==AliAODInputHandler::Class()){
88 fV0ReaderV1->SetDeltaAODBranchName(Form("GammaConv_%s_gamma",cutnumberAODBranch.Data()));
92 AliLog::SetGlobalLogLevel(AliLog::kInfo);
94 //connect input V0Reader
95 mgr->AddTask(fV0ReaderV1);
96 mgr->ConnectInput(fV0ReaderV1,0,cinput);
100 //================================================
101 //========= Add Electron Selector ================
104 if( !(AliDalitzElectronSelector*)mgr->GetTask("ElectronSelector") ){
106 AliDalitzElectronSelector *fElectronSelector = new AliDalitzElectronSelector("ElectronSelector");
108 // Set AnalysisCut Number
110 AliDalitzElectronCuts *fElecCuts=0;
112 //ElecCuts = "900054000000020000";
116 fElecCuts= new AliDalitzElectronCuts(ElecCuts.Data(),ElecCuts.Data());
118 if(fElecCuts->InitializeCutsFromCutString(ElecCuts.Data())){
120 fElectronSelector->SetDalitzElectronCuts(fElecCuts);
122 fElecCuts->SetFillCutHistograms("",kTRUE);
128 fElectronSelector->Init();
129 mgr->AddTask(fElectronSelector);
131 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
133 //connect input V0Reader
135 mgr->ConnectInput (fElectronSelector,0,cinput1);
142 //================================================
143 //========= Add task to the ANALYSIS manager =====
144 //================================================
145 // find input container
149 AliAnalysisTaskGammaConvDalitzV1 *task=NULL;
151 task= new AliAnalysisTaskGammaConvDalitzV1(Form("GammaConvDalitzV1_%i",trainConfig));
153 task->SetIsHeavyIon(2);
158 // Cut Numbers to use in Analysis
159 Int_t numberOfCuts = 6;
161 TString *ConvCutarray = new TString[numberOfCuts];
163 TString *ElecCutarray = new TString[numberOfCuts];
165 TString *MesonCutarray = new TString[numberOfCuts];
167 Bool_t doEtaShiftIndCuts = kFALSE;
168 TString stringShift = "";
170 // Shifting in pPb direction
172 doEtaShiftIndCuts = kTRUE;
176 if( trainConfig == 1 ) {
178 ConvCutarray[0] = "8000011082093603007200000000"; ElecCutarray[0] = "9047540025810262170"; MesonCutarray[0] = "01039035009000"; //standard cut Pi0 PbPb 00-100
179 ConvCutarray[1] = "8000011082093603007200000000"; ElecCutarray[1] = "9047540025810261170"; MesonCutarray[1] = "01039035009000"; //standard cut Pi0 PbPb 00-100 + Single Pt primary > 0.100 GeV
180 ConvCutarray[2] = "8000011082094603007200000000"; ElecCutarray[2] = "9047540025810262170"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 00-100 + dEdx electron gamma -6 ,7 sigmas
181 ConvCutarray[3] = "8000011082093603007203000000"; ElecCutarray[3] = "9047540025810262170"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 00-100 do Aysemtri cut
182 ConvCutarray[4] = "8000011082093603007200000000"; ElecCutarray[4] = "9051540025810262170"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 00-100
183 ConvCutarray[5] = "8000011082093603007200000000"; ElecCutarray[5] = "9051540025810262170"; MesonCutarray[5] = "01039035009000"; //standard cut Pi0 PbPb 00-100 Standard cut + dEdx primary -3, 5 and 3.0 , -10 pion rejection
186 else if( trainConfig == 2 ) {
188 ConvCutarray[0] = "8000011082093603007200000000"; ElecCutarray[0] = "9047540025810262170"; MesonCutarray[0] = "01039035009000"; //standard cut Pi0 PbPb 00-100
189 ConvCutarray[1] = "8020011082093603007200000000"; ElecCutarray[1] = "9047540025810262170"; MesonCutarray[1] = "01039035009000"; //standard cut Pi0 PbPb 00-20
190 ConvCutarray[2] = "8240011082093603007200000000"; ElecCutarray[2] = "9047540025810262170"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 20-40
191 ConvCutarray[3] = "8460011082093603007200000000"; ElecCutarray[3] = "9047540025810262170"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 40-60
192 ConvCutarray[4] = "8680011082093603007200000000"; ElecCutarray[4] = "9047540025810262170"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 60-80
193 ConvCutarray[5] = "8600011082093603007200000000"; ElecCutarray[5] = "9047540025810262170"; MesonCutarray[5] = "01039035009000"; //standard cut Pi0 PbPb 60-100
197 else if( trainConfig == 3 ) {
199 ConvCutarray[0] = "8000011082093603007200000000"; ElecCutarray[0] = "9047540025810262171"; MesonCutarray[0] = "01039035009000"; //standard cut Pi0 PbPb 00-100
200 ConvCutarray[1] = "8020011082093603007200000000"; ElecCutarray[1] = "9047540025810262171"; MesonCutarray[1] = "01039035009000"; //standard cut Pi0 PbPb 00-20
201 ConvCutarray[2] = "8240011082093603007200000000"; ElecCutarray[2] = "9047540025810262171"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 20-40
202 ConvCutarray[3] = "8460011082093603007200000000"; ElecCutarray[3] = "9047540025810262171"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 40-60
203 ConvCutarray[4] = "8680011082093603007200000000"; ElecCutarray[4] = "9047540025810262171"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 60-80
204 ConvCutarray[5] = "8600011082093603007200000000"; ElecCutarray[5] = "9047540025810262171"; MesonCutarray[5] = "01039035009000"; //standard cut Pi0 PbPb 60-100
206 } else if( trainConfig == 4 ) {
208 ConvCutarray[0] = "8000012082093603007200000000"; ElecCutarray[0] = "9047540025810262171"; MesonCutarray[0] = "01039035009000"; //standard cut Pi0 PbPb 00-100
209 ConvCutarray[1] = "8020012082093603007200000000"; ElecCutarray[1] = "9047540025810262171"; MesonCutarray[1] = "01039035009000"; //standard cut Pi0 PbPb 00-20
210 ConvCutarray[2] = "8240012082093603007200000000"; ElecCutarray[2] = "9047540025810262171"; MesonCutarray[2] = "01039035009000"; //standard cut Pi0 PbPb 20-40
211 ConvCutarray[3] = "8460012082093603007200000000"; ElecCutarray[3] = "9047540025810262171"; MesonCutarray[3] = "01039035009000"; //standard cut Pi0 PbPb 40-60
212 ConvCutarray[4] = "8680012082093603007200000000"; ElecCutarray[4] = "9047540025810262171"; MesonCutarray[4] = "01039035009000"; //standard cut Pi0 PbPb 60-80
213 ConvCutarray[5] = "8600012082093603007200000000"; ElecCutarray[5] = "9047540025810262171"; MesonCutarray[5] = "01039035009000"; //standard cut Pi0 PbPb 60-100
218 TList *ConvCutList = new TList();
219 TList *MesonCutList = new TList();
220 TList *ElecCutList = new TList();
222 TList *HeaderList = new TList();
223 TObjString *Header1 = new TObjString("pi0_1");
224 HeaderList->Add(Header1);
225 TObjString *Header3 = new TObjString("eta_2");
226 HeaderList->Add(Header3);
228 ConvCutList->SetOwner(kTRUE);
229 AliConversionCuts **analysisCuts = new AliConversionCuts*[numberOfCuts];
230 MesonCutList->SetOwner(kTRUE);
231 AliConversionMesonCuts **analysisMesonCuts = new AliConversionMesonCuts*[numberOfCuts];
232 ElecCutList->SetOwner(kTRUE);
233 AliDalitzElectronCuts **analysisElecCuts = new AliDalitzElectronCuts*[numberOfCuts];
237 for(Int_t i = 0; i<numberOfCuts; i++){
240 analysisCuts[i] = new AliConversionCuts();
241 if( ! analysisCuts[i]->InitializeCutsFromCutString(ConvCutarray[i].Data()) ) {
242 cout<<"ERROR: analysisCuts [" <<i<<"]"<<endl;
247 if ( trainConfig == 3 ){
249 if (i == 0 && doWeighting){
251 if (generatorName.CompareTo("DPMJET")==0){
252 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");
253 } else if (generatorName.CompareTo("HIJING")==0){
254 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");
257 if (i == 1 && doWeighting){
258 if (generatorName.CompareTo("DPMJET")==0){
259 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");
260 } else if (generatorName.CompareTo("HIJING")==0){
261 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");
264 if (i == 2 && doWeighting){
265 if (generatorName.CompareTo("DPMJET")==0){
266 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");
267 } else if (generatorName.CompareTo("HIJING")==0){
268 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");
271 if (i == 3 && doWeighting){
272 if (generatorName.CompareTo("DPMJET")==0){
273 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");
274 } else if (generatorName.CompareTo("HIJING")==0){
275 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");
278 if (i == 4 && doWeighting){
279 if (generatorName.CompareTo("DPMJET")==0){
280 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");
281 } else if (generatorName.CompareTo("HIJING")==0){
282 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");
285 if (i == 5 && doWeighting){
286 if (generatorName.CompareTo("DPMJET")==0){
287 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");
288 } else if (generatorName.CompareTo("HIJING")==0){
289 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");
293 else if (trainConfig == 4 ){
295 if (i == 0 && doWeighting){
296 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");
298 if (i == 1 && doWeighting){
299 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");
302 if (i == 2 && doWeighting){
303 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");
306 if (i == 3 && doWeighting){
307 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");
309 if (i == 4 && doWeighting){
310 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");
312 if (i == 5 && doWeighting){
313 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");
320 if (doEtaShiftIndCuts) {
321 analysisCuts[i]->DoEtaShift(doEtaShiftIndCuts);
322 analysisCuts[i]->SetEtaShift(stringShift);
324 ConvCutList->Add(analysisCuts[i]);
325 analysisCuts[i]->SetFillCutHistograms("",kFALSE);
326 analysisCuts[i]->SetAcceptedHeader(HeaderList);
331 analysisMesonCuts[i] = new AliConversionMesonCuts();
333 if( ! analysisMesonCuts[i]->InitializeCutsFromCutString(MesonCutarray[i].Data()) ) {
334 cout<<"ERROR: analysisMesonCuts [ " <<i<<" ] "<<endl;
338 MesonCutList->Add(analysisMesonCuts[i]);
339 analysisMesonCuts[i]->SetFillCutHistograms("");
343 TString cutName( Form("%s_%s_%s",ConvCutarray[i].Data(),ElecCutarray[i].Data(),MesonCutarray[i].Data() ) );
346 analysisElecCuts[i] = new AliDalitzElectronCuts();
347 if( !analysisElecCuts[i]->InitializeCutsFromCutString(ElecCutarray[i].Data())) {
349 cout<< "ERROR: analysisElecCuts [ " <<i<<" ] "<<endl;
353 ElecCutList->Add(analysisElecCuts[i]);
354 analysisElecCuts[i]->SetFillCutHistograms("",kFALSE,cutName);
361 task->SetConversionCutList(numberOfCuts,ConvCutList);
362 task->SetMesonCutList(MesonCutList);
363 task->SetElectronCutList(ElecCutList);
365 task->SetMoveParticleAccordingToVertex(kTRUE);
368 if(enableQAMesonTask) task->SetDoMesonQA(kTRUE);
369 if(enableDoMesonChic) task->SetDoChicAnalysis(kTRUE);
372 AliAnalysisDataContainer *coutput =
373 mgr->CreateContainer(Form("GammaConvDalitzV1_%i",trainConfig), TList::Class(),
374 AliAnalysisManager::kOutputContainer,Form("GammaConvV1Dalitz_%i.root",trainConfig));
377 mgr->ConnectInput(task,0,cinput);
378 mgr->ConnectOutput(task,1,coutput);