]>
Commit | Line | Data |
---|---|---|
885e1457 | 1 | AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011AOD(Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE){ |
c787ecdf | 2 | |
3 | Bool_t bESDANA=kFALSE; //Autodetect via InputHandler | |
9f00b65f | 4 | //get the current analysis manager |
5 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
6 | if (!mgr) { | |
7 | Error("AddTask_cbaumann_LMEEPbPb2011", "No analysis manager found."); | |
8 | return 0; | |
9 | } | |
10 | ||
9f00b65f | 11 | |
f88c2b26 | 12 | // create task and add it to the manager |
13 | // gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE"); | |
14 | ||
15 | ||
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 | |
f88c2b26 | 21 | if (getFromAlien && |
7dfef2f7 | 22 | (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigLMEEPbPb2011AOD.C .")) && |
23 | (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibAOD.C .")) | |
24 | ) { | |
25 | configBasePath=Form("%s/",gSystem->pwd()); | |
f88c2b26 | 26 | } |
7dfef2f7 | 27 | |
f88c2b26 | 28 | TString configFile("ConfigLMEEPbPb2011AOD.C"); |
29 | TString configLMEECutLib("LMEECutLibAOD.C"); | |
9f00b65f | 30 | |
f88c2b26 | 31 | TString configFilePath(configBasePath+configFile); |
32 | TString configLMEECutLibPath(configBasePath+configLMEECutLib); | |
33 | ||
34 | //AOD Usage currently tested with separate task, to be merged | |
9f00b65f | 35 | if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){ |
36 | ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration"); | |
9f00b65f | 37 | } |
c787ecdf | 38 | else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){ |
39 | ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code"); | |
40 | bESDANA=kTRUE; | |
41 | } | |
42 | ||
9f00b65f | 43 | |
44 | //Do we have an MC handler? | |
f88c2b26 | 45 | Bool_t hasMC=setMC; |
46 | if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0) | |
47 | hasMC=kTRUE; | |
9f00b65f | 48 | |
49 | ||
9f00b65f | 50 | |
f88c2b26 | 51 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data())) |
52 | gROOT->LoadMacro(configLMEECutLibPath.Data()); | |
53 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data())) | |
54 | gROOT->LoadMacro(configFilePath.Data()); | |
55 | ||
56 | ||
9f00b65f | 57 | LMEECutLib* cutlib = new LMEECutLib(); |
58 | AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData"); | |
59 | if (!hasMC) task->UsePhysicsSelection(); | |
ee00eb9d | 60 | task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral); |
c787ecdf | 61 | // task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral); |
62 | // task->SetRejectPileup(); | |
63 | task->SelectCollisionCandidates(AliVEvent::kAny); | |
64 | task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); // | |
9f00b65f | 65 | |
66 | ||
67 | //load dielectron configuration file | |
68 | ||
69 | //add dielectron analysis with different cuts to the task | |
c787ecdf | 70 | AliDielectron *lowmass4=ConfigLMEEPbPb2011AOD(4,hasMC,bESDANA); |
9f00b65f | 71 | task->AddDielectron(lowmass4); |
72 | printf("add: %s\n",lowmass4->GetName()); | |
73 | ||
c29de33f | 74 | AliDielectron *lowmass1=ConfigLMEEPbPb2011AOD(1,hasMC,bESDANA); |
75 | task->AddDielectron(lowmass1); | |
76 | printf("add: %s\n",lowmass1->GetName()); | |
9f00b65f | 77 | |
885e1457 | 78 | if (PIDbaseline) { |
79 | AliDielectron *lowmass7=ConfigLMEEPbPb2011AOD(7,hasMC,bESDANA); | |
80 | task->AddDielectron(lowmass7); | |
81 | printf("add: %s\n",lowmass7->GetName()); | |
82 | } | |
83 | ||
9f00b65f | 84 | mgr->AddTask(task); |
85 | ||
86 | //create output container | |
87 | AliAnalysisDataContainer *coutput1 = | |
88 | mgr->CreateContainer("cbaumann_LMEEPbPb2011_tree", | |
89 | TTree::Class(), | |
90 | AliAnalysisManager::kExchangeContainer, | |
91 | "cbaumann_LMEEPbPb2011_default.root"); | |
92 | ||
93 | AliAnalysisDataContainer *cOutputHist1 = | |
94 | mgr->CreateContainer("cbaumann_LMEEPbPb2011_out", | |
95 | TList::Class(), | |
96 | AliAnalysisManager::kOutputContainer, | |
97 | "cbaumann_LMEEPbPb2011_out.root"); | |
98 | ||
99 | /* AliAnalysisDataContainer *cOutputHist2 = | |
100 | mgr->CreateContainer("cbaumann_lowmass_CF", | |
101 | TList::Class(), | |
102 | AliAnalysisManager::kOutputContainer, | |
103 | "cbaumann_lowmass_CF.root"); | |
104 | */ | |
105 | AliAnalysisDataContainer *cOutputHist2 = | |
106 | mgr->CreateContainer("cbaumann_LMEEPbPb2011_CF", | |
107 | TList::Class(), | |
108 | AliAnalysisManager::kOutputContainer, | |
109 | "cbaumann_LMEEPbPb2011_out.root"); | |
110 | ||
111 | AliAnalysisDataContainer *cOutputHist3 = | |
112 | mgr->CreateContainer("cbaumann_EventStatPbPb2011", | |
113 | TH1D::Class(), | |
114 | AliAnalysisManager::kOutputContainer, | |
115 | "cbaumann_LMEEPbPb2011_out.root"); | |
116 | ||
117 | ||
118 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
119 | mgr->ConnectOutput(task, 0, coutput1 ); | |
120 | mgr->ConnectOutput(task, 1, cOutputHist1); | |
121 | mgr->ConnectOutput(task, 2, cOutputHist2); | |
122 | mgr->ConnectOutput(task, 3, cOutputHist3); | |
123 | ||
124 | return task; | |
125 | } |