]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/AddTask_cbaumann_LMEEPbPb2011AOD.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_cbaumann_LMEEPbPb2011AOD.C
CommitLineData
696b423a 1AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011AOD(Char_t* outputFileName="LMEEoutput.root",
2 Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE, Bool_t rejOnly=kTRUE,
3 Int_t triggerNames=(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral),Int_t collCands= AliVEvent::kAny) {
c787ecdf 4 Bool_t bESDANA=kFALSE; //Autodetect via InputHandler
9f00b65f 5 //get the current analysis manager
6 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7 if (!mgr) {
8 Error("AddTask_cbaumann_LMEEPbPb2011", "No analysis manager found.");
9 return 0;
10 }
11
9f00b65f 12
f88c2b26 13// create task and add it to the manager
14// gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE");
15
f88c2b26 16 TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/");
17 TString trainRoot=gSystem->Getenv("TRAIN_ROOT");
18 if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/";
19
7dfef2f7 20
6783184e 21
22 //Load updated macros from private ALIEN path
f88c2b26 23 if (getFromAlien &&
7dfef2f7 24 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigLMEEPbPb2011AOD.C .")) &&
25 (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibAOD.C ."))
26 ) {
27 configBasePath=Form("%s/",gSystem->pwd());
f88c2b26 28 }
7dfef2f7 29
f88c2b26 30 TString configFile("ConfigLMEEPbPb2011AOD.C");
31 TString configLMEECutLib("LMEECutLibAOD.C");
9f00b65f 32
f88c2b26 33 TString configFilePath(configBasePath+configFile);
34 TString configLMEECutLibPath(configBasePath+configLMEECutLib);
35
36 //AOD Usage currently tested with separate task, to be merged
9f00b65f 37 if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){
38 ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration");
9f00b65f 39 }
c787ecdf 40 else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){
41 ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code");
42 bESDANA=kTRUE;
43 }
44
9f00b65f 45
46 //Do we have an MC handler?
f88c2b26 47 Bool_t hasMC=setMC;
48 if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0)
49 hasMC=kTRUE;
9f00b65f 50
6783184e 51 //load dielectron configuration files
f88c2b26 52 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data()))
53 gROOT->LoadMacro(configLMEECutLibPath.Data());
54 if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data()))
55 gROOT->LoadMacro(configFilePath.Data());
56
57
9f00b65f 58 LMEECutLib* cutlib = new LMEECutLib();
59 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData");
60 if (!hasMC) task->UsePhysicsSelection();
696b423a 61 task->SetTriggerMask(triggerNames);
696b423a 62 task->SelectCollisionCandidates(collCands);
6783184e 63 //Basic Event cuts on z-Vertex,...
c787ecdf 64 task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); //
9f00b65f 65
66
9f00b65f 67
ed8d6a1d 68
69if (rejOnly) {
6783184e 70 //obsolete variable, kept not to break existing trains
ed8d6a1d 71}
885e1457 72if (PIDbaseline) {
6783184e 73 //obsolete variable, kept not to break existing trains
885e1457 74}
75
6783184e 76//add dielectron analysis with different cuts to the task
77AliDielectron *lowmass1=ConfigLMEEPbPb2011AOD(1,hasMC,bESDANA);
78task->AddDielectron(lowmass1);
79printf("add: %s\n",lowmass1->GetName());
80
81AliDielectron *lowmass3=ConfigLMEEPbPb2011AOD(3,hasMC,bESDANA);
82task->AddDielectron(lowmass3);
83printf("add: %s\n",lowmass3->GetName());
84
9f00b65f 85 mgr->AddTask(task);
86
87 //create output container
88 AliAnalysisDataContainer *coutput1 =
89 mgr->CreateContainer("cbaumann_LMEEPbPb2011_tree",
90 TTree::Class(),
91 AliAnalysisManager::kExchangeContainer,
9f517ec0 92 outputFileName);
9f00b65f 93
94 AliAnalysisDataContainer *cOutputHist1 =
95 mgr->CreateContainer("cbaumann_LMEEPbPb2011_out",
96 TList::Class(),
97 AliAnalysisManager::kOutputContainer,
9f517ec0 98 outputFileName);
99
9f00b65f 100 AliAnalysisDataContainer *cOutputHist2 =
101 mgr->CreateContainer("cbaumann_LMEEPbPb2011_CF",
102 TList::Class(),
103 AliAnalysisManager::kOutputContainer,
9f517ec0 104 outputFileName);
9f00b65f 105
106 AliAnalysisDataContainer *cOutputHist3 =
107 mgr->CreateContainer("cbaumann_EventStatPbPb2011",
108 TH1D::Class(),
109 AliAnalysisManager::kOutputContainer,
9f517ec0 110 outputFileName);
9f00b65f 111
9f00b65f 112 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
113 mgr->ConnectOutput(task, 0, coutput1 );
114 mgr->ConnectOutput(task, 1, cOutputHist1);
115 mgr->ConnectOutput(task, 2, cOutputHist2);
116 mgr->ConnectOutput(task, 3, cOutputHist3);
117
118 return task;
119}