]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/vertexingHF/macros/AddTaskSECharmFraction.C
Speed up
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / macros / AddTaskSECharmFraction.C
CommitLineData
cc3209fb 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)
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}