]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/macros/AddTaskImpParRes.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGPP / macros / AddTaskImpParRes.C
CommitLineData
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 10AliAnalysisTaskSEImpParRes *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}