]>
Commit | Line | Data |
---|---|---|
696b423a | 1 | AliAnalysisTask *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 | |
69 | if (rejOnly) { | |
6783184e | 70 | //obsolete variable, kept not to break existing trains |
ed8d6a1d | 71 | } |
885e1457 | 72 | if (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 |
77 | AliDielectron *lowmass1=ConfigLMEEPbPb2011AOD(1,hasMC,bESDANA); | |
78 | task->AddDielectron(lowmass1); | |
79 | printf("add: %s\n",lowmass1->GetName()); | |
80 | ||
81 | AliDielectron *lowmass3=ConfigLMEEPbPb2011AOD(3,hasMC,bESDANA); | |
82 | task->AddDielectron(lowmass3); | |
83 | printf("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 | } |