]>
Commit | Line | Data |
---|---|---|
cc3209fb | 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) |
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 | } | |
32 | else { | |
33 | str=fileout; | |
34 | str.ReplaceAll(".root",""); | |
35 | } | |
95e5b6b5 | 36 | str.Prepend("_"); |
37 | ||
95e5b6b5 | 38 | AliAnalysisTaskSECharmFraction *hfTask; |
8399826a | 39 | if(!gSystem->AccessPathName(cutfile.Data(),kFileExists)){ |
40 | TFile *f=TFile::Open(cutfile.Data()); | |
41 | AliRDHFCutsD0toKpi *cutTight= (AliRDHFCutsD0toKpi*)f->Get("D0toKpiCutsStandard"); | |
42 | cutTight->PrintAll(); | |
43 | AliRDHFCutsD0toKpi *cutLoose= (AliRDHFCutsD0toKpi*)f->Get("D0toKpiCutsLoose"); | |
44 | cutLoose->PrintAll(); | |
45 | hfTask = new AliAnalysisTaskSECharmFraction("AliAnalysisTaskSECharmFraction",cutTight,cutLoose); | |
46 | } | |
cc3209fb | 47 | else { |
48 | hfTask = new AliAnalysisTaskSECharmFraction("AliAnalysisTaskSECharmFraction"); | |
49 | } | |
8399826a | 50 | |
cc3209fb | 51 | if(ppPbPb==1){// Switch Off recalctulation of primary vertex w/o candidate's daughters |
52 | Printf("AddTaskSECharmFraction: Switch Off recalctulation of primary vertex w/o candidate's daughters (PbPb analysis) \n"); | |
53 | AliRDHFCutsD0toKpi *cloose=hfTask->GetLooseCut(); | |
54 | AliRDHFCutsD0toKpi *ctight=hfTask->GetTightCut(); | |
55 | cloose->SetRemoveDaughtersFromPrim(kFALSE); | |
56 | ctight->SetRemoveDaughtersFromPrim(kFALSE); | |
57 | // Activate Default PID for proton rejection (TEMPORARY) | |
58 | cloose->SetUseDefaultPID(kTRUE); | |
59 | ctight->SetUseDefaultPID(kTRUE); | |
60 | } | |
61 | ||
8399826a | 62 | hfTask->SetReadMC(readmc); |
63 | hfTask->SetNMaxTrForVtx(2); | |
64 | hfTask->SetAnalyzeLikeSign(likesign); | |
65 | hfTask->SetUsePID(usepid); | |
66 | hfTask->SetStandardMassSelection(); | |
67 | // hfTask->SignalInvMassCut(0.27); | |
95e5b6b5 | 68 | |
69 | /* ############### HERE THE POSSIBILITY TO SWITCH ON/OFF THE TLISTS AND MC SELECTION WILL BE SET #########à | |
70 | ||
71 | hfTask->SetUseCuts(setD0usecuts); | |
72 | hfTask->SetCheckMC(setcheckMC); | |
73 | hfTask->SetCheckMC_D0(setcheckMC_D0); | |
74 | hfTask->SetCheckMC_2prongs(setcheckMC_2prongs); | |
75 | hfTask->SetCheckMC_prompt(setcheckMC_prompt); | |
76 | hfTask->SetCheckMC_fromB(setcheckMC_fromB); | |
77 | hfTask->SetCheckMC_fromDstar(setSkipD0star); | |
78 | hfTask->SetStudyPureBackground(setStudyPureBack);*/ | |
79 | // hfTask->SetSideBands(0); | |
80 | // hfTask->SetDebugLevel(2); | |
81 | mgr->AddTask(hfTask); | |
82 | ||
83 | ||
84 | ||
85 | // Create containers for input/output | |
86 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
87 | //mgr->CreateContainer("cinput",TChain::Class(),AliAnalysisManager::kInputContainer); | |
88 | mgr->ConnectInput(hfTask,0,cinput); | |
89 | ||
90 | ||
91 | //Now container for general properties histograms | |
8399826a | 92 | containername="outputNentries"; |
93 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 94 | containername.Append(str.Data()); |
95 | AliAnalysisDataContainer *coutputNentries = mgr->CreateContainer(containername.Data(),TH1F::Class(), | |
96 | AliAnalysisManager::kOutputContainer, | |
8399826a | 97 | fileout.Data()); |
95e5b6b5 | 98 | |
99 | mgr->ConnectOutput(hfTask,1,coutputNentries); | |
100 | ||
8399826a | 101 | containername="outputSignalType"; |
102 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 103 | containername.Append(str.Data()); |
104 | AliAnalysisDataContainer *coutputSignalType = mgr->CreateContainer(containername.Data(),TH1F::Class(), | |
105 | AliAnalysisManager::kOutputContainer, | |
8399826a | 106 | fileout.Data()); |
95e5b6b5 | 107 | |
108 | mgr->ConnectOutput(hfTask,2,coutputSignalType); | |
109 | ||
110 | ||
8399826a | 111 | containername="outputSignalType_LsCuts"; |
112 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 113 | containername.Append(str.Data()); |
114 | AliAnalysisDataContainer *coutputSignalType_LsCuts = mgr->CreateContainer(containername.Data(),TH1F::Class(), | |
115 | AliAnalysisManager::kOutputContainer, | |
8399826a | 116 | fileout.Data()); |
95e5b6b5 | 117 | |
118 | mgr->ConnectOutput(hfTask,3,coutputSignalType_LsCuts); | |
119 | ||
120 | ||
8399826a | 121 | containername="outputSignalType_TghCuts"; |
122 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 123 | containername.Append(str.Data()); |
124 | AliAnalysisDataContainer *coutputSignalType_TghCuts = mgr->CreateContainer(containername.Data(),TH1F::Class(), | |
125 | AliAnalysisManager::kOutputContainer, | |
8399826a | 126 | fileout.Data()); |
95e5b6b5 | 127 | |
128 | mgr->ConnectOutput(hfTask,4,coutputSignalType_TghCuts); | |
8399826a | 129 | //Now Container for MC TList |
130 | containername="listMCproperties"; | |
131 | containername.Prepend(containerprefix.Data()); | |
132 | containername.Append(str.Data()); | |
133 | AliAnalysisDataContainer *clistMCprop = mgr->CreateContainer(containername.Data(),TList::Class(), | |
134 | AliAnalysisManager::kOutputContainer, | |
135 | fileout.Data()); | |
136 | mgr->ConnectOutput(hfTask,5,clistMCprop); | |
137 | ||
95e5b6b5 | 138 | // Now container for TLists |
8399826a | 139 | last=6; |
95e5b6b5 | 140 | //########## NO CUTS TLISTS CONTAINER ##############à |
8399826a | 141 | containername="listNCsign"; |
142 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 143 | containername.Append(str.Data()); |
144 | AliAnalysisDataContainer *clistNCsign = mgr->CreateContainer(containername.Data(),TList::Class(), | |
145 | AliAnalysisManager::kOutputContainer, | |
8399826a | 146 | fileout.Data()); |
95e5b6b5 | 147 | mgr->ConnectOutput(hfTask,last,clistNCsign); |
148 | last++; | |
149 | ||
150 | ||
8399826a | 151 | containername="listNCback"; |
152 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 153 | containername.Append(str.Data()); |
154 | AliAnalysisDataContainer *clistNCback = mgr->CreateContainer(containername.Data(),TList::Class(), | |
155 | AliAnalysisManager::kOutputContainer, | |
8399826a | 156 | fileout.Data()); |
95e5b6b5 | 157 | mgr->ConnectOutput(hfTask,last,clistNCback); |
158 | last++; | |
159 | ||
8399826a | 160 | containername="listNCfromB"; |
161 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 162 | containername.Append(str.Data()); |
163 | AliAnalysisDataContainer *clistNCfromB = mgr->CreateContainer(containername.Data(),TList::Class(), | |
164 | AliAnalysisManager::kOutputContainer, | |
8399826a | 165 | fileout.Data()); |
95e5b6b5 | 166 | mgr->ConnectOutput(hfTask,last,clistNCfromB); |
167 | last++; | |
168 | ||
169 | ||
8399826a | 170 | containername="listNCfromDstar"; |
171 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 172 | containername.Append(str.Data()); |
173 | AliAnalysisDataContainer *clistNCfromDstar = mgr->CreateContainer(containername.Data(),TList::Class(), | |
174 | AliAnalysisManager::kOutputContainer, | |
8399826a | 175 | fileout.Data()); |
95e5b6b5 | 176 | mgr->ConnectOutput(hfTask,last,clistNCfromDstar); |
177 | last++; | |
178 | ||
179 | ||
8399826a | 180 | containername="listNCother"; |
181 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 182 | containername.Append(str.Data()); |
183 | AliAnalysisDataContainer *clistNCother = mgr->CreateContainer(containername.Data(),TList::Class(), | |
184 | AliAnalysisManager::kOutputContainer, | |
8399826a | 185 | fileout.Data()); |
95e5b6b5 | 186 | mgr->ConnectOutput(hfTask,last,clistNCother); |
187 | last++; | |
188 | ||
189 | ||
190 | //######### LOOSE CUTS TLISTS CONTAINER ############# | |
8399826a | 191 | containername="listLSCsign"; |
192 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 193 | containername.Append(str.Data()); |
194 | AliAnalysisDataContainer *clistLSCsign = mgr->CreateContainer(containername.Data(),TList::Class(), | |
195 | AliAnalysisManager::kOutputContainer, | |
8399826a | 196 | fileout.Data()); |
95e5b6b5 | 197 | mgr->ConnectOutput(hfTask,last,clistLSCsign); |
198 | last++; | |
199 | ||
200 | ||
8399826a | 201 | containername="listLSCback"; |
202 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 203 | containername.Append(str.Data()); |
204 | AliAnalysisDataContainer *clistLSCback = mgr->CreateContainer(containername.Data(),TList::Class(), | |
205 | AliAnalysisManager::kOutputContainer, | |
8399826a | 206 | fileout.Data()); |
95e5b6b5 | 207 | mgr->ConnectOutput(hfTask,last,clistLSCback); |
208 | last++; | |
209 | ||
8399826a | 210 | containername="listLSCfromB"; |
211 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 212 | containername.Append(str.Data()); |
213 | AliAnalysisDataContainer *clistLSCfromB = mgr->CreateContainer(containername.Data(),TList::Class(), | |
214 | AliAnalysisManager::kOutputContainer, | |
8399826a | 215 | fileout.Data()); |
95e5b6b5 | 216 | mgr->ConnectOutput(hfTask,last,clistLSCfromB); |
217 | last++; | |
218 | ||
219 | ||
8399826a | 220 | containername="listLSCfromDstar"; |
221 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 222 | containername.Append(str.Data()); |
223 | AliAnalysisDataContainer *clistLSCfromDstar = mgr->CreateContainer(containername.Data(),TList::Class(), | |
224 | AliAnalysisManager::kOutputContainer, | |
8399826a | 225 | fileout.Data()); |
95e5b6b5 | 226 | mgr->ConnectOutput(hfTask,last,clistLSCfromDstar); |
227 | last++; | |
228 | ||
229 | ||
8399826a | 230 | containername="listLSCother"; |
231 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 232 | containername.Append(str.Data()); |
233 | AliAnalysisDataContainer *clistLSCother = mgr->CreateContainer(containername.Data(),TList::Class(), | |
234 | AliAnalysisManager::kOutputContainer, | |
8399826a | 235 | fileout.Data()); |
95e5b6b5 | 236 | mgr->ConnectOutput(hfTask,last,clistLSCother); |
237 | last++; | |
238 | ||
239 | ||
240 | ||
241 | //######### TIGHT CUTS TLISTS CONTAINER ############# | |
8399826a | 242 | containername="listTGHCsign"; |
243 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 244 | containername.Append(str.Data()); |
245 | AliAnalysisDataContainer *clistTGHCsign = mgr->CreateContainer(containername.Data(),TList::Class(), | |
246 | AliAnalysisManager::kOutputContainer, | |
8399826a | 247 | fileout.Data()); |
95e5b6b5 | 248 | mgr->ConnectOutput(hfTask,last,clistTGHCsign); |
249 | last++; | |
250 | ||
251 | ||
8399826a | 252 | containername="listTGHCback"; |
253 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 254 | containername.Append(str.Data()); |
255 | AliAnalysisDataContainer *clistTGHCback = mgr->CreateContainer(containername.Data(),TList::Class(), | |
256 | AliAnalysisManager::kOutputContainer, | |
8399826a | 257 | fileout.Data()); |
95e5b6b5 | 258 | mgr->ConnectOutput(hfTask,last,clistTGHCback); |
259 | last++; | |
260 | ||
8399826a | 261 | containername="listTGHCfromB"; |
262 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 263 | containername.Append(str.Data()); |
264 | AliAnalysisDataContainer *clistTGHCfromB = mgr->CreateContainer(containername.Data(),TList::Class(), | |
265 | AliAnalysisManager::kOutputContainer, | |
8399826a | 266 | fileout.Data()); |
95e5b6b5 | 267 | mgr->ConnectOutput(hfTask,last,clistTGHCfromB); |
268 | last++; | |
269 | ||
270 | ||
8399826a | 271 | containername="listTGHCfromDstar"; |
272 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 273 | containername.Append(str.Data()); |
274 | AliAnalysisDataContainer *clistTGHCfromDstar = mgr->CreateContainer(containername.Data(),TList::Class(), | |
275 | AliAnalysisManager::kOutputContainer, | |
8399826a | 276 | fileout.Data()); |
95e5b6b5 | 277 | mgr->ConnectOutput(hfTask,last,clistTGHCfromDstar); |
278 | last++; | |
279 | ||
280 | ||
8399826a | 281 | containername="listTGHCother"; |
282 | containername.Prepend(containerprefix.Data()); | |
95e5b6b5 | 283 | containername.Append(str.Data()); |
284 | AliAnalysisDataContainer *clistTGHCother = mgr->CreateContainer(containername.Data(),TList::Class(), | |
285 | AliAnalysisManager::kOutputContainer, | |
8399826a | 286 | fileout.Data()); |
95e5b6b5 | 287 | mgr->ConnectOutput(hfTask,last,clistTGHCother); |
8399826a | 288 | last++; |
95e5b6b5 | 289 | |
8399826a | 290 | // Container for Cuts Objects |
291 | containername="cutsObjectTight"; | |
292 | containername.Prepend(containerprefix.Data()); | |
293 | containername.Append(str.Data()); | |
294 | AliAnalysisDataContainer *cCutsObjectTight = mgr->CreateContainer(containername,AliRDHFCutsD0toKpi::Class(),AliAnalysisManager::kOutputContainer,fileout.Data()); //cuts | |
295 | mgr->ConnectOutput(hfTask,last,cCutsObjectTight); | |
296 | last++; | |
297 | ||
298 | containername="cutsObjectLoose"; | |
299 | containername.Prepend(containerprefix.Data()); | |
300 | containername.Append(str.Data()); | |
301 | AliAnalysisDataContainer *cCutsObjectLoose = mgr->CreateContainer(containername,AliRDHFCutsD0toKpi::Class(),AliAnalysisManager::kOutputContainer,fileout.Data()); //cuts | |
302 | mgr->ConnectOutput(hfTask,last,cCutsObjectLoose); | |
95e5b6b5 | 303 | |
304 | return hfTask; | |
305 | } |