]>
Commit | Line | Data |
---|---|---|
a65a7e70 | 1 | AliAnalysisTask *AddTask_Asako_LMEEPbPb2011AOD(Bool_t runAll=kFALSE,Bool_t setMC=kFALSE,Bool_t getFromAlien=kFALSE, Bool_t PIDbaseline=kFALSE){ |
2 | ||
3 | Bool_t bESDANA=kFALSE; //Autodetect via InputHandler | |
4 | //get the current analysis manager | |
5 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
6 | if (!mgr) { | |
7 | Error("AddTask_Asako_LMEEPbPb2011AOD", "No analysis manager found."); | |
8 | return 0; | |
9 | } | |
10 | ||
11 | ||
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 | ||
19 | if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/"; | |
20 | ||
21 | ||
22 | if (getFromAlien && | |
23 | (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/ConfigLMEEPbPb2011AOD.C .")) && | |
24 | (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosLMEE/LMEECutLibAOD.C .")) | |
25 | ) { | |
26 | configBasePath=Form("%s/",gSystem->pwd()); | |
27 | } | |
28 | ||
29 | TString configFile("ConfigAsakoLMEEPbPb2011AOD.C"); | |
30 | TString configLMEECutLib("LMEECutLibAsako.C"); | |
31 | ||
32 | TString configFilePath(configBasePath+configFile); | |
33 | TString configLMEECutLibPath(configBasePath+configLMEECutLib); | |
34 | ||
35 | //AOD Usage currently tested with separate task, to be merged | |
36 | if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){ | |
37 | ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration"); | |
38 | } | |
39 | else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){ | |
40 | ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code"); | |
41 | bESDANA=kTRUE; | |
42 | } | |
43 | ||
44 | ||
45 | //Do we have an MC handler? | |
46 | Bool_t hasMC=setMC; | |
47 | if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0) | |
48 | hasMC=kTRUE; | |
49 | ||
50 | ||
51 | ||
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 | ||
58 | LMEECutLibAsako* cutlib = new LMEECutLibAsako(); | |
59 | AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData"); | |
60 | if (!hasMC) task->UsePhysicsSelection(); | |
61 | task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral); | |
62 | // task->SelectCollisionCandidates(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral); | |
63 | // task->SetRejectPileup(); | |
64 | task->SelectCollisionCandidates(AliVEvent::kAny); | |
65 | task->SetEventFilter(cutlib->GetEventCuts(LMEECutLibAsako::kPbPb2011TPCandTOF)); // | |
66 | ||
67 | ||
68 | //load dielectron configuration file | |
69 | ||
70 | //add dielectron analysis with different cuts to the task | |
71 | ||
72 | ||
73 | AliDielectron *lowmass1=ConfigAsakoLMEEPbPb2011AOD(1,hasMC,bESDANA); | |
74 | task->AddDielectron(lowmass1); | |
75 | printf("add: %s\n",lowmass1->GetName()); | |
76 | ||
77 | ||
78 | AliDielectron *lowmass2=ConfigAsakoLMEEPbPb2011AOD(2,hasMC,bESDANA); | |
79 | task->AddDielectron(lowmass2); | |
80 | printf("add: %s\n",lowmass2->GetName()); | |
81 | ||
82 | ||
83 | AliDielectron *lowmass3=ConfigAsakoLMEEPbPb2011AOD(3,hasMC,bESDANA); | |
84 | task->AddDielectron(lowmass3); | |
85 | printf("add: %s\n",lowmass3->GetName()); | |
86 | ||
87 | ||
88 | AliDielectron *lowmass4=ConfigAsakoLMEEPbPb2011AOD(4,hasMC,bESDANA); | |
89 | task->AddDielectron(lowmass4); | |
90 | printf("add: %s\n",lowmass4->GetName()); | |
91 | ||
92 | ||
93 | ||
94 | AliDielectron *lowmass5=ConfigAsakoLMEEPbPb2011AOD(5,hasMC,bESDANA); | |
95 | task->AddDielectron(lowmass5); | |
96 | printf("add: %s\n",lowmass5->GetName()); | |
97 | ||
98 | AliDielectron *lowmass6=ConfigAsakoLMEEPbPb2011AOD(6,hasMC,bESDANA); | |
99 | task->AddDielectron(lowmass6); | |
100 | printf("add: %s\n",lowmass6->GetName()); | |
101 | ||
102 | AliDielectron *lowmass7=ConfigAsakoLMEEPbPb2011AOD(7,hasMC,bESDANA); | |
103 | task->AddDielectron(lowmass7); | |
104 | printf("add: %s\n",lowmass7->GetName()); | |
105 | ||
106 | AliDielectron *lowmass8=ConfigAsakoLMEEPbPb2011AOD(8,hasMC,bESDANA); | |
107 | task->AddDielectron(lowmass8); | |
108 | printf("add: %s\n",lowmass8->GetName()); | |
109 | ||
110 | AliDielectron *lowmass9=ConfigAsakoLMEEPbPb2011AOD(9,hasMC,bESDANA); | |
111 | task->AddDielectron(lowmass9); | |
112 | printf("add: %s\n",lowmass9->GetName()); | |
113 | ||
114 | AliDielectron *lowmass10=ConfigAsakoLMEEPbPb2011AOD(10,hasMC,bESDANA); | |
115 | task->AddDielectron(lowmass10); | |
116 | printf("add: %s\n",lowmass9->GetName()); | |
117 | ||
118 | ||
119 | AliDielectron *lowmass11=ConfigAsakoLMEEPbPb2011AOD(11,hasMC,bESDANA); | |
120 | task->AddDielectron(lowmass11); | |
121 | printf("add: %s\n",lowmass11->GetName()); | |
122 | ||
123 | ||
124 | AliDielectron *lowmass12=ConfigAsakoLMEEPbPb2011AOD(12,hasMC,bESDANA); | |
125 | task->AddDielectron(lowmass12); | |
126 | printf("add: %s\n",lowmass12->GetName()); | |
127 | ||
128 | ||
129 | AliDielectron *lowmass13=ConfigAsakoLMEEPbPb2011AOD(13,hasMC,bESDANA); | |
130 | task->AddDielectron(lowmass13); | |
131 | printf("add: %s\n",lowmass13->GetName()); | |
132 | ||
133 | //if (PIDbaseline) { | |
134 | //AliDielectron *lowmass7=ConfigLMEEPbPb2011AOD(7,hasMC,bESDANA); | |
135 | // task->AddDielectron(lowmass7); | |
136 | // printf("add: %s\n",lowmass7->GetName()); | |
137 | //} | |
138 | ||
139 | mgr->AddTask(task); | |
140 | ||
141 | //create output container | |
142 | AliAnalysisDataContainer *coutput1 = | |
143 | mgr->CreateContainer("asako_LMEEPbPb2011_tree", | |
144 | TTree::Class(), | |
145 | AliAnalysisManager::kExchangeContainer, | |
146 | "LMEEoutput.root"); | |
147 | ||
148 | AliAnalysisDataContainer *cOutputHist1 = | |
149 | mgr->CreateContainer("asako_LMEEPbPb2011_out", | |
150 | TList::Class(), | |
151 | AliAnalysisManager::kOutputContainer, | |
152 | "LMEEoutput.root"); | |
153 | ||
154 | /* AliAnalysisDataContainer *cOutputHist2 = | |
155 | mgr->CreateContainer("cbaumann_lowmass_CF", | |
156 | TList::Class(), | |
157 | AliAnalysisManager::kOutputContainer, | |
158 | "cbaumann_lowmass_CF.root"); | |
159 | */ | |
160 | AliAnalysisDataContainer *cOutputHist2 = | |
161 | mgr->CreateContainer("asako_LMEEPbPb2011_CF", | |
162 | TList::Class(), | |
163 | AliAnalysisManager::kOutputContainer, | |
164 | "LMEEoutput.root"); | |
165 | ||
166 | AliAnalysisDataContainer *cOutputHist3 = | |
167 | mgr->CreateContainer("asako_EventStatPbPb2011", | |
168 | TH1D::Class(), | |
169 | AliAnalysisManager::kOutputContainer, | |
170 | "LMEEoutput.root"); | |
171 | ||
172 | ||
173 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
174 | mgr->ConnectOutput(task, 0, coutput1 ); | |
175 | mgr->ConnectOutput(task, 1, cOutputHist1); | |
176 | mgr->ConnectOutput(task, 2, cOutputHist2); | |
177 | mgr->ConnectOutput(task, 3, cOutputHist3); | |
178 | ||
179 | return task; | |
180 | } |