1 /*AliAnalysisTaskSEImpParRes *AddTaskImpParRes(TString dirName="",
7 Bool_t skipTrack=kTRUE,
9 Int_t maxmult=1000000)*/
10 AliAnalysisTaskSEImpParRes *AddTaskImpParRes(Bool_t readMC=kFALSE,
13 Bool_t skipTrack=kTRUE,
15 Int_t maxmult=1000000,
22 // Configuration for the study of the impact parameter resolution
24 // xianbao.yuan@pd.infn.it, andrea.dainese@pd.infn.it
28 // Get the pointer to the existing analysis manager via the static access method.
29 //==============================================================================
30 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
32 ::Error("AddTaskImpParRes", "No analysis manager to connect to.");
36 AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("d0ResAnalysisESDTrackCuts");
37 esdTrackCuts->SetRequireTPCRefit(kTRUE);
38 esdTrackCuts->SetRequireITSRefit(kTRUE);
41 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
44 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kBoth);
47 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
50 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kBoth);
53 esdTrackCuts->SetMaxChi2PerClusterTPC(4);
54 //esdTrackCuts->SetMinNCrossedRowsTPC(70);
55 esdTrackCuts->SetMinNClustersTPC(70);
59 AliAnalysisTaskSEImpParRes *d0ResTask = new AliAnalysisTaskSEImpParRes("d0ResAnalysis");
60 d0ResTask->SetDebugLevel(2);
61 d0ResTask->SetReadMC(readMC);
62 d0ResTask->SetIsAOD(isAOD);
63 d0ResTask->SetSelectedPdg(selPdg);
64 d0ResTask->SetUseDiamond(diamond);
65 d0ResTask->SetSkipTrack(skipTrack);
66 d0ResTask->SetMultiplicityRange(minmult,maxmult);
67 d0ResTask->SetESDtrackCuts(esdTrackCuts);
68 mgr->AddTask(d0ResTask);
70 TString fname=Form("%s:ImpParRes_Performance",mgr->GetCommonFileName());
71 if(selPdg>0) {fname+=selPdg;}
72 fname += dirName.Data();
76 // Create containers for input/output
77 AliAnalysisDataContainer *cinputd0distr = mgr->CreateContainer(Form("cinputd0distr%s",name.Data()),TChain::Class(),
78 AliAnalysisManager::kInputContainer);
80 AliAnalysisDataContainer *coutputd0ITSpureSARec = mgr->CreateContainer(Form("coutputd0ITSpureSARec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
81 AliAnalysisManager::kOutputContainer,
84 AliAnalysisDataContainer *coutputd0ITSpureSASkip = mgr->CreateContainer(Form("coutputd0ITSpureSASkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
85 AliAnalysisManager::kOutputContainer,
88 AliAnalysisDataContainer *coutputd0allPointRec = mgr->CreateContainer(Form("coutputd0allPointRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
89 AliAnalysisManager::kOutputContainer,
92 AliAnalysisDataContainer *coutputd0allPointSkip = mgr->CreateContainer(Form("coutputd0allPointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
93 AliAnalysisManager::kOutputContainer,
96 AliAnalysisDataContainer *coutputd0partPointRec = mgr->CreateContainer(Form("coutputd0partPointRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
97 AliAnalysisManager::kOutputContainer,
100 AliAnalysisDataContainer *coutputd0partPointSkip = mgr->CreateContainer(Form("coutputd0partPointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
101 AliAnalysisManager::kOutputContainer,
104 AliAnalysisDataContainer *coutputd0onepointSPDRec = mgr->CreateContainer(Form("coutputd0onepointSPDRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
105 AliAnalysisManager::kOutputContainer,
108 AliAnalysisDataContainer *coutputd0onepointSPDSkip = mgr->CreateContainer(Form("coutputd0onepointSPDSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
109 AliAnalysisManager::kOutputContainer,
112 AliAnalysisDataContainer *coutputd0postvTracRec = mgr->CreateContainer(Form("coutputd0postvTracRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
113 AliAnalysisManager::kOutputContainer,
117 AliAnalysisDataContainer *coutputd0postvTracSkip = mgr->CreateContainer(Form("coutputd0postvTracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
118 AliAnalysisManager::kOutputContainer,
121 AliAnalysisDataContainer *coutputd0negtvTracRec = mgr->CreateContainer(Form("coutputd0negtvTracRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
122 AliAnalysisManager::kOutputContainer,
125 AliAnalysisDataContainer *coutputd0negtvTracSkip = mgr->CreateContainer(Form("coutputd0negtvTracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
126 AliAnalysisManager::kOutputContainer,
129 AliAnalysisDataContainer *coutputd0pullAllpointRec = mgr->CreateContainer(Form("coutputd0pullAllpointRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
130 AliAnalysisManager::kOutputContainer,
134 AliAnalysisDataContainer *coutputd0pullAllpointSkip = mgr->CreateContainer(Form("coutputd0pullAllpointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
135 AliAnalysisManager::kOutputContainer,
138 AliAnalysisDataContainer *coutputd0onlyRefitRec = mgr->CreateContainer(Form("coutputd0onlyRefitRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
139 AliAnalysisManager::kOutputContainer,
142 AliAnalysisDataContainer *coutputd0onlyRefitSkip = mgr->CreateContainer(Form("coutputd0onlyRefitSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
143 AliAnalysisManager::kOutputContainer,
147 AliAnalysisDataContainer *coutputd0sinThetaRec = mgr->CreateContainer(Form("coutputd0sinThetaRec_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
148 AliAnalysisManager::kOutputContainer,
152 AliAnalysisDataContainer *coutputd0sinThetaSkip = mgr->CreateContainer(Form("coutputd0sinThetaSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
153 AliAnalysisManager::kOutputContainer,
157 AliAnalysisDataContainer *coutputd0allPointTrue = mgr->CreateContainer(Form("coutputd0allPointTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
158 AliAnalysisManager::kOutputContainer,
161 AliAnalysisDataContainer *coutputd0postvTracTrue = mgr->CreateContainer(Form("coutputd0postvTracTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
162 AliAnalysisManager::kOutputContainer,
165 AliAnalysisDataContainer *coutputd0negtvTracTrue = mgr->CreateContainer(Form("coutputd0negtvTracTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
166 AliAnalysisManager::kOutputContainer,
169 AliAnalysisDataContainer *coutputd0pullAllpointTrue = mgr->CreateContainer(Form("coutputd0pullAllpointTrue_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
170 AliAnalysisManager::kOutputContainer,
174 AliAnalysisDataContainer *coutputd0phiAllpointSkip = mgr->CreateContainer(Form("coutputd0phiAllpointSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
175 AliAnalysisManager::kOutputContainer,
178 AliAnalysisDataContainer *coutputd0phiPostvtracSkip = mgr->CreateContainer(Form("coutputd0phiPostvtracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
179 AliAnalysisManager::kOutputContainer,
182 AliAnalysisDataContainer *coutputd0phiNegtvtracSkip = mgr->CreateContainer(Form("coutputd0phiNegtvtracSkip_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
183 AliAnalysisManager::kOutputContainer,
187 AliAnalysisDataContainer *coutputd0PID = mgr->CreateContainer(Form("coutputd0PID_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
188 AliAnalysisManager::kOutputContainer,
191 AliAnalysisDataContainer *coutputd0Pt = mgr->CreateContainer(Form("coutputd0Pt_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
192 AliAnalysisManager::kOutputContainer,
195 AliAnalysisDataContainer *coutputNentries = mgr->CreateContainer(Form("coutputNentries_%d_%d%s",minmult,maxmult,name.Data()),TH1F::Class(),
196 AliAnalysisManager::kOutputContainer,
199 AliAnalysisDataContainer *coutputEstimVtx = mgr->CreateContainer(Form("coutputEstimVtx_%d_%d%s",minmult,maxmult,name.Data()),TH1F::Class(),
200 AliAnalysisManager::kOutputContainer,
203 AliAnalysisDataContainer *coutputd0withESDTC = mgr->CreateContainer(Form("coutputd0withESDTC_%d_%d%s",minmult,maxmult,name.Data()),TList::Class(),
204 AliAnalysisManager::kOutputContainer,
208 mgr->ConnectInput(d0ResTask,0,mgr->GetCommonInputContainer());
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);
226 mgr->ConnectOutput(d0ResTask,17,coutputd0sinThetaRec);
227 mgr->ConnectOutput(d0ResTask,18,coutputd0sinThetaSkip);
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);
235 mgr->ConnectOutput(d0ResTask,26,coutputd0PID);
236 mgr->ConnectOutput(d0ResTask,27,coutputd0Pt);
237 mgr->ConnectOutput(d0ResTask,28,coutputNentries);
238 mgr->ConnectOutput(d0ResTask,29,coutputEstimVtx);
239 mgr->ConnectOutput(d0ResTask,30,coutputd0withESDTC);