]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/macros/AddTaskSECharmFraction.C
update for train (Zaida)
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / macros / AddTaskSECharmFraction.C
CommitLineData
a698c553 1AliAnalysisTaskSECharmFraction* 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}