]>
Commit | Line | Data |
---|---|---|
a698c553 | 1 | AliAnalysisTaskSECharmFraction* AddTaskSECharmFraction(TString fileout="d0D0.root",Int_t switchMC[5],Bool_t readmc=kFALSE,Bool_t usepid=kTRUE,Bool_t likesign=kFALSE,TString cutfile="D0toKpiCharmFractCuts.root",TString containerprefix="c",Int_t ppPbPb=0,Int_t analysLevel=2, Float_t minC=0., Float_t maxC=20.,Float_t minCloose=40., Float_t maxCloose=80.) |
95e5b6b5 | 2 | { |
3 | // | |
4 | // Configuration macro for the task to analyze the fraction of prompt charm | |
5 | // using the D0 impact parameter | |
6 | // andrea.rossi@ts.infn.it | |
7 | // | |
8 | //========================================================================== | |
9 | ||
10 | //######## !!! THE SWITCH FOR MC ANALYSIS IS NOT IMPLEMENTED YET!!! ##########à | |
11 | switchMC[0]=1; | |
12 | switchMC[1]=1; | |
13 | switchMC[2]=1; | |
14 | switchMC[3]=1; | |
15 | switchMC[4]=1; | |
16 | Int_t last=0; | |
17 | ||
18 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
19 | if (!mgr) { | |
20 | ::Error("AddTaskCharmFraction", "No analysis manager to connect to."); | |
21 | return NULL; | |
22 | } | |
8399826a | 23 | |
24 | TString str,containername; | |
25 | if(fileout=="standard"){ | |
26 | fileout=AliAnalysisManager::GetCommonFileName(); | |
27 | fileout+=":PWG3_D2H_"; | |
28 | fileout+="d0D0"; | |
29 | if(containerprefix!="c")fileout+=containerprefix; | |
30 | str="d0D0"; | |
31 | } | |
77ed0cdb | 32 | else if(fileout=="standardUp"){ |
33 | fileout=AliAnalysisManager::GetCommonFileName(); | |
34 | fileout+=":PWG3_D2H_Up_"; | |
35 | fileout+="d0D0"; | |
36 | if(containerprefix!="c")fileout+=containerprefix; | |
37 | str="d0D0"; | |
38 | } | |
8399826a | 39 | else { |
40 | str=fileout; | |
41 | str.ReplaceAll(".root",""); | |
42 | } | |
95e5b6b5 | 43 | str.Prepend("_"); |
44 | ||
95e5b6b5 | 45 | AliAnalysisTaskSECharmFraction *hfTask; |
8399826a | 46 | if(!gSystem->AccessPathName(cutfile.Data(),kFileExists)){ |
47 | TFile *f=TFile::Open(cutfile.Data()); | |
48 | AliRDHFCutsD0toKpi *cutTight= (AliRDHFCutsD0toKpi*)f->Get("D0toKpiCutsStandard"); | |
49 | cutTight->PrintAll(); | |
50 | AliRDHFCutsD0toKpi *cutLoose= (AliRDHFCutsD0toKpi*)f->Get("D0toKpiCutsLoose"); | |
51 | cutLoose->PrintAll(); | |
52 | hfTask = new AliAnalysisTaskSECharmFraction("AliAnalysisTaskSECharmFraction",cutTight,cutLoose); | |
53 | } | |
cc3209fb | 54 | else { |
77ed0cdb | 55 | //hfTask = new AliAnalysisTaskSECharmFraction("AliAnalysisTaskSECharmFraction"); |
56 | AliRDHFCutsD0toKpi *cutTight=new AliRDHFCutsD0toKpi("D0toKpiCutsStandard"); | |
57 | AliRDHFCutsD0toKpi *cutLoose=new AliRDHFCutsD0toKpi("D0toKpiCutsLoose"); | |
58 | if(ppPbPb==1){ | |
59 | cutTight->SetStandardCutsPbPb2010(); | |
a698c553 | 60 | cutTight->SetMinCentrality(minC); |
61 | cutTight->SetMaxCentrality(maxC); | |
77ed0cdb | 62 | cutLoose->SetStandardCutsPbPb2010(); |
a698c553 | 63 | cutLoose->SetMinCentrality(minCloose); |
64 | cutLoose->SetMaxCentrality(maxCloose); | |
77ed0cdb | 65 | } |
66 | else { | |
67 | cutTight->SetStandardCutsPP2010(); | |
68 | cutLoose->SetStandardCutsPP2010(); | |
69 | } | |
70 | hfTask = new AliAnalysisTaskSECharmFraction("AliAnalysisTaskSECharmFraction",cutTight,cutLoose); | |
71 | cutLoose->PrintAll(); | |
cc3209fb | 72 | } |
8399826a | 73 | |
cc3209fb | 74 | if(ppPbPb==1){// Switch Off recalctulation of primary vertex w/o candidate's daughters |
77ed0cdb | 75 | // a protection that must be kept here to be sure |
76 | //that this is done also if the cut objects are provided by outside | |
8739665f | 77 | Printf("AddTaskSECharmFraction: Switch Off recalculation of primary vertex w/o candidate's daughters (PbPb analysis) \n"); |
cc3209fb | 78 | AliRDHFCutsD0toKpi *cloose=hfTask->GetLooseCut(); |
79 | AliRDHFCutsD0toKpi *ctight=hfTask->GetTightCut(); | |
80 | cloose->SetRemoveDaughtersFromPrim(kFALSE); | |
81 | ctight->SetRemoveDaughtersFromPrim(kFALSE); | |
8739665f | 82 | if(analysLevel<2){ |
83 | printf("Cannot activate the filling of all the histograms for PbPb analysis \n changing analysis level to 2 \n"); | |
84 | analysLevel=2; | |
85 | } | |
cc3209fb | 86 | // Activate Default PID for proton rejection (TEMPORARY) |
77ed0cdb | 87 | // cloose->SetUseDefaultPID(kTRUE); |
88 | // ctight->SetUseDefaultPID(kTRUE); | |
cc3209fb | 89 | } |
90 | ||
8399826a | 91 | hfTask->SetReadMC(readmc); |
92 | hfTask->SetNMaxTrForVtx(2); | |
93 | hfTask->SetAnalyzeLikeSign(likesign); | |
94 | hfTask->SetUsePID(usepid); | |
95 | hfTask->SetStandardMassSelection(); | |
f1fddf78 | 96 | hfTask->SetAnalysisLevel(analysLevel); |
8739665f | 97 | |
8399826a | 98 | // hfTask->SignalInvMassCut(0.27); |
95e5b6b5 | 99 | |
100 | /* ############### HERE THE POSSIBILITY TO SWITCH ON/OFF THE TLISTS AND MC SELECTION WILL BE SET #########à | |
101 | ||
102 | hfTask->SetUseCuts(setD0usecuts); | |
103 | hfTask->SetCheckMC(setcheckMC); | |
104 | hfTask->SetCheckMC_D0(setcheckMC_D0); | |
105 | hfTask->SetCheckMC_2prongs(setcheckMC_2prongs); | |
106 | hfTask->SetCheckMC_prompt(setcheckMC_prompt); | |
107 | hfTask->SetCheckMC_fromB(setcheckMC_fromB); | |
108 | hfTask->SetCheckMC_fromDstar(setSkipD0star); | |
109 | hfTask->SetStudyPureBackground(setStudyPureBack);*/ | |
110 | // hfTask->SetSideBands(0); | |
111 | // hfTask->SetDebugLevel(2); | |
112 | mgr->AddTask(hfTask); | |
113 | ||
114 | ||
115 | ||
116 | // Create containers for input/output | |
117 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
118 | //mgr->CreateContainer("cinput",TChain::Class(),AliAnalysisManager::kInputContainer); | |
119 | mgr->ConnectInput(hfTask,0,cinput); | |
120 | ||
121 | ||
122 | //Now container for general properties histograms | |
8399826a | 123 | containername="outputNentries"; |
124 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 125 | containername.Append(str.Data()); |
126 | AliAnalysisDataContainer *coutputNentries = mgr->CreateContainer(containername.Data(),TH1F::Class(), | |
127 | AliAnalysisManager::kOutputContainer, | |
8399826a | 128 | fileout.Data()); |
95e5b6b5 | 129 | |
130 | mgr->ConnectOutput(hfTask,1,coutputNentries); | |
131 | ||
8399826a | 132 | containername="outputSignalType"; |
133 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 134 | containername.Append(str.Data()); |
135 | AliAnalysisDataContainer *coutputSignalType = mgr->CreateContainer(containername.Data(),TH1F::Class(), | |
136 | AliAnalysisManager::kOutputContainer, | |
8399826a | 137 | fileout.Data()); |
95e5b6b5 | 138 | |
139 | mgr->ConnectOutput(hfTask,2,coutputSignalType); | |
140 | ||
141 | ||
8399826a | 142 | containername="outputSignalType_LsCuts"; |
143 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 144 | containername.Append(str.Data()); |
145 | AliAnalysisDataContainer *coutputSignalType_LsCuts = mgr->CreateContainer(containername.Data(),TH1F::Class(), | |
146 | AliAnalysisManager::kOutputContainer, | |
8399826a | 147 | fileout.Data()); |
95e5b6b5 | 148 | |
149 | mgr->ConnectOutput(hfTask,3,coutputSignalType_LsCuts); | |
150 | ||
151 | ||
8399826a | 152 | containername="outputSignalType_TghCuts"; |
153 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 154 | containername.Append(str.Data()); |
155 | AliAnalysisDataContainer *coutputSignalType_TghCuts = mgr->CreateContainer(containername.Data(),TH1F::Class(), | |
156 | AliAnalysisManager::kOutputContainer, | |
8399826a | 157 | fileout.Data()); |
95e5b6b5 | 158 | |
159 | mgr->ConnectOutput(hfTask,4,coutputSignalType_TghCuts); | |
bd0c851a | 160 | |
161 | ||
162 | containername="outputNormalizationCounter"; | |
163 | containername.Prepend(containerprefix.Data()); | |
164 | containername.Append(str.Data()); | |
165 | AliAnalysisDataContainer *coutputNormCounter = mgr ->CreateContainer(containername.Data(), AliNormalizationCounter::Class(), | |
166 | AliAnalysisManager::kOutputContainer, | |
167 | fileout.Data()); | |
168 | mgr->ConnectOutput(hfTask, 5, coutputNormCounter); | |
169 | ||
170 | //Now Container for MC TList | |
8399826a | 171 | containername="listMCproperties"; |
172 | containername.Prepend(containerprefix.Data()); | |
173 | containername.Append(str.Data()); | |
174 | AliAnalysisDataContainer *clistMCprop = mgr->CreateContainer(containername.Data(),TList::Class(), | |
175 | AliAnalysisManager::kOutputContainer, | |
176 | fileout.Data()); | |
bd0c851a | 177 | mgr->ConnectOutput(hfTask,6,clistMCprop); |
8399826a | 178 | |
95e5b6b5 | 179 | // Now container for TLists |
bd0c851a | 180 | last=7; |
95e5b6b5 | 181 | //########## NO CUTS TLISTS CONTAINER ##############à |
8399826a | 182 | containername="listNCsign"; |
183 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 184 | containername.Append(str.Data()); |
185 | AliAnalysisDataContainer *clistNCsign = mgr->CreateContainer(containername.Data(),TList::Class(), | |
186 | AliAnalysisManager::kOutputContainer, | |
8399826a | 187 | fileout.Data()); |
95e5b6b5 | 188 | mgr->ConnectOutput(hfTask,last,clistNCsign); |
189 | last++; | |
190 | ||
191 | ||
8399826a | 192 | containername="listNCback"; |
193 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 194 | containername.Append(str.Data()); |
195 | AliAnalysisDataContainer *clistNCback = mgr->CreateContainer(containername.Data(),TList::Class(), | |
196 | AliAnalysisManager::kOutputContainer, | |
8399826a | 197 | fileout.Data()); |
95e5b6b5 | 198 | mgr->ConnectOutput(hfTask,last,clistNCback); |
199 | last++; | |
200 | ||
8399826a | 201 | containername="listNCfromB"; |
202 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 203 | containername.Append(str.Data()); |
204 | AliAnalysisDataContainer *clistNCfromB = mgr->CreateContainer(containername.Data(),TList::Class(), | |
205 | AliAnalysisManager::kOutputContainer, | |
8399826a | 206 | fileout.Data()); |
95e5b6b5 | 207 | mgr->ConnectOutput(hfTask,last,clistNCfromB); |
208 | last++; | |
209 | ||
210 | ||
8399826a | 211 | containername="listNCfromDstar"; |
212 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 213 | containername.Append(str.Data()); |
214 | AliAnalysisDataContainer *clistNCfromDstar = mgr->CreateContainer(containername.Data(),TList::Class(), | |
215 | AliAnalysisManager::kOutputContainer, | |
8399826a | 216 | fileout.Data()); |
95e5b6b5 | 217 | mgr->ConnectOutput(hfTask,last,clistNCfromDstar); |
218 | last++; | |
219 | ||
220 | ||
8399826a | 221 | containername="listNCother"; |
222 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 223 | containername.Append(str.Data()); |
224 | AliAnalysisDataContainer *clistNCother = mgr->CreateContainer(containername.Data(),TList::Class(), | |
225 | AliAnalysisManager::kOutputContainer, | |
8399826a | 226 | fileout.Data()); |
95e5b6b5 | 227 | mgr->ConnectOutput(hfTask,last,clistNCother); |
228 | last++; | |
229 | ||
230 | ||
231 | //######### LOOSE CUTS TLISTS CONTAINER ############# | |
8399826a | 232 | containername="listLSCsign"; |
233 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 234 | containername.Append(str.Data()); |
235 | AliAnalysisDataContainer *clistLSCsign = mgr->CreateContainer(containername.Data(),TList::Class(), | |
236 | AliAnalysisManager::kOutputContainer, | |
8399826a | 237 | fileout.Data()); |
95e5b6b5 | 238 | mgr->ConnectOutput(hfTask,last,clistLSCsign); |
239 | last++; | |
240 | ||
241 | ||
8399826a | 242 | containername="listLSCback"; |
243 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 244 | containername.Append(str.Data()); |
245 | AliAnalysisDataContainer *clistLSCback = mgr->CreateContainer(containername.Data(),TList::Class(), | |
246 | AliAnalysisManager::kOutputContainer, | |
8399826a | 247 | fileout.Data()); |
95e5b6b5 | 248 | mgr->ConnectOutput(hfTask,last,clistLSCback); |
249 | last++; | |
250 | ||
8399826a | 251 | containername="listLSCfromB"; |
252 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 253 | containername.Append(str.Data()); |
254 | AliAnalysisDataContainer *clistLSCfromB = mgr->CreateContainer(containername.Data(),TList::Class(), | |
255 | AliAnalysisManager::kOutputContainer, | |
8399826a | 256 | fileout.Data()); |
95e5b6b5 | 257 | mgr->ConnectOutput(hfTask,last,clistLSCfromB); |
258 | last++; | |
259 | ||
260 | ||
8399826a | 261 | containername="listLSCfromDstar"; |
262 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 263 | containername.Append(str.Data()); |
264 | AliAnalysisDataContainer *clistLSCfromDstar = mgr->CreateContainer(containername.Data(),TList::Class(), | |
265 | AliAnalysisManager::kOutputContainer, | |
8399826a | 266 | fileout.Data()); |
95e5b6b5 | 267 | mgr->ConnectOutput(hfTask,last,clistLSCfromDstar); |
268 | last++; | |
269 | ||
270 | ||
8399826a | 271 | containername="listLSCother"; |
272 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 273 | containername.Append(str.Data()); |
274 | AliAnalysisDataContainer *clistLSCother = mgr->CreateContainer(containername.Data(),TList::Class(), | |
275 | AliAnalysisManager::kOutputContainer, | |
8399826a | 276 | fileout.Data()); |
95e5b6b5 | 277 | mgr->ConnectOutput(hfTask,last,clistLSCother); |
278 | last++; | |
279 | ||
280 | ||
281 | ||
282 | //######### TIGHT CUTS TLISTS CONTAINER ############# | |
8399826a | 283 | containername="listTGHCsign"; |
284 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 285 | containername.Append(str.Data()); |
286 | AliAnalysisDataContainer *clistTGHCsign = mgr->CreateContainer(containername.Data(),TList::Class(), | |
287 | AliAnalysisManager::kOutputContainer, | |
8399826a | 288 | fileout.Data()); |
95e5b6b5 | 289 | mgr->ConnectOutput(hfTask,last,clistTGHCsign); |
290 | last++; | |
291 | ||
292 | ||
8399826a | 293 | containername="listTGHCback"; |
294 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 295 | containername.Append(str.Data()); |
296 | AliAnalysisDataContainer *clistTGHCback = mgr->CreateContainer(containername.Data(),TList::Class(), | |
297 | AliAnalysisManager::kOutputContainer, | |
8399826a | 298 | fileout.Data()); |
95e5b6b5 | 299 | mgr->ConnectOutput(hfTask,last,clistTGHCback); |
300 | last++; | |
301 | ||
8399826a | 302 | containername="listTGHCfromB"; |
303 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 304 | containername.Append(str.Data()); |
305 | AliAnalysisDataContainer *clistTGHCfromB = mgr->CreateContainer(containername.Data(),TList::Class(), | |
306 | AliAnalysisManager::kOutputContainer, | |
8399826a | 307 | fileout.Data()); |
95e5b6b5 | 308 | mgr->ConnectOutput(hfTask,last,clistTGHCfromB); |
309 | last++; | |
310 | ||
311 | ||
8399826a | 312 | containername="listTGHCfromDstar"; |
313 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 314 | containername.Append(str.Data()); |
315 | AliAnalysisDataContainer *clistTGHCfromDstar = mgr->CreateContainer(containername.Data(),TList::Class(), | |
316 | AliAnalysisManager::kOutputContainer, | |
8399826a | 317 | fileout.Data()); |
95e5b6b5 | 318 | mgr->ConnectOutput(hfTask,last,clistTGHCfromDstar); |
319 | last++; | |
320 | ||
321 | ||
8399826a | 322 | containername="listTGHCother"; |
323 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 324 | containername.Append(str.Data()); |
325 | AliAnalysisDataContainer *clistTGHCother = mgr->CreateContainer(containername.Data(),TList::Class(), | |
326 | AliAnalysisManager::kOutputContainer, | |
8399826a | 327 | fileout.Data()); |
95e5b6b5 | 328 | mgr->ConnectOutput(hfTask,last,clistTGHCother); |
8399826a | 329 | last++; |
95e5b6b5 | 330 | |
8399826a | 331 | // Container for Cuts Objects |
332 | containername="cutsObjectTight"; | |
333 | containername.Prepend(containerprefix.Data()); | |
334 | containername.Append(str.Data()); | |
335 | AliAnalysisDataContainer *cCutsObjectTight = mgr->CreateContainer(containername,AliRDHFCutsD0toKpi::Class(),AliAnalysisManager::kOutputContainer,fileout.Data()); //cuts | |
336 | mgr->ConnectOutput(hfTask,last,cCutsObjectTight); | |
337 | last++; | |
338 | ||
339 | containername="cutsObjectLoose"; | |
340 | containername.Prepend(containerprefix.Data()); | |
341 | containername.Append(str.Data()); | |
342 | AliAnalysisDataContainer *cCutsObjectLoose = mgr->CreateContainer(containername,AliRDHFCutsD0toKpi::Class(),AliAnalysisManager::kOutputContainer,fileout.Data()); //cuts | |
343 | mgr->ConnectOutput(hfTask,last,cCutsObjectLoose); | |
95e5b6b5 | 344 | |
345 | return hfTask; | |
346 | } |