]>
Commit | Line | Data |
---|---|---|
ee4da4d8 | 1 | /*AliAnalysisTaskSEImpParRes *AddTaskImpParRes(TString dirName="", |
2 | Bool_t readMC=kFALSE, | |
3 | Bool_t isAOD=kTRUE, | |
4 | Int_t SPDreq=1, | |
5 | Int_t selPdg=-1, | |
6 | Bool_t diamond=kTRUE, | |
7 | Bool_t skipTrack=kTRUE, | |
8 | Int_t minmult=0, | |
9 | Int_t maxmult=1000000)*/ | |
319532c0 | 10 | AliAnalysisTaskSEImpParRes *AddTaskImpParRes(Bool_t readMC=kFALSE, |
11 | Int_t selPdg=-1, | |
47f68c78 | 12 | Bool_t diamond=kTRUE, |
66cefb1c | 13 | Bool_t skipTrack=kTRUE, |
14 | Int_t minmult=0, | |
31a96e36 | 15 | Int_t maxmult=1000000, |
ee4da4d8 | 16 | Int_t checkSDDIsIn=1, |
17 | TString dirName="", | |
18 | Bool_t isAOD=kFALSE, | |
19 | Int_t SPDreq=1) | |
77e570bf | 20 | { |
21 | // | |
22 | // Configuration for the study of the impact parameter resolution | |
23 | // | |
24 | // xianbao.yuan@pd.infn.it, andrea.dainese@pd.infn.it | |
25 | // | |
26 | ||
27 | ||
28 | // Get the pointer to the existing analysis manager via the static access method. | |
29 | //============================================================================== | |
30 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
31 | if (!mgr) { | |
32 | ::Error("AddTaskImpParRes", "No analysis manager to connect to."); | |
33 | return NULL; | |
ee4da4d8 | 34 | } |
35 | ||
36 | AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("d0ResAnalysisESDTrackCuts"); | |
37 | esdTrackCuts->SetRequireTPCRefit(kTRUE); | |
38 | esdTrackCuts->SetRequireITSRefit(kTRUE); | |
39 | switch(SPDreq){ | |
40 | case(1): | |
41 | esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); | |
42 | break; | |
43 | case(2): | |
44 | esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kBoth); | |
45 | break; | |
46 | case(3): | |
47 | esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny); | |
48 | break; | |
49 | default: | |
50 | esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kBoth); | |
51 | break; | |
52 | } | |
53 | esdTrackCuts->SetMaxChi2PerClusterTPC(4); | |
54 | //esdTrackCuts->SetMinNCrossedRowsTPC(70); | |
55 | esdTrackCuts->SetMinNClustersTPC(70); | |
56 | ||
77e570bf | 57 | |
58 | // Aanalysis task | |
59 | AliAnalysisTaskSEImpParRes *d0ResTask = new AliAnalysisTaskSEImpParRes("d0ResAnalysis"); | |
60 | d0ResTask->SetDebugLevel(2); | |
61 | d0ResTask->SetReadMC(readMC); | |
ee4da4d8 | 62 | d0ResTask->SetIsAOD(isAOD); |
77e570bf | 63 | d0ResTask->SetSelectedPdg(selPdg); |
a979993d | 64 | d0ResTask->SetUseDiamond(diamond); |
47f68c78 | 65 | d0ResTask->SetSkipTrack(skipTrack); |
66cefb1c | 66 | d0ResTask->SetMultiplicityRange(minmult,maxmult); |
ee4da4d8 | 67 | d0ResTask->SetESDtrackCuts(esdTrackCuts); |
77e570bf | 68 | mgr->AddTask(d0ResTask); |
cbddc2a0 | 69 | |
319532c0 | 70 | TString fname=Form("%s:ImpParRes_Performance",mgr->GetCommonFileName()); |
cbddc2a0 | 71 | if(selPdg>0) {fname+=selPdg;} |
ee4da4d8 | 72 | fname += dirName.Data(); |
cbddc2a0 | 73 | |
ee4da4d8 | 74 | TString name=dirName; |
77e570bf | 75 | // |
76 | // Create containers for input/output | |
ee4da4d8 | 77 | AliAnalysisDataContainer *cinputd0distr = mgr->CreateContainer(Form("cinputd0distr%s",name.Data()),TChain::Class(), |
77e570bf | 78 | AliAnalysisManager::kInputContainer); |
79 | ||
ee4da4d8 | 80 | AliAnalysisDataContainer *coutputd0ITSpureSARec = mgr->CreateContainer(Form("coutputd0ITSpureSARec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 81 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 82 | fname.Data()); |
77e570bf | 83 | |
ee4da4d8 | 84 | AliAnalysisDataContainer *coutputd0ITSpureSASkip = mgr->CreateContainer(Form("coutputd0ITSpureSASkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 85 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 86 | fname.Data()); |
77e570bf | 87 | |
ee4da4d8 | 88 | AliAnalysisDataContainer *coutputd0allPointRec = mgr->CreateContainer(Form("coutputd0allPointRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 89 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 90 | fname.Data()); |
77e570bf | 91 | |
ee4da4d8 | 92 | AliAnalysisDataContainer *coutputd0allPointSkip = mgr->CreateContainer(Form("coutputd0allPointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 93 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 94 | fname.Data()); |
77e570bf | 95 | |
ee4da4d8 | 96 | AliAnalysisDataContainer *coutputd0partPointRec = mgr->CreateContainer(Form("coutputd0partPointRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 97 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 98 | fname.Data()); |
77e570bf | 99 | |
ee4da4d8 | 100 | AliAnalysisDataContainer *coutputd0partPointSkip = mgr->CreateContainer(Form("coutputd0partPointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 101 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 102 | fname.Data()); |
77e570bf | 103 | |
ee4da4d8 | 104 | AliAnalysisDataContainer *coutputd0onepointSPDRec = mgr->CreateContainer(Form("coutputd0onepointSPDRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 105 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 106 | fname.Data()); |
77e570bf | 107 | |
ee4da4d8 | 108 | AliAnalysisDataContainer *coutputd0onepointSPDSkip = mgr->CreateContainer(Form("coutputd0onepointSPDSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 109 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 110 | fname.Data()); |
77e570bf | 111 | |
ee4da4d8 | 112 | AliAnalysisDataContainer *coutputd0postvTracRec = mgr->CreateContainer(Form("coutputd0postvTracRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 113 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 114 | fname.Data()); |
77e570bf | 115 | |
116 | ||
ee4da4d8 | 117 | AliAnalysisDataContainer *coutputd0postvTracSkip = mgr->CreateContainer(Form("coutputd0postvTracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 118 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 119 | fname.Data()); |
77e570bf | 120 | |
ee4da4d8 | 121 | AliAnalysisDataContainer *coutputd0negtvTracRec = mgr->CreateContainer(Form("coutputd0negtvTracRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 122 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 123 | fname.Data()); |
77e570bf | 124 | |
ee4da4d8 | 125 | AliAnalysisDataContainer *coutputd0negtvTracSkip = mgr->CreateContainer(Form("coutputd0negtvTracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 126 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 127 | fname.Data()); |
77e570bf | 128 | |
ee4da4d8 | 129 | AliAnalysisDataContainer *coutputd0pullAllpointRec = mgr->CreateContainer(Form("coutputd0pullAllpointRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 130 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 131 | fname.Data()); |
77e570bf | 132 | |
133 | ||
ee4da4d8 | 134 | AliAnalysisDataContainer *coutputd0pullAllpointSkip = mgr->CreateContainer(Form("coutputd0pullAllpointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 135 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 136 | fname.Data()); |
77e570bf | 137 | |
ee4da4d8 | 138 | AliAnalysisDataContainer *coutputd0onlyRefitRec = mgr->CreateContainer(Form("coutputd0onlyRefitRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 139 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 140 | fname.Data()); |
77e570bf | 141 | |
ee4da4d8 | 142 | AliAnalysisDataContainer *coutputd0onlyRefitSkip = mgr->CreateContainer(Form("coutputd0onlyRefitSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 143 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 144 | fname.Data()); |
145 | ||
77e570bf | 146 | |
ee4da4d8 | 147 | AliAnalysisDataContainer *coutputd0sinThetaRec = mgr->CreateContainer(Form("coutputd0sinThetaRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
cbddc2a0 | 148 | AliAnalysisManager::kOutputContainer, |
149 | fname.Data()); | |
150 | ||
151 | ||
ee4da4d8 | 152 | AliAnalysisDataContainer *coutputd0sinThetaSkip = mgr->CreateContainer(Form("coutputd0sinThetaSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
77e570bf | 153 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 154 | fname.Data()); |
77e570bf | 155 | |
cbddc2a0 | 156 | |
ee4da4d8 | 157 | AliAnalysisDataContainer *coutputd0allPointTrue = mgr->CreateContainer(Form("coutputd0allPointTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
cbddc2a0 | 158 | AliAnalysisManager::kOutputContainer, |
159 | fname.Data()); | |
160 | ||
ee4da4d8 | 161 | AliAnalysisDataContainer *coutputd0postvTracTrue = mgr->CreateContainer(Form("coutputd0postvTracTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
cbddc2a0 | 162 | AliAnalysisManager::kOutputContainer, |
163 | fname.Data()); | |
164 | ||
ee4da4d8 | 165 | AliAnalysisDataContainer *coutputd0negtvTracTrue = mgr->CreateContainer(Form("coutputd0negtvTracTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
cbddc2a0 | 166 | AliAnalysisManager::kOutputContainer, |
167 | fname.Data()); | |
168 | ||
ee4da4d8 | 169 | AliAnalysisDataContainer *coutputd0pullAllpointTrue = mgr->CreateContainer(Form("coutputd0pullAllpointTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
cbddc2a0 | 170 | AliAnalysisManager::kOutputContainer, |
171 | fname.Data()); | |
172 | ||
173 | ||
ee4da4d8 | 174 | AliAnalysisDataContainer *coutputd0phiAllpointSkip = mgr->CreateContainer(Form("coutputd0phiAllpointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
cbddc2a0 | 175 | AliAnalysisManager::kOutputContainer, |
176 | fname.Data()); | |
177 | ||
ee4da4d8 | 178 | AliAnalysisDataContainer *coutputd0phiPostvtracSkip = mgr->CreateContainer(Form("coutputd0phiPostvtracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
cbddc2a0 | 179 | AliAnalysisManager::kOutputContainer, |
180 | fname.Data()); | |
181 | ||
ee4da4d8 | 182 | AliAnalysisDataContainer *coutputd0phiNegtvtracSkip = mgr->CreateContainer(Form("coutputd0phiNegtvtracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
cbddc2a0 | 183 | AliAnalysisManager::kOutputContainer, |
184 | fname.Data()); | |
185 | ||
186 | ||
ee4da4d8 | 187 | AliAnalysisDataContainer *coutputd0PID = mgr->CreateContainer(Form("coutputd0PID_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
319532c0 | 188 | AliAnalysisManager::kOutputContainer, |
189 | fname.Data()); | |
190 | ||
ee4da4d8 | 191 | AliAnalysisDataContainer *coutputd0Pt = mgr->CreateContainer(Form("coutputd0Pt_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
cbddc2a0 | 192 | AliAnalysisManager::kOutputContainer, |
193 | fname.Data()); | |
194 | ||
ee4da4d8 | 195 | AliAnalysisDataContainer *coutputNentries = mgr->CreateContainer(Form("coutputNentries_%d_%d%s",minmult,maxmult,name.Data()),TH1F::Class(), |
77e570bf | 196 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 197 | fname.Data()); |
77e570bf | 198 | |
ee4da4d8 | 199 | AliAnalysisDataContainer *coutputEstimVtx = mgr->CreateContainer(Form("coutputEstimVtx_%d_%d%s",minmult,maxmult,name.Data()),TH1F::Class(), |
77e570bf | 200 | AliAnalysisManager::kOutputContainer, |
cbddc2a0 | 201 | fname.Data()); |
319532c0 | 202 | |
ee4da4d8 | 203 | AliAnalysisDataContainer *coutputd0withESDTC = mgr->CreateContainer(Form("coutputd0withESDTC_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(), |
204 | AliAnalysisManager::kOutputContainer, | |
205 | fname.Data()); | |
206 | ||
319532c0 | 207 | // Attach input |
77e570bf | 208 | mgr->ConnectInput(d0ResTask,0,mgr->GetCommonInputContainer()); |
319532c0 | 209 | // Attack output |
77e570bf | 210 | mgr->ConnectOutput(d0ResTask,1,coutputd0ITSpureSARec); |
211 | mgr->ConnectOutput(d0ResTask,2,coutputd0ITSpureSASkip); | |
212 | mgr->ConnectOutput(d0ResTask,3,coutputd0allPointRec); | |
213 | mgr->ConnectOutput(d0ResTask,4,coutputd0allPointSkip); | |
214 | mgr->ConnectOutput(d0ResTask,5,coutputd0partPointRec); | |
215 | mgr->ConnectOutput(d0ResTask,6,coutputd0partPointSkip); | |
216 | mgr->ConnectOutput(d0ResTask,7,coutputd0onepointSPDRec); | |
217 | mgr->ConnectOutput(d0ResTask,8,coutputd0onepointSPDSkip); | |
218 | mgr->ConnectOutput(d0ResTask,9,coutputd0postvTracRec); | |
219 | mgr->ConnectOutput(d0ResTask,10,coutputd0postvTracSkip); | |
220 | mgr->ConnectOutput(d0ResTask,11,coutputd0negtvTracRec); | |
221 | mgr->ConnectOutput(d0ResTask,12,coutputd0negtvTracSkip); | |
222 | mgr->ConnectOutput(d0ResTask,13,coutputd0pullAllpointRec); | |
223 | mgr->ConnectOutput(d0ResTask,14,coutputd0pullAllpointSkip); | |
224 | mgr->ConnectOutput(d0ResTask,15,coutputd0onlyRefitRec); | |
225 | mgr->ConnectOutput(d0ResTask,16,coutputd0onlyRefitSkip); | |
0013ea25 | 226 | mgr->ConnectOutput(d0ResTask,17,coutputd0sinThetaRec); |
227 | mgr->ConnectOutput(d0ResTask,18,coutputd0sinThetaSkip); | |
cbddc2a0 | 228 | mgr->ConnectOutput(d0ResTask,19,coutputd0allPointTrue); |
229 | mgr->ConnectOutput(d0ResTask,20,coutputd0postvTracTrue); | |
230 | mgr->ConnectOutput(d0ResTask,21,coutputd0negtvTracTrue); | |
231 | mgr->ConnectOutput(d0ResTask,22,coutputd0pullAllpointTrue); | |
232 | mgr->ConnectOutput(d0ResTask,23,coutputd0phiAllpointSkip); | |
233 | mgr->ConnectOutput(d0ResTask,24,coutputd0phiPostvtracSkip); | |
234 | mgr->ConnectOutput(d0ResTask,25,coutputd0phiNegtvtracSkip); | |
26f8147c | 235 | mgr->ConnectOutput(d0ResTask,26,coutputd0PID); |
236 | mgr->ConnectOutput(d0ResTask,27,coutputd0Pt); | |
237 | mgr->ConnectOutput(d0ResTask,28,coutputNentries); | |
238 | mgr->ConnectOutput(d0ResTask,29,coutputEstimVtx); | |
ee4da4d8 | 239 | mgr->ConnectOutput(d0ResTask,30,coutputd0withESDTC); |
319532c0 | 240 | |
77e570bf | 241 | return d0ResTask; |
242 | } |