]>
Commit | Line | Data |
---|---|---|
07f1d09a | 1 | void AddTask_dNdPtPbPb2011( |
2 | char * centEst = "V0M" | |
3 | ) | |
3c5d5aef | 4 | { |
5 | ||
6 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
7 | ||
8 | if (!mgr) { | |
9 | Error("AddTask_dNdPtPbPb2011", "No analysis manager found."); | |
10 | return 0; | |
11 | } | |
12 | ||
13 | ||
14 | Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0); | |
15 | ||
16 | cout << "HasMC: " << hasMC << endl; | |
07f1d09a | 17 | |
18 | cout << "Using Centrality Estimator: " << centEst << endl; | |
19 | ||
3c5d5aef | 20 | // Switch off all AliInfo (too much output!!!) |
21 | AliLog::SetGlobalLogLevel(AliLog::kError); | |
22 | mgr->SetDebugLevel(0); | |
23 | ||
24 | // | |
25 | // Create physics trigger selection class | |
26 | // | |
27 | ||
28 | ||
29 | // AliPhysicsSelection *physTrigSel = new AliPhysicsSelection(); | |
30 | ||
31 | // | |
32 | // Create event cuts | |
33 | // | |
34 | Float_t zvWindow = 30. ; | |
35 | ||
36 | AlidNdPtEventCuts *evtCuts = new AlidNdPtEventCuts("AlidNdPtEventCuts","Event cuts"); | |
37 | evtCuts->SetZvRange(-zvWindow,zvWindow); | |
38 | evtCuts->SetMeanXYZv(0.0,0.0,0.0); | |
39 | evtCuts->SetSigmaMeanXYZv(1.0,1.0,10.0); | |
40 | evtCuts->SetTriggerRequired(kTRUE); | |
41 | ||
42 | // | |
43 | // Create geom. acceptance cuts | |
44 | // | |
45 | Float_t etaWindow = 1. ; | |
46 | Float_t ptMin = 0.10 ; | |
47 | ||
48 | AlidNdPtAcceptanceCuts *accCuts = new AlidNdPtAcceptanceCuts("AlidNdPtAcceptanceCuts","Geom. acceptance cuts"); | |
49 | accCuts->SetEtaRange(-etaWindow,etaWindow); | |
50 | accCuts->SetPtRange(ptMin,1.e10); | |
51 | ||
52 | // cut out trouble sector(s) | |
53 | Float_t phiMin = TMath::Pi() / 9. * 6.; | |
54 | Float_t phiMax = TMath::Pi() / 9. * 7.; | |
55 | // additional cut to remove one sector | |
56 | AlidNdPtAcceptanceCuts *recCuts = new AlidNdPtAcceptanceCuts("AlidNdPtRecAcceptanceCuts","Geom. acceptance cuts for Recostructed tracks"); | |
57 | recCuts->SetExcludeEtaPhiRange(-1.,0.,phiMin,phiMax); | |
58 | ||
59 | ||
60 | // | |
61 | // Create standard esd track cuts | |
62 | // | |
63 | // Int_t cutMode = 200; | |
64 | ||
65 | //gROOT->LoadMacro("$ALICE_ROOT/PWGLF/SPECTRA/ChargedHadrons/dNdPt/macros/CreatedNdPtTrackCuts.C"); | |
66 | // gROOT->LoadMacro("$ALICE_ROOT/PWGLF/SPECTRA/ChargedHadrons/dNdPt/macros/CreatedNdPtTrackCuts.C"); | |
67 | // AliESDtrackCuts* esdTrackCuts = CreatedNdPtTrackCuts(cutMode); | |
68 | // if (!esdTrackCuts) { | |
69 | // printf("ERROR: esdTrackCuts could not be created\n"); | |
70 | // return; | |
71 | // } else { | |
72 | //esdTrackCuts->SetHistogramsOn(kTRUE); | |
73 | // esdTrackCuts->SetHistogramsOn(kTRUE); | |
74 | // } | |
75 | // esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36.); | |
76 | // esdTrackCuts->SetMaxChi2PerClusterITS(36.); | |
77 | // esdTrackCuts->SetMaxDCAToVertexXY(3.0); // is in Michaels cutmode 2222 | |
78 | ||
79 | Float_t minNCrossedRowsTPC = 120; | |
80 | Float_t minRatioCrossedRowsOverFindableClustersTPC = 0.8; | |
81 | Float_t maxFractionSharedTPCCluster = 0.4; | |
82 | Double_t maxchi2perTPCcl=4.; | |
83 | Double_t maxdcazITSTPC=2.0; | |
84 | Double_t maxdaczTPC=3.0; | |
85 | Double_t maxdcaxyTPC=3.0; | |
86 | ||
87 | AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts"); | |
88 | esdTrackCuts->SetRequireTPCRefit(kTRUE); | |
89 | esdTrackCuts->SetMinNCrossedRowsTPC(minNCrossedRowsTPC); | |
90 | esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(minRatioCrossedRowsOverFindableClustersTPC); | |
91 | esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl); | |
92 | esdTrackCuts->SetMaxFractionSharedTPCClusters(maxFractionSharedTPCCluster); | |
93 | esdTrackCuts->SetMaxDCAToVertexZ(maxdaczTPC); | |
94 | esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyTPC); | |
95 | esdTrackCuts->SetRequireITSRefit(kTRUE); | |
96 | esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny); | |
97 | esdTrackCuts->SetMaxChi2PerClusterITS(36.); | |
98 | esdTrackCuts->SetDCAToVertex2D(kFALSE); | |
99 | esdTrackCuts->SetRequireSigmaToVertex(kFALSE); | |
100 | esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC); | |
101 | esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01"); | |
102 | esdTrackCuts->SetAcceptKinkDaughters(kFALSE); | |
103 | esdTrackCuts->SetMaxChi2TPCConstrainedGlobal(36.); | |
104 | esdTrackCuts->SetHistogramsOn(kTRUE); | |
105 | ||
106 | // | |
107 | // Create task | |
108 | // | |
109 | AlidNdPtTask *task = new AlidNdPtTask("AlidNdPtTask"); | |
110 | task->SetUseMCInfo(hasMC); | |
111 | ||
112 | // trigger selection: MB | |
113 | // task->SelectCollisionCandidates(AliVEvent::kINT7); | |
114 | ||
115 | // | |
116 | // set analysis options from the Helper here | |
117 | // | |
118 | AlidNdPtHelper::OutputObject outputObject = AlidNdPtHelper::kAnalysisPbPb; | |
119 | AlidNdPtHelper::AnalysisMode analysisMode = AlidNdPtHelper::kTPCITS ; | |
120 | AlidNdPtHelper::ParticleMode particleMode = AlidNdPtHelper::kAllPart ; | |
121 | ||
122 | ||
123 | // | |
124 | // Create cut analysis object | |
125 | // | |
126 | if(outputObject==AlidNdPtHelper::kAnalysisPbPb){ | |
127 | ||
128 | //gROOT->LoadMacro("dNdPtPbPb/AlidNdPtAnalysisPbPb.cxx+"); | |
129 | AlidNdPtAnalysisPbPb2011 *fdNdPtAnalysisPbPb = new AlidNdPtAnalysisPbPb2011("dNdPtAnalysisPbPb2011","dN/dPt Analysis"); | |
130 | fdNdPtAnalysisPbPb->SetEventCuts(evtCuts); | |
131 | fdNdPtAnalysisPbPb->SetAcceptanceCuts(accCuts); | |
132 | fdNdPtAnalysisPbPb->SetTrackCuts(esdTrackCuts); | |
133 | fdNdPtAnalysisPbPb->SetAnalysisMode(analysisMode); | |
134 | fdNdPtAnalysisPbPb->SetParticleMode(particleMode); | |
135 | // fdNdPtAnalysisPbPb->SetCentralityEstimator("ZNA"); | |
07f1d09a | 136 | fdNdPtAnalysisPbPb->SetCentralityEstimator(centEst); |
3c5d5aef | 137 | fdNdPtAnalysisPbPb->SetTriggerMask(AliVEvent::kMB); |
138 | // fdNdPtAnalysisPbPb->SetTriggerMask(AliVEvent::kCINT5); | |
139 | //fdNdPtAnalysisPbPb->SetTriggerMask(AliVEvent::kEMC1); | |
140 | ||
141 | // cut to remove tpc sector | |
142 | //fdNdPtAnalysisPbPb->SetRecAcceptanceCuts(recCuts); | |
143 | ||
144 | // change binning | |
145 | // change binning | |
9b02e33c | 146 | Double_t centralitybins[12] = {0., 5., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100.}; |
147 | // Double_t centralitybins[6] = {0., 20., 40., 60., 80., 100.}; | |
3c5d5aef | 148 | |
149 | Double_t ptbins[85] = {0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 18.0, 20.0, 22.0, 24.0, 26.0, 28.0, 30.0, 32.0, 34.0, 36.0, 40.0, 45.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 110.0, 120.0, 130.0, 140.0, 150.0, 160.0, 180.0, 200.0, 300.0, 400.0, 500.0}; | |
150 | Double_t ptcorrbins[85] = {0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 18.0, 20.0, 22.0, 24.0, 26.0, 28.0, 30.0, 32.0, 34.0, 36.0, 40.0, 45.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 110.0, 120.0, 130.0, 140.0, 150.0, 160.0, 180.0, 200.0, 300.0, 400.0, 500.0}; | |
151 | Double_t multbins[48] = {-0.5, 0.5 , 1.5 , 2.5 , 3.5 , 4.5 , 5.5 , 6.5 , 7.5 , 8.5,9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5, 18.5,19.5, 20.5, 30.5, 40.5 , 50.5 , 60.5 , 70.5 , 80.5 , 90.5 , 100.5,200.5, 300.5, 400.5, 500.5, 600.5, 700.5, 800.5, 900.5, 1000.5, 2000.5, 3000.5, 4000.5, 5000.5, 6000.5, 7000.5, 8000.5, 9000.5, 10000.5 }; | |
152 | // Double_t etabins[31] = {-1.465409,-1.365409,-1.265409,-1.165409,-1.065409,-0.965409,-0.865409,-0.765409,-0.665409,-0.565409,-0.465409,-0.365409,-0.265409,-0.165409,-0.065409,0.034591,0.134591,0.234591,0.334591,0.434591,0.534591,0.634591,0.734591,0.834591,0.934591,1.034591,1.134591,1.234591,1.334591,1.434591,1.534591}; | |
153 | Double_t zvbins[13] = {-30.,-25.,-20.,-15.,-10.,-5.,0.,5.,10.,15.,20.,25.,30.}; | |
154 | ||
155 | ||
156 | //Double_t* binsPt = new Double_t[85]; | |
157 | //for (int i=0; i<85; i++) {binsPt[i] = ptbins[i];} | |
158 | ||
159 | //fdNdPtAnalysisPbPb->SetBinsPt(85, ptbins); | |
160 | //fdNdPtAnalysisPbPb->SetBinsPtCorr(85, ptbins); | |
161 | //fdNdPtAnalysisPbPb->SetBinsCentrality(4, centralitybins); | |
162 | ||
163 | if(ptbins) | |
164 | { | |
165 | Int_t nptbins = sizeof(ptbins) / sizeof(Double_t); | |
166 | Printf("Setting %i ptbins", nptbins); | |
167 | fdNdPtAnalysisPbPb->SetBinsPt(nptbins, ptbins); | |
168 | } | |
169 | ||
170 | if(ptbins) | |
171 | { | |
172 | Int_t nptcorrbins = sizeof(ptcorrbins) / sizeof(Double_t); | |
173 | Printf("Setting %i ptcorrbins", nptcorrbins); | |
174 | fdNdPtAnalysisPbPb->SetBinsPtCorr(nptcorrbins, ptcorrbins); | |
175 | } | |
176 | ||
177 | if(centralitybins) | |
178 | { | |
179 | Int_t ncentralitybins = sizeof(centralitybins) / sizeof(Double_t); | |
180 | Printf("Setting %i centralitybins", ncentralitybins); | |
181 | fdNdPtAnalysisPbPb->SetBinsCentrality(ncentralitybins, centralitybins); | |
182 | } | |
183 | ||
184 | // if(etabins) | |
185 | // { | |
186 | // Int_t netabins = sizeof(etabins) / sizeof(Double_t); | |
187 | // Printf("Setting %i etabins", netabins); | |
188 | // fdNdPtAnalysisPbPb->SetBinsEta(netabins, etabins); | |
189 | // } | |
190 | ||
191 | if(hasMC) | |
192 | { | |
193 | fdNdPtAnalysisPbPb->SetUseMCInfo(kTRUE); | |
194 | fdNdPtAnalysisPbPb->SetHistogramsOn(kTRUE); | |
195 | } | |
196 | else | |
197 | { | |
198 | // online trigger | |
199 | // fdNdPtAnalysisPbPb->SetPhysicsTriggerSelection(physTrigSel); | |
200 | } | |
201 | ||
202 | ||
203 | task->AddAnalysisObject( fdNdPtAnalysisPbPb ); | |
204 | } | |
205 | ||
206 | // Add task | |
207 | mgr->AddTask(task); | |
208 | ||
209 | // Create containers for input | |
210 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
211 | ||
212 | TString outputFileName = AliAnalysisManager::GetCommonFileName(); | |
213 | ||
214 | AliAnalysisDataContainer *coutput = mgr->CreateContainer("dNdPtPbPb", | |
215 | TList::Class(), | |
216 | AliAnalysisManager::kOutputContainer, | |
217 | Form("%s:dNdPtHistos", mgr->GetCommonFileName())); | |
218 | ||
219 | mgr->ConnectInput(task, 0, cinput); | |
220 | mgr->ConnectOutput(task, 1, coutput); | |
221 | ||
222 | ||
223 | } | |
224 |