]>
Commit | Line | Data |
---|---|---|
a3aebfff | 1 | /************************************************************************** |
477d6cee | 2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | /* $Id: AliAnaParticleIsolation.cxx 28688 2008-09-11 15:04:07Z gconesab $ */ | |
16 | ||
17 | //_________________________________________________________________________ | |
18 | // Class for analysis of particle isolation | |
19 | // Input is selected particles put in AOD branch (AliAODPWG4ParticleCorrelation) | |
20 | // | |
21 | // Class created from old AliPHOSGammaJet | |
22 | // (see AliRoot versions previous Release 4-09) | |
23 | // | |
24 | // -- Author: Gustavo Conesa (LNF-INFN) | |
25 | ////////////////////////////////////////////////////////////////////////////// | |
26 | ||
27 | ||
28 | // --- ROOT system --- | |
29 | #include <TClonesArray.h> | |
30 | #include <TList.h> | |
31 | #include <TObjString.h> | |
32 | #include <TH2F.h> | |
a3aebfff | 33 | //#include <Riostream.h> |
9415d854 | 34 | #include <TClass.h> |
477d6cee | 35 | |
36 | // --- Analysis system --- | |
37 | #include "AliAnaParticleIsolation.h" | |
38 | #include "AliCaloTrackReader.h" | |
39 | #include "AliIsolationCut.h" | |
40 | #include "AliNeutralMesonSelection.h" | |
41 | #include "AliAODPWG4ParticleCorrelation.h" | |
42 | #include "AliMCAnalysisUtils.h" | |
43 | #include "AliAODTrack.h" | |
44 | #include "AliAODCaloCluster.h" | |
45 | ||
46 | ClassImp(AliAnaParticleIsolation) | |
47 | ||
48 | //____________________________________________________________________________ | |
49 | AliAnaParticleIsolation::AliAnaParticleIsolation() : | |
233e0df8 | 50 | AliAnaPartCorrBaseClass(), fCalorimeter(""), |
477d6cee | 51 | fReMakeIC(0), fMakeSeveralIC(0), fMakeInvMass(0), |
52 | fhPtIso(0),fhPhiIso(0),fhEtaIso(0), fhConeSumPt(0), fhPtInCone(0), | |
53 | //Several IC | |
54 | fNCones(0),fNPtThresFrac(0), fConeSizes(), fPtThresholds(), fPtFractions(), | |
55 | //MC | |
56 | fhPtIsoPrompt(0),fhPhiIsoPrompt(0),fhEtaIsoPrompt(0), | |
57 | fhPtThresIsolatedPrompt(), fhPtFracIsolatedPrompt(), fhPtSumIsolatedPrompt(), | |
58 | fhPtIsoFragmentation(0),fhPhiIsoFragmentation(0),fhEtaIsoFragmentation(0), | |
59 | fhPtThresIsolatedFragmentation(), fhPtFracIsolatedFragmentation(), fhPtSumIsolatedFragmentation(), | |
60 | fhPtIsoPi0Decay(0),fhPhiIsoPi0Decay(0),fhEtaIsoPi0Decay(0), | |
61 | fhPtThresIsolatedPi0Decay(), fhPtFracIsolatedPi0Decay(), fhPtSumIsolatedPi0Decay(), | |
62 | fhPtIsoOtherDecay(0),fhPhiIsoOtherDecay(0),fhEtaIsoOtherDecay(0), | |
63 | fhPtThresIsolatedOtherDecay(), fhPtFracIsolatedOtherDecay(), fhPtSumIsolatedOtherDecay(), | |
64 | fhPtIsoConversion(0),fhPhiIsoConversion(0),fhEtaIsoConversion(0), | |
65 | fhPtThresIsolatedConversion(), fhPtFracIsolatedConversion(), fhPtSumIsolatedConversion(), | |
66 | fhPtIsoUnknown(0),fhPhiIsoUnknown(0),fhEtaIsoUnknown(0), | |
67 | fhPtThresIsolatedUnknown(), fhPtFracIsolatedUnknown(), fhPtSumIsolatedUnknown(), | |
68 | //Histograms settings | |
69 | fHistoNPtSumBins(0), fHistoPtSumMax(0.), fHistoPtSumMin(0.), | |
70 | fHistoNPtInConeBins(0), fHistoPtInConeMax(0.), fHistoPtInConeMin(0.) | |
71 | { | |
72 | //default ctor | |
73 | ||
74 | //Initialize parameters | |
75 | InitParameters(); | |
233e0df8 | 76 | |
477d6cee | 77 | for(Int_t i = 0; i < 5 ; i++){ |
78 | fConeSizes[i] = 0 ; | |
79 | fhPtSumIsolated[i] = 0 ; | |
80 | ||
81 | fhPtSumIsolatedPrompt[i] = 0 ; | |
82 | fhPtSumIsolatedFragmentation[i] = 0 ; | |
83 | fhPtSumIsolatedPi0Decay[i] = 0 ; | |
84 | fhPtSumIsolatedOtherDecay[i] = 0 ; | |
85 | fhPtSumIsolatedConversion[i] = 0 ; | |
86 | fhPtSumIsolatedUnknown[i] = 0 ; | |
87 | ||
88 | for(Int_t j = 0; j < 5 ; j++){ | |
89 | fhPtThresIsolated[i][j] = 0 ; | |
90 | fhPtFracIsolated[i][j] = 0 ; | |
91 | ||
92 | fhPtThresIsolatedPrompt[i][j] = 0 ; | |
93 | fhPtThresIsolatedFragmentation[i][j] = 0 ; | |
94 | fhPtThresIsolatedPi0Decay[i][j] = 0 ; | |
95 | fhPtThresIsolatedOtherDecay[i][j] = 0 ; | |
96 | fhPtThresIsolatedConversion[i][j] = 0 ; | |
97 | fhPtThresIsolatedUnknown[i][j] = 0 ; | |
98 | ||
99 | fhPtFracIsolatedPrompt[i][j] = 0 ; | |
100 | fhPtFracIsolatedFragmentation[i][j] = 0 ; | |
101 | fhPtFracIsolatedPi0Decay[i][j] = 0 ; | |
102 | fhPtFracIsolatedOtherDecay[i][j] = 0 ; | |
103 | fhPtFracIsolatedConversion[i][j] = 0 ; | |
104 | fhPtFracIsolatedUnknown[i][j] = 0 ; | |
105 | ||
106 | } | |
107 | } | |
108 | ||
109 | for(Int_t i = 0; i < 5 ; i++){ | |
110 | fPtFractions[i]= 0 ; | |
111 | fPtThresholds[i]= 0 ; | |
112 | } | |
113 | ||
114 | ||
115 | } | |
116 | ||
117 | //____________________________________________________________________________ | |
118 | AliAnaParticleIsolation::AliAnaParticleIsolation(const AliAnaParticleIsolation & g) : | |
233e0df8 | 119 | AliAnaPartCorrBaseClass(g), fCalorimeter(g.fCalorimeter), |
477d6cee | 120 | fReMakeIC(g.fReMakeIC), fMakeSeveralIC(g.fMakeSeveralIC), fMakeInvMass(g.fMakeInvMass), |
121 | fhPtIso(g.fhPtIso),fhPhiIso(g.fhPhiIso),fhEtaIso(g.fhEtaIso), | |
122 | fhConeSumPt(g.fhConeSumPt), fhPtInCone(g.fhPtInCone), | |
123 | //Several IC | |
124 | fNCones(g.fNCones),fNPtThresFrac(g.fNPtThresFrac), fConeSizes(), fPtThresholds(), fPtFractions(), | |
125 | fhPtThresIsolated(), fhPtFracIsolated(), fhPtSumIsolated(), | |
126 | //MC | |
127 | fhPtIsoPrompt(g.fhPtIsoPrompt),fhPhiIsoPrompt(g.fhPhiIsoPrompt),fhEtaIsoPrompt(g.fhEtaIsoPrompt), | |
128 | fhPtThresIsolatedPrompt(), fhPtFracIsolatedPrompt(), fhPtSumIsolatedPrompt(), | |
129 | fhPtIsoFragmentation(g.fhPtIsoFragmentation),fhPhiIsoFragmentation(g.fhPhiIsoFragmentation),fhEtaIsoFragmentation(g.fhEtaIsoFragmentation), | |
130 | fhPtThresIsolatedFragmentation(), fhPtFracIsolatedFragmentation(), fhPtSumIsolatedFragmentation(), | |
131 | fhPtIsoPi0Decay(g.fhPtIsoPi0Decay),fhPhiIsoPi0Decay(g.fhPhiIsoPi0Decay),fhEtaIsoPi0Decay(g.fhEtaIsoPi0Decay), | |
132 | fhPtThresIsolatedPi0Decay(), fhPtFracIsolatedPi0Decay(), fhPtSumIsolatedPi0Decay(), | |
133 | fhPtIsoOtherDecay(g.fhPtIsoOtherDecay),fhPhiIsoOtherDecay(g.fhPhiIsoOtherDecay),fhEtaIsoOtherDecay(g.fhEtaIsoOtherDecay), | |
134 | fhPtThresIsolatedOtherDecay(), fhPtFracIsolatedOtherDecay(), fhPtSumIsolatedOtherDecay(), | |
135 | fhPtIsoConversion(g. fhPtIsoConversion),fhPhiIsoConversion(g.fhPhiIsoConversion),fhEtaIsoConversion(g.fhEtaIsoConversion), | |
136 | fhPtThresIsolatedConversion(), fhPtFracIsolatedConversion(), fhPtSumIsolatedConversion(), | |
137 | fhPtIsoUnknown(g.fhPtIsoUnknown),fhPhiIsoUnknown(g.fhPhiIsoUnknown),fhEtaIsoUnknown(g.fhEtaIsoUnknown), | |
138 | fhPtThresIsolatedUnknown(), fhPtFracIsolatedUnknown(), fhPtSumIsolatedUnknown(), | |
139 | //Histograms | |
140 | fHistoNPtSumBins(g.fHistoNPtSumBins), fHistoPtSumMax(g.fHistoPtSumMax), fHistoPtSumMin(g.fHistoPtSumMax), | |
141 | fHistoNPtInConeBins(g.fHistoNPtInConeBins), fHistoPtInConeMax(g.fHistoPtInConeMax), fHistoPtInConeMin(g.fHistoPtInConeMin) | |
142 | { | |
143 | // cpy ctor | |
233e0df8 | 144 | |
477d6cee | 145 | //Several IC |
146 | for(Int_t i = 0; i < fNCones ; i++){ | |
147 | fConeSizes[i] = g.fConeSizes[i]; | |
148 | fhPtSumIsolated[i] = g.fhPtSumIsolated[i]; | |
149 | ||
150 | fhPtSumIsolatedPrompt[i] = g.fhPtSumIsolatedPrompt[i]; | |
151 | fhPtSumIsolatedFragmentation[i] = g.fhPtSumIsolatedFragmentation[i]; | |
152 | fhPtSumIsolatedPi0Decay[i] = g.fhPtSumIsolatedPi0Decay[i]; | |
153 | fhPtSumIsolatedOtherDecay[i] = g.fhPtSumIsolatedOtherDecay[i]; | |
154 | fhPtSumIsolatedConversion[i] = g.fhPtSumIsolatedConversion[i]; | |
155 | fhPtSumIsolatedUnknown[i] = g.fhPtSumIsolatedUnknown[i]; | |
156 | ||
157 | for(Int_t j = 0; j < fNPtThresFrac ; j++){ | |
158 | fhPtThresIsolated[i][j] = g.fhPtThresIsolated[i][j]; | |
159 | fhPtFracIsolated[i][j] = g.fhPtFracIsolated[i][j]; | |
160 | ||
161 | fhPtThresIsolatedPrompt[i][j] = g.fhPtThresIsolatedPrompt[i][j]; | |
162 | fhPtThresIsolatedFragmentation[i][j] = g.fhPtThresIsolatedFragmentation[i][j]; | |
163 | fhPtThresIsolatedPi0Decay[i][j] = g.fhPtThresIsolatedPi0Decay[i][j]; | |
164 | fhPtThresIsolatedOtherDecay[i][j] = g.fhPtThresIsolatedOtherDecay[i][j]; | |
165 | fhPtThresIsolatedConversion[i][j] = g.fhPtThresIsolatedConversion[i][j]; | |
166 | fhPtThresIsolatedUnknown[i][j] = g.fhPtThresIsolatedUnknown[i][j]; | |
167 | ||
168 | fhPtFracIsolatedPrompt[i][j] = g.fhPtFracIsolatedPrompt[i][j]; | |
169 | fhPtFracIsolatedFragmentation[i][j] = g.fhPtFracIsolatedFragmentation[i][j]; | |
170 | fhPtFracIsolatedPi0Decay[i][j] = g.fhPtFracIsolatedPi0Decay[i][j]; | |
171 | fhPtFracIsolatedOtherDecay[i][j] = g.fhPtFracIsolatedOtherDecay[i][j]; | |
172 | fhPtFracIsolatedConversion[i][j] = g.fhPtFracIsolatedConversion[i][j]; | |
173 | fhPtFracIsolatedUnknown[i][j] = g.fhPtFracIsolatedUnknown[i][j]; | |
174 | ||
175 | } | |
176 | } | |
177 | ||
178 | for(Int_t i = 0; i < fNPtThresFrac ; i++){ | |
179 | fPtFractions[i]= g.fPtFractions[i]; | |
180 | fPtThresholds[i]= g.fPtThresholds[i]; | |
181 | } | |
182 | ||
183 | } | |
184 | ||
185 | //_________________________________________________________________________ | |
186 | AliAnaParticleIsolation & AliAnaParticleIsolation::operator = (const AliAnaParticleIsolation & g) | |
187 | { | |
188 | // assignment operator | |
189 | ||
190 | if(&g == this) return *this; | |
191 | ||
233e0df8 | 192 | fReMakeIC = g.fReMakeIC ; |
477d6cee | 193 | fMakeSeveralIC = g.fMakeSeveralIC ; |
233e0df8 | 194 | fMakeInvMass = g.fMakeInvMass ; |
195 | fCalorimeter = g.fCalorimeter ; | |
196 | ||
197 | fhConeSumPt = g.fhConeSumPt ; | |
198 | fhPtInCone = g.fhPtInCone; | |
477d6cee | 199 | |
233e0df8 | 200 | fhPtIso = g.fhPtIso ; |
477d6cee | 201 | fhPhiIso = g.fhPhiIso ; |
202 | fhEtaIso = g.fhEtaIso ; | |
203 | ||
233e0df8 | 204 | fhPtIsoPrompt = g.fhPtIsoPrompt; |
477d6cee | 205 | fhPhiIsoPrompt = g.fhPhiIsoPrompt; |
206 | fhEtaIsoPrompt = g.fhEtaIsoPrompt; | |
233e0df8 | 207 | fhPtIsoFragmentation = g.fhPtIsoFragmentation; |
477d6cee | 208 | fhPhiIsoFragmentation = g.fhPhiIsoFragmentation; |
209 | fhEtaIsoFragmentation = g.fhEtaIsoFragmentation; | |
233e0df8 | 210 | fhPtIsoPi0Decay = g.fhPtIsoPi0Decay; |
477d6cee | 211 | fhPhiIsoPi0Decay = g.fhPhiIsoPi0Decay; |
212 | fhEtaIsoPi0Decay = g.fhEtaIsoPi0Decay; | |
233e0df8 | 213 | fhPtIsoOtherDecay = g.fhPtIsoOtherDecay; |
477d6cee | 214 | fhPhiIsoOtherDecay = g.fhPhiIsoOtherDecay; |
215 | fhEtaIsoOtherDecay = g.fhEtaIsoOtherDecay; | |
233e0df8 | 216 | fhPtIsoConversion = g. fhPtIsoConversion; |
477d6cee | 217 | fhPhiIsoConversion = g.fhPhiIsoConversion; |
218 | fhEtaIsoConversion = g.fhEtaIsoConversion; | |
233e0df8 | 219 | fhPtIsoUnknown = g.fhPtIsoUnknown; |
477d6cee | 220 | fhPhiIsoUnknown = g.fhPhiIsoUnknown; |
221 | fhEtaIsoUnknown = g.fhEtaIsoUnknown; | |
222 | ||
223 | //Several IC | |
224 | fNCones = g.fNCones ; | |
225 | fNPtThresFrac = g.fNPtThresFrac ; | |
226 | ||
227 | for(Int_t i = 0; i < fNCones ; i++){ | |
228 | fConeSizes[i] = g.fConeSizes[i]; | |
229 | fhPtSumIsolated[i] = g.fhPtSumIsolated[i] ; | |
230 | ||
231 | fhPtSumIsolatedPrompt[i] = g.fhPtSumIsolatedPrompt[i]; | |
232 | fhPtSumIsolatedFragmentation[i] = g.fhPtSumIsolatedFragmentation[i]; | |
233 | fhPtSumIsolatedPi0Decay[i] = g.fhPtSumIsolatedPi0Decay[i]; | |
234 | fhPtSumIsolatedOtherDecay[i] = g.fhPtSumIsolatedOtherDecay[i]; | |
235 | fhPtSumIsolatedConversion[i] = g.fhPtSumIsolatedConversion[i]; | |
236 | fhPtSumIsolatedUnknown[i] = g.fhPtSumIsolatedUnknown[i]; | |
237 | ||
238 | for(Int_t j = 0; j < fNPtThresFrac ; j++){ | |
239 | fhPtThresIsolated[i][j] = g.fhPtThresIsolated[i][j] ; | |
240 | fhPtFracIsolated[i][j] = g.fhPtFracIsolated[i][j] ; | |
241 | ||
242 | fhPtThresIsolatedPrompt[i][j] = g.fhPtThresIsolatedPrompt[i][j]; | |
243 | fhPtThresIsolatedFragmentation[i][j] = g.fhPtThresIsolatedFragmentation[i][j]; | |
244 | fhPtThresIsolatedPi0Decay[i][j] = g.fhPtThresIsolatedPi0Decay[i][j]; | |
245 | fhPtThresIsolatedOtherDecay[i][j] = g.fhPtThresIsolatedOtherDecay[i][j]; | |
246 | fhPtThresIsolatedConversion[i][j] = g.fhPtThresIsolatedConversion[i][j]; | |
247 | fhPtThresIsolatedUnknown[i][j] = g.fhPtThresIsolatedUnknown[i][j]; | |
248 | ||
249 | fhPtFracIsolatedPrompt[i][j] = g.fhPtFracIsolatedPrompt[i][j]; | |
250 | fhPtFracIsolatedFragmentation[i][j] = g.fhPtFracIsolatedFragmentation[i][j]; | |
251 | fhPtFracIsolatedPi0Decay[i][j] = g.fhPtFracIsolatedPi0Decay[i][j]; | |
252 | fhPtFracIsolatedOtherDecay[i][j] = g.fhPtFracIsolatedOtherDecay[i][j]; | |
253 | fhPtFracIsolatedConversion[i][j] = g.fhPtFracIsolatedConversion[i][j]; | |
254 | fhPtFracIsolatedUnknown[i][j] = g.fhPtFracIsolatedUnknown[i][j]; | |
255 | ||
256 | } | |
257 | } | |
258 | ||
259 | for(Int_t i = 0; i < fNPtThresFrac ; i++){ | |
260 | fPtThresholds[i]= g.fPtThresholds[i]; | |
261 | fPtFractions[i]= g.fPtFractions[i]; | |
262 | } | |
263 | ||
264 | ||
265 | fHistoNPtSumBins = g.fHistoNPtSumBins; | |
266 | fHistoPtSumMax = g.fHistoPtSumMax; | |
267 | fHistoPtSumMin = g.fHistoPtSumMax; | |
268 | fHistoNPtInConeBins = g.fHistoNPtInConeBins; | |
269 | fHistoPtInConeMax = g.fHistoPtInConeMax; | |
270 | fHistoPtInConeMin = g.fHistoPtInConeMin; | |
271 | ||
272 | return *this; | |
273 | ||
274 | } | |
275 | ||
276 | //____________________________________________________________________________ | |
277 | AliAnaParticleIsolation::~AliAnaParticleIsolation() | |
278 | { | |
279 | //dtor | |
280 | //do not delete histograms | |
281 | ||
282 | delete [] fConeSizes ; | |
283 | delete [] fPtThresholds ; | |
284 | delete [] fPtFractions ; | |
233e0df8 | 285 | |
477d6cee | 286 | } |
287 | ||
288 | //_________________________________________________________________________ | |
a3aebfff | 289 | Bool_t AliAnaParticleIsolation::CheckInvMass(const Int_t iaod, const AliAODPWG4Particle * part1) const |
477d6cee | 290 | { |
291 | // Search if there is a companion decay photon to the candidate | |
292 | // and discard it in such case | |
293 | // Use it only if isolation candidates are photons | |
294 | // Make sure that no selection on photon pt is done in the input aod photon list. | |
295 | TLorentzVector mom1 = *(part1->Momentum()); | |
296 | TLorentzVector mom2 ; | |
297 | for(Int_t jaod = 0; jaod < GetInputAODBranch()->GetEntriesFast(); jaod++){ | |
298 | if(iaod == jaod) continue ; | |
299 | AliAODPWG4ParticleCorrelation * part2 = (AliAODPWG4ParticleCorrelation*) (GetInputAODBranch()->At(jaod)); | |
300 | mom2 = *(part2->Momentum()); | |
301 | //Select good pair (good phi, pt cuts, aperture and invariant mass) | |
302 | if(GetNeutralMesonSelection()->SelectPair(mom1, mom2)){ | |
1e1befe8 | 303 | if(GetDebug() > 1)printf("AliAnaParticleIsolation::CheckInvMass() - Selected gamma pair: pt %f, phi %f, eta%f\n",(mom1+mom2).Pt(), (mom1+mom2).Phi()*180./3.1416, (mom1+mom2).Eta()); |
477d6cee | 304 | return kTRUE ; |
305 | } | |
306 | }//loop | |
307 | ||
308 | return kFALSE; | |
309 | } | |
310 | ||
311 | //________________________________________________________________________ | |
312 | TList * AliAnaParticleIsolation::GetCreateOutputObjects() | |
313 | { | |
314 | // Create histograms to be saved in output file and | |
315 | // store them in outputContainer | |
316 | TList * outputContainer = new TList() ; | |
317 | outputContainer->SetName("IsolatedParticleHistos") ; | |
318 | ||
319 | Int_t nptbins = GetHistoNPtBins(); | |
320 | Int_t nphibins = GetHistoNPhiBins(); | |
321 | Int_t netabins = GetHistoNEtaBins(); | |
322 | Float_t ptmax = GetHistoPtMax(); | |
323 | Float_t phimax = GetHistoPhiMax(); | |
324 | Float_t etamax = GetHistoEtaMax(); | |
325 | Float_t ptmin = GetHistoPtMin(); | |
326 | Float_t phimin = GetHistoPhiMin(); | |
327 | Float_t etamin = GetHistoEtaMin(); | |
328 | ||
329 | Int_t nptsumbins = fHistoNPtSumBins; | |
330 | Float_t ptsummax = fHistoPtSumMax; | |
331 | Float_t ptsummin = fHistoPtSumMin; | |
332 | Int_t nptinconebins = fHistoNPtInConeBins; | |
333 | Float_t ptinconemax = fHistoPtInConeMax; | |
334 | Float_t ptinconemin = fHistoPtInConeMin; | |
335 | ||
336 | if(!fMakeSeveralIC){ | |
337 | ||
338 | fhConeSumPt = new TH2F | |
a3aebfff | 339 | ("hConePtSum","#Sigma p_{T} in isolation cone ",nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); |
477d6cee | 340 | fhConeSumPt->SetYTitle("#Sigma p_{T}"); |
a3aebfff | 341 | fhConeSumPt->SetXTitle("p_{T} (GeV/c)"); |
477d6cee | 342 | outputContainer->Add(fhConeSumPt) ; |
343 | ||
344 | fhPtInCone = new TH2F | |
a3aebfff | 345 | ("hPtInCone","p_{T} in isolation cone ",nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax); |
477d6cee | 346 | fhPtInCone->SetYTitle("p_{T in cone} (GeV/c)"); |
a3aebfff | 347 | fhPtInCone->SetXTitle("p_{T} (GeV/c)"); |
477d6cee | 348 | outputContainer->Add(fhPtInCone) ; |
349 | ||
a3aebfff | 350 | fhPtIso = new TH1F("hPt","Isolated Number of particles",nptbins,ptmin,ptmax); |
477d6cee | 351 | fhPtIso->SetYTitle("N"); |
a3aebfff | 352 | fhPtIso->SetXTitle("p_{T}(GeV/c)"); |
477d6cee | 353 | outputContainer->Add(fhPtIso) ; |
354 | ||
355 | fhPhiIso = new TH2F | |
a3aebfff | 356 | ("hPhi","Isolated Number of particles",nptbins,ptmin,ptmax,nphibins,phimin,phimax); |
477d6cee | 357 | fhPhiIso->SetYTitle("#phi"); |
a3aebfff | 358 | fhPhiIso->SetXTitle("p_{T} (GeV/c)"); |
477d6cee | 359 | outputContainer->Add(fhPhiIso) ; |
360 | ||
361 | fhEtaIso = new TH2F | |
a3aebfff | 362 | ("hEta","Isolated Number of particles",nptbins,ptmin,ptmax,netabins,etamin,etamax); |
477d6cee | 363 | fhEtaIso->SetYTitle("#eta"); |
a3aebfff | 364 | fhEtaIso->SetXTitle("p_{T} (GeV/c)"); |
477d6cee | 365 | outputContainer->Add(fhEtaIso) ; |
366 | ||
367 | if(IsDataMC()){ | |
368 | ||
a3aebfff | 369 | fhPtIsoPrompt = new TH1F("hPtMCPrompt","Isolated Number of #gamma prompt",nptbins,ptmin,ptmax); |
477d6cee | 370 | fhPtIsoPrompt->SetYTitle("N"); |
371 | fhPtIsoPrompt->SetXTitle("p_{T #gamma}(GeV/c)"); | |
372 | outputContainer->Add(fhPtIsoPrompt) ; | |
373 | ||
374 | fhPhiIsoPrompt = new TH2F | |
a3aebfff | 375 | ("hPhiMCPrompt","Isolated Number of #gamma prompt",nptbins,ptmin,ptmax,nphibins,phimin,phimax); |
477d6cee | 376 | fhPhiIsoPrompt->SetYTitle("#phi"); |
377 | fhPhiIsoPrompt->SetXTitle("p_{T #gamma} (GeV/c)"); | |
378 | outputContainer->Add(fhPhiIsoPrompt) ; | |
379 | ||
380 | fhEtaIsoPrompt = new TH2F | |
a3aebfff | 381 | ("hEtaMCPrompt","Isolated Number of #gamma prompt ",nptbins,ptmin,ptmax,netabins,etamin,etamax); |
477d6cee | 382 | fhEtaIsoPrompt->SetYTitle("#eta"); |
383 | fhEtaIsoPrompt->SetXTitle("p_{T #gamma} (GeV/c)"); | |
384 | outputContainer->Add(fhEtaIsoPrompt) ; | |
385 | ||
a3aebfff | 386 | fhPtIsoFragmentation = new TH1F("hPtMCFragmentation","Isolated Number of #gamma",nptbins,ptmin,ptmax); |
477d6cee | 387 | fhPtIsoFragmentation->SetYTitle("N"); |
388 | fhPtIsoFragmentation->SetXTitle("p_{T #gamma}(GeV/c)"); | |
389 | outputContainer->Add(fhPtIsoFragmentation) ; | |
390 | ||
391 | fhPhiIsoFragmentation = new TH2F | |
a3aebfff | 392 | ("hPhiMCFragmentation","Isolated Number of #gamma fragmentation",nptbins,ptmin,ptmax,nphibins,phimin,phimax); |
477d6cee | 393 | fhPhiIsoFragmentation->SetYTitle("#phi"); |
394 | fhPhiIsoFragmentation->SetXTitle("p_{T #gamma} (GeV/c)"); | |
395 | outputContainer->Add(fhPhiIsoFragmentation) ; | |
396 | ||
397 | fhEtaIsoFragmentation = new TH2F | |
a3aebfff | 398 | ("hEtaMCFragmentation","Isolated Number of #gamma fragmentation",nptbins,ptmin,ptmax,netabins,etamin,etamax); |
477d6cee | 399 | fhEtaIsoFragmentation->SetYTitle("#eta"); |
400 | fhEtaIsoFragmentation->SetXTitle("p_{T #gamma} (GeV/c)"); | |
401 | outputContainer->Add(fhEtaIsoFragmentation) ; | |
402 | ||
a3aebfff | 403 | fhPtIsoPi0Decay = new TH1F("hPtMCPi0Decay","Isolated Number of #gamma from #pi^{0} decay",nptbins,ptmin,ptmax); |
477d6cee | 404 | fhPtIsoPi0Decay->SetYTitle("N"); |
405 | fhPtIsoPi0Decay->SetXTitle("p_{T #gamma}(GeV/c)"); | |
406 | outputContainer->Add(fhPtIsoPi0Decay) ; | |
407 | ||
408 | fhPhiIsoPi0Decay = new TH2F | |
a3aebfff | 409 | ("hPhiMCPi0Decay","Isolated Number of #gamma from #pi^{0} decay",nptbins,ptmin,ptmax,nphibins,phimin,phimax); |
477d6cee | 410 | fhPhiIsoPi0Decay->SetYTitle("#phi"); |
411 | fhPhiIsoPi0Decay->SetXTitle("p_{T #gamma} (GeV/c)"); | |
412 | outputContainer->Add(fhPhiIsoPi0Decay) ; | |
413 | ||
414 | fhEtaIsoPi0Decay = new TH2F | |
a3aebfff | 415 | ("hEtaMCPi0Decay","Isolated Number of #gamma from #pi^{0} decay",nptbins,ptmin,ptmax,netabins,etamin,etamax); |
477d6cee | 416 | fhEtaIsoPi0Decay->SetYTitle("#eta"); |
417 | fhEtaIsoPi0Decay->SetXTitle("p_{T #gamma} (GeV/c)"); | |
418 | outputContainer->Add(fhEtaIsoPi0Decay) ; | |
419 | ||
a3aebfff | 420 | fhPtIsoOtherDecay = new TH1F("hPtMCOtherDecay","Isolated Number of #gamma from non #pi^{0} decay",nptbins,ptmin,ptmax); |
477d6cee | 421 | fhPtIsoOtherDecay->SetYTitle("N"); |
422 | fhPtIsoOtherDecay->SetXTitle("p_{T #gamma}(GeV/c)"); | |
423 | outputContainer->Add(fhPtIsoOtherDecay) ; | |
424 | ||
425 | fhPhiIsoOtherDecay = new TH2F | |
a3aebfff | 426 | ("hPhiMCOtherDecay","Isolated Number of #gamma from non #pi^{0} decay",nptbins,ptmin,ptmax,nphibins,phimin,phimax); |
477d6cee | 427 | fhPhiIsoOtherDecay->SetYTitle("#phi"); |
428 | fhPhiIsoOtherDecay->SetXTitle("p_{T #gamma} (GeV/c)"); | |
429 | outputContainer->Add(fhPhiIsoOtherDecay) ; | |
430 | ||
431 | fhEtaIsoOtherDecay = new TH2F | |
a3aebfff | 432 | ("hEtaMCOtherDecay","Isolated Number of #gamma non #pi^{0} decay",nptbins,ptmin,ptmax,netabins,etamin,etamax); |
477d6cee | 433 | fhEtaIsoOtherDecay->SetYTitle("#eta"); |
434 | fhEtaIsoOtherDecay->SetXTitle("p_{T #gamma} (GeV/c)"); | |
435 | outputContainer->Add(fhEtaIsoOtherDecay) ; | |
436 | ||
a3aebfff | 437 | fhPtIsoConversion = new TH1F("hPtMCConversion","Isolated Number of #gamma converted",nptbins,ptmin,ptmax); |
477d6cee | 438 | fhPtIsoConversion->SetYTitle("N"); |
439 | fhPtIsoConversion->SetXTitle("p_{T #gamma}(GeV/c)"); | |
440 | outputContainer->Add(fhPtIsoConversion) ; | |
441 | ||
442 | fhPhiIsoConversion = new TH2F | |
a3aebfff | 443 | ("hPhiMCConversion","Isolated Number of #gamma converted",nptbins,ptmin,ptmax,nphibins,phimin,phimax); |
477d6cee | 444 | fhPhiIsoConversion->SetYTitle("#phi"); |
445 | fhPhiIsoConversion->SetXTitle("p_{T #gamma} (GeV/c)"); | |
446 | outputContainer->Add(fhPhiIsoConversion) ; | |
447 | ||
448 | fhEtaIsoConversion = new TH2F | |
a3aebfff | 449 | ("hEtaMCConversion","Isolated Number of #gamma converted",nptbins,ptmin,ptmax,netabins,etamin,etamax); |
477d6cee | 450 | fhEtaIsoConversion->SetYTitle("#eta"); |
451 | fhEtaIsoConversion->SetXTitle("p_{T #gamma} (GeV/c)"); | |
452 | outputContainer->Add(fhEtaIsoConversion) ; | |
453 | ||
a3aebfff | 454 | fhPtIsoUnknown = new TH1F("hPtMCUnknown","Isolated Number of non #gamma particles",nptbins,ptmin,ptmax); |
477d6cee | 455 | fhPtIsoUnknown->SetYTitle("N"); |
a3aebfff | 456 | fhPtIsoUnknown->SetXTitle("p_{T}(GeV/c)"); |
477d6cee | 457 | outputContainer->Add(fhPtIsoUnknown) ; |
458 | ||
459 | fhPhiIsoUnknown = new TH2F | |
a3aebfff | 460 | ("hPhiMCUnknown","Isolated Number of non #gamma particles",nptbins,ptmin,ptmax,nphibins,phimin,phimax); |
477d6cee | 461 | fhPhiIsoUnknown->SetYTitle("#phi"); |
a3aebfff | 462 | fhPhiIsoUnknown->SetXTitle("p_{T} (GeV/c)"); |
477d6cee | 463 | outputContainer->Add(fhPhiIsoUnknown) ; |
464 | ||
465 | fhEtaIsoUnknown = new TH2F | |
a3aebfff | 466 | ("hEtaMCUnknown","Isolated Number of non #gamma particles",nptbins,ptmin,ptmax,netabins,etamin,etamax); |
477d6cee | 467 | fhEtaIsoUnknown->SetYTitle("#eta"); |
a3aebfff | 468 | fhEtaIsoUnknown->SetXTitle("p_{T} (GeV/c)"); |
477d6cee | 469 | outputContainer->Add(fhEtaIsoUnknown) ; |
470 | }//Histos with MC | |
471 | ||
472 | } | |
473 | ||
474 | if(fMakeSeveralIC){ | |
475 | char name[128]; | |
476 | char title[128]; | |
477 | for(Int_t icone = 0; icone<fNCones; icone++){ | |
a3aebfff | 478 | sprintf(name,"hPtSum_Cone_%d",icone); |
477d6cee | 479 | sprintf(title,"Candidate cone sum p_{T} for cone size %d vs candidate p_{T}",icone); |
480 | fhPtSumIsolated[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); | |
481 | fhPtSumIsolated[icone]->SetYTitle("#Sigma p_{T} (GeV/c)"); | |
482 | fhPtSumIsolated[icone]->SetXTitle("p_{T} (GeV/c)"); | |
483 | outputContainer->Add(fhPtSumIsolated[icone]) ; | |
484 | ||
485 | if(IsDataMC()){ | |
a3aebfff | 486 | sprintf(name,"hPtSumPrompt_Cone_%d",icone); |
477d6cee | 487 | sprintf(title,"Candidate Prompt cone sum p_{T} for cone size %d vs candidate p_{T}",icone); |
488 | fhPtSumIsolatedPrompt[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); | |
489 | fhPtSumIsolatedPrompt[icone]->SetYTitle("#Sigma p_{T} (GeV/c)"); | |
490 | fhPtSumIsolatedPrompt[icone]->SetXTitle("p_{T} (GeV/c)"); | |
491 | outputContainer->Add(fhPtSumIsolatedPrompt[icone]) ; | |
492 | ||
a3aebfff | 493 | sprintf(name,"hPtSumFragmentation_Cone_%d",icone); |
477d6cee | 494 | sprintf(title,"Candidate Fragmentation cone sum p_{T} for cone size %d vs candidate p_{T}",icone); |
495 | fhPtSumIsolatedFragmentation[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); | |
496 | fhPtSumIsolatedFragmentation[icone]->SetYTitle("#Sigma p_{T} (GeV/c)"); | |
497 | fhPtSumIsolatedFragmentation[icone]->SetXTitle("p_{T} (GeV/c)"); | |
498 | outputContainer->Add(fhPtSumIsolatedFragmentation[icone]) ; | |
499 | ||
a3aebfff | 500 | sprintf(name,"hPtSumPi0Decay_Cone_%d",icone); |
477d6cee | 501 | sprintf(title,"Candidate Pi0Decay cone sum p_{T} for cone size %d vs candidate p_{T}",icone); |
502 | fhPtSumIsolatedPi0Decay[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); | |
503 | fhPtSumIsolatedPi0Decay[icone]->SetYTitle("#Sigma p_{T} (GeV/c)"); | |
504 | fhPtSumIsolatedPi0Decay[icone]->SetXTitle("p_{T} (GeV/c)"); | |
505 | outputContainer->Add(fhPtSumIsolatedPi0Decay[icone]) ; | |
506 | ||
a3aebfff | 507 | sprintf(name,"hPtSumOtherDecay_Cone_%d",icone); |
477d6cee | 508 | sprintf(title,"Candidate OtherDecay cone sum p_{T} for cone size %d vs candidate p_{T}",icone); |
509 | fhPtSumIsolatedOtherDecay[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); | |
510 | fhPtSumIsolatedOtherDecay[icone]->SetYTitle("#Sigma p_{T} (GeV/c)"); | |
511 | fhPtSumIsolatedOtherDecay[icone]->SetXTitle("p_{T} (GeV/c)"); | |
512 | outputContainer->Add(fhPtSumIsolatedOtherDecay[icone]) ; | |
513 | ||
a3aebfff | 514 | sprintf(name,"hPtSumConversion_Cone_%d",icone); |
477d6cee | 515 | sprintf(title,"Candidate Conversion cone sum p_{T} for cone size %d vs candidate p_{T}",icone); |
516 | fhPtSumIsolatedConversion[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); | |
517 | fhPtSumIsolatedConversion[icone]->SetYTitle("#Sigma p_{T} (GeV/c)"); | |
518 | fhPtSumIsolatedConversion[icone]->SetXTitle("p_{T} (GeV/c)"); | |
519 | outputContainer->Add(fhPtSumIsolatedConversion[icone]) ; | |
520 | ||
a3aebfff | 521 | sprintf(name,"hPtSumUnknown_Cone_%d",icone); |
477d6cee | 522 | sprintf(title,"Candidate Unknown cone sum p_{T} for cone size %d vs candidate p_{T}",icone); |
523 | fhPtSumIsolatedUnknown[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax); | |
524 | fhPtSumIsolatedUnknown[icone]->SetYTitle("#Sigma p_{T} (GeV/c)"); | |
525 | fhPtSumIsolatedUnknown[icone]->SetXTitle("p_{T} (GeV/c)"); | |
526 | outputContainer->Add(fhPtSumIsolatedUnknown[icone]) ; | |
527 | ||
528 | }//Histos with MC | |
529 | ||
530 | for(Int_t ipt = 0; ipt<fNPtThresFrac;ipt++){ | |
a3aebfff | 531 | sprintf(name,"hPtThres_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 532 | sprintf(title,"Isolated candidate p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
533 | fhPtThresIsolated[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
534 | fhPtThresIsolated[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
535 | outputContainer->Add(fhPtThresIsolated[icone][ipt]) ; | |
536 | ||
a3aebfff | 537 | sprintf(name,"hPtFrac_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 538 | sprintf(title,"Isolated candidate p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
539 | fhPtFracIsolated[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
540 | fhPtFracIsolated[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
541 | outputContainer->Add(fhPtFracIsolated[icone][ipt]) ; | |
542 | ||
543 | if(IsDataMC()){ | |
a3aebfff | 544 | sprintf(name,"hPtThresMCPrompt_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 545 | sprintf(title,"Isolated candidate Prompt p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
546 | fhPtThresIsolatedPrompt[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
547 | fhPtThresIsolatedPrompt[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
548 | outputContainer->Add(fhPtThresIsolatedPrompt[icone][ipt]) ; | |
549 | ||
a3aebfff | 550 | sprintf(name,"hPtFracMCPrompt_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 551 | sprintf(title,"Isolated candidate Prompt p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
552 | fhPtFracIsolatedPrompt[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
553 | fhPtFracIsolatedPrompt[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
554 | outputContainer->Add(fhPtFracIsolatedPrompt[icone][ipt]) ; | |
555 | ||
a3aebfff | 556 | sprintf(name,"hPtThresMCFragmentation_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 557 | sprintf(title,"Isolated candidate Fragmentation p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
558 | fhPtThresIsolatedFragmentation[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
559 | fhPtThresIsolatedFragmentation[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
560 | outputContainer->Add(fhPtThresIsolatedFragmentation[icone][ipt]) ; | |
561 | ||
a3aebfff | 562 | sprintf(name,"hPtFracMCFragmentation_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 563 | sprintf(title,"Isolated candidate Fragmentation p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
564 | fhPtFracIsolatedFragmentation[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
565 | fhPtFracIsolatedFragmentation[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
566 | outputContainer->Add(fhPtFracIsolatedFragmentation[icone][ipt]) ; | |
567 | ||
a3aebfff | 568 | sprintf(name,"hPtThresMCPi0Decay_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 569 | sprintf(title,"Isolated candidate Pi0Decay p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
570 | fhPtThresIsolatedPi0Decay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
571 | fhPtThresIsolatedPi0Decay[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
572 | outputContainer->Add(fhPtThresIsolatedPi0Decay[icone][ipt]) ; | |
573 | ||
a3aebfff | 574 | sprintf(name,"hPtFracMCPi0Decay_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 575 | sprintf(title,"Isolated candidate Pi0Decay p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
576 | fhPtFracIsolatedPi0Decay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
577 | fhPtFracIsolatedPi0Decay[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
578 | outputContainer->Add(fhPtFracIsolatedPi0Decay[icone][ipt]) ; | |
579 | ||
a3aebfff | 580 | sprintf(name,"hPtThresMCOtherDecay_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 581 | sprintf(title,"Isolated candidate OtherDecay p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
582 | fhPtThresIsolatedOtherDecay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
583 | fhPtThresIsolatedOtherDecay[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
584 | outputContainer->Add(fhPtThresIsolatedOtherDecay[icone][ipt]) ; | |
585 | ||
a3aebfff | 586 | sprintf(name,"hPtFracMCOtherDecay_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 587 | sprintf(title,"Isolated candidate OtherDecay p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
588 | fhPtFracIsolatedOtherDecay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
589 | fhPtFracIsolatedOtherDecay[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
590 | outputContainer->Add(fhPtFracIsolatedOtherDecay[icone][ipt]) ; | |
591 | ||
a3aebfff | 592 | sprintf(name,"hPtThresMCConversion_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 593 | sprintf(title,"Isolated candidate Conversion p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
594 | fhPtThresIsolatedConversion[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
595 | fhPtThresIsolatedConversion[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
596 | outputContainer->Add(fhPtThresIsolatedConversion[icone][ipt]) ; | |
597 | ||
a3aebfff | 598 | sprintf(name,"hPtFracMCConversion_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 599 | sprintf(title,"Isolated candidate Conversion p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
600 | fhPtFracIsolatedConversion[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
601 | fhPtFracIsolatedConversion[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
602 | outputContainer->Add(fhPtFracIsolatedConversion[icone][ipt]) ; | |
603 | ||
a3aebfff | 604 | sprintf(name,"hPtThresMCUnknown_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 605 | sprintf(title,"Isolated candidate Unknown p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
606 | fhPtThresIsolatedUnknown[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
607 | fhPtThresIsolatedUnknown[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
608 | outputContainer->Add(fhPtThresIsolatedUnknown[icone][ipt]) ; | |
609 | ||
a3aebfff | 610 | sprintf(name,"hPtFracMCUnknown_Cone_%d_Pt%d",icone,ipt); |
477d6cee | 611 | sprintf(title,"Isolated candidate Unknown p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt); |
612 | fhPtFracIsolatedUnknown[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax); | |
613 | fhPtFracIsolatedUnknown[icone][ipt]->SetXTitle("p_{T} (GeV/c)"); | |
614 | outputContainer->Add(fhPtFracIsolatedUnknown[icone][ipt]) ; | |
615 | ||
616 | }//Histos with MC | |
617 | ||
618 | }//icone loop | |
619 | }//ipt loop | |
620 | } | |
621 | ||
622 | //Keep neutral meson selection histograms if requiered | |
623 | //Setting done in AliNeutralMesonSelection | |
624 | if(fMakeInvMass && GetNeutralMesonSelection()){ | |
625 | TList * nmsHistos = GetNeutralMesonSelection()->GetCreateOutputObjects() ; | |
626 | if(GetNeutralMesonSelection()->AreNeutralMesonSelectionHistosKept()) | |
627 | for(Int_t i = 0; i < nmsHistos->GetEntries(); i++) outputContainer->Add(nmsHistos->At(i)) ; | |
628 | } | |
629 | ||
477d6cee | 630 | //Save parameters used for analysis |
631 | TString parList ; //this will be list of parameters used for this analysis. | |
632 | char onePar[255] ; | |
633 | ||
634 | sprintf(onePar,"--- AliAnaParticleIsolation ---\n") ; | |
635 | parList+=onePar ; | |
636 | sprintf(onePar,"Calorimeter: %s\n",fCalorimeter.Data()) ; | |
637 | parList+=onePar ; | |
638 | sprintf(onePar,"fReMakeIC =%d (Flag for reisolation during histogram filling) \n",fReMakeIC) ; | |
639 | parList+=onePar ; | |
640 | sprintf(onePar,"fMakeSeveralIC=%d (Flag for isolation with several cuts at the same time ) \n",fMakeSeveralIC) ; | |
641 | parList+=onePar ; | |
642 | sprintf(onePar,"fMakeInvMass=%d (Flag for rejection of candidates with a pi0 inv mass pair) \n",fMakeInvMass) ; | |
643 | parList+=onePar ; | |
644 | ||
645 | if(fMakeSeveralIC){ | |
646 | sprintf(onePar,"fNCones =%d (Number of cone sizes) \n",fNCones) ; | |
647 | parList+=onePar ; | |
648 | sprintf(onePar,"fNPtThresFrac=%d (Flag for isolation with several cuts at the same time ) \n",fNPtThresFrac) ; | |
649 | parList+=onePar ; | |
650 | ||
651 | for(Int_t icone = 0; icone < fNCones ; icone++){ | |
652 | sprintf(onePar,"fConeSizes[%d]=%1.2f (isolation cone size) \n",icone, fConeSizes[icone]) ; | |
653 | parList+=onePar ; | |
654 | } | |
655 | for(Int_t ipt = 0; ipt < fNPtThresFrac ; ipt++){ | |
656 | sprintf(onePar,"fPtThresholds[%d]=%1.2f (isolation pt threshold) \n",ipt, fPtThresholds[ipt]) ; | |
657 | parList+=onePar ; | |
658 | } | |
659 | for(Int_t ipt = 0; ipt < fNPtThresFrac ; ipt++){ | |
660 | sprintf(onePar,"fPtFractions[%d]=%1.2f (isolation pt fraction threshold) \n",ipt, fPtFractions[ipt]) ; | |
661 | parList+=onePar ; | |
662 | } | |
663 | } | |
664 | ||
665 | //Get parameters set in base class. | |
666 | parList += GetBaseParametersList() ; | |
667 | ||
668 | //Get parameters set in IC class. | |
669 | if(!fMakeSeveralIC)parList += GetIsolationCut()->GetICParametersList() ; | |
670 | ||
671 | TObjString *oString= new TObjString(parList) ; | |
672 | outputContainer->Add(oString); | |
673 | ||
674 | ||
675 | return outputContainer ; | |
676 | ||
677 | } | |
678 | ||
679 | //__________________________________________________________________ | |
680 | void AliAnaParticleIsolation::MakeAnalysisFillAOD() | |
681 | { | |
682 | //Do analysis and fill aods | |
683 | //Search for the isolated photon in fCalorimeter with pt > GetMinPt() | |
684 | ||
685 | if(!GetInputAODBranch()){ | |
a3aebfff | 686 | printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() - No input particles in AOD with name branch < %s >, STOP \n",GetInputAODName().Data()); |
477d6cee | 687 | abort(); |
688 | } | |
a3aebfff | 689 | |
9415d854 | 690 | if(strcmp(GetInputAODBranch()->GetClass()->GetName(), "AliAODPWG4ParticleCorrelation")){ |
691 | printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() - Wrong type of AOD object, change AOD class name in input AOD: It should be <AliAODPWG4ParticleCorrelation> and not <%s> \n",GetInputAODBranch()->GetClass()->GetName()); | |
692 | abort(); | |
693 | } | |
694 | ||
477d6cee | 695 | Int_t n = 0, nfrac = 0; |
696 | Bool_t isolated = kFALSE ; | |
697 | Float_t coneptsum = 0 ; | |
591cc579 | 698 | TObjArray * pl = new TObjArray(); |
477d6cee | 699 | |
700 | //Select the calorimeter for candidate isolation with neutral particles | |
701 | if(fCalorimeter == "PHOS") | |
702 | pl = GetAODPHOS(); | |
703 | else if (fCalorimeter == "EMCAL") | |
704 | pl = GetAODEMCAL(); | |
705 | ||
477d6cee | 706 | //Loop on AOD branch, filled previously in AliAnaPhoton |
707 | TLorentzVector mom ; | |
1e1befe8 | 708 | Int_t naod = GetInputAODBranch()->GetEntriesFast(); |
709 | if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() - Input aod branch entries %d\n", naod); | |
710 | for(Int_t iaod = 0; iaod < naod; iaod++){ | |
a3aebfff | 711 | AliAODPWG4ParticleCorrelation * aodinput = (AliAODPWG4ParticleCorrelation*) (GetInputAODBranch()->At(iaod)); |
477d6cee | 712 | |
713 | //If too small or too large pt, skip | |
a3aebfff | 714 | if(aodinput->Pt() < GetMinPt() || aodinput->Pt() > GetMaxPt() ) continue ; |
477d6cee | 715 | |
716 | //Check invariant mass, if pi0, skip. | |
717 | Bool_t decay = kFALSE ; | |
a3aebfff | 718 | if(fMakeInvMass) decay = CheckInvMass(iaod,aodinput); |
477d6cee | 719 | if(decay) continue ; |
a3aebfff | 720 | |
721 | //After cuts, study isolation | |
477d6cee | 722 | n=0; nfrac = 0; isolated = kFALSE; coneptsum = 0; |
233e0df8 | 723 | GetIsolationCut()->MakeIsolationCut(GetAODCTS(),pl,GetReader(), kTRUE, aodinput, GetAODObjArrayName(), n,nfrac,coneptsum, isolated); |
a3aebfff | 724 | aodinput->SetIsolated(isolated); |
1e1befe8 | 725 | if(GetDebug() > 1 && isolated) printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() : Particle %d IS ISOLATED \n",iaod); |
726 | ||
477d6cee | 727 | }//loop |
728 | ||
1e1befe8 | 729 | if(GetDebug() > 1) printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() - End fill AODs \n"); |
477d6cee | 730 | |
731 | } | |
732 | ||
733 | //__________________________________________________________________ | |
734 | void AliAnaParticleIsolation::MakeAnalysisFillHistograms() | |
735 | { | |
736 | //Do analysis and fill histograms | |
737 | Int_t n = 0, nfrac = 0; | |
738 | Bool_t isolated = kFALSE ; | |
739 | Float_t coneptsum = 0 ; | |
477d6cee | 740 | //Loop on stored AOD |
741 | Int_t naod = GetInputAODBranch()->GetEntriesFast(); | |
1e1befe8 | 742 | if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Histo aod branch entries %d\n", naod); |
233e0df8 | 743 | |
744 | //Get vertex for photon momentum calculation | |
745 | Double_t vertex[]={0,0,0} ; //vertex ; | |
746 | Double_t vertex2[]={0,0,0} ; //vertex ; | |
edd59991 | 747 | if(GetReader()->GetDataType() != AliCaloTrackReader::kMC) { |
233e0df8 | 748 | GetReader()->GetVertex(vertex); |
749 | if(GetReader()->GetSecondInputAODTree()) GetReader()->GetSecondInputAODVertex(vertex2); | |
750 | } | |
751 | ||
477d6cee | 752 | for(Int_t iaod = 0; iaod < naod ; iaod++){ |
753 | AliAODPWG4ParticleCorrelation* aod = (AliAODPWG4ParticleCorrelation*) (GetInputAODBranch()->At(iaod)); | |
a3aebfff | 754 | |
755 | Bool_t isolation = aod->IsIsolated(); | |
477d6cee | 756 | Float_t ptcluster = aod->Pt(); |
757 | Float_t phicluster = aod->Phi(); | |
758 | Float_t etacluster = aod->Eta(); | |
a3aebfff | 759 | //Recover reference arrays with clusters and tracks |
591cc579 | 760 | TObjArray * refclusters = aod->GetObjArray(GetAODObjArrayName()+"Clusters"); |
761 | TObjArray * reftracks = aod->GetObjArray(GetAODObjArrayName()+"Tracks"); | |
a3aebfff | 762 | |
477d6cee | 763 | if(fMakeSeveralIC) { |
764 | //Analysis of multiple IC at same time | |
765 | MakeSeveralICAnalysis(aod); | |
766 | continue; | |
767 | } | |
768 | else if(fReMakeIC){ | |
769 | //In case a more strict IC is needed in the produced AOD | |
770 | n=0; nfrac = 0; isolated = kFALSE; coneptsum = 0; | |
233e0df8 | 771 | GetIsolationCut()->MakeIsolationCut(reftracks, refclusters, GetReader(), kFALSE, aod, "", n,nfrac,coneptsum, isolated); |
1e1befe8 | 772 | fhConeSumPt->Fill(ptcluster,coneptsum); |
773 | if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Energy Sum in Isolation Cone %2.2f\n", coneptsum); | |
774 | } | |
477d6cee | 775 | |
776 | //Fill pt distribution of particles in cone | |
777 | //Tracks | |
778 | coneptsum=0; | |
a3aebfff | 779 | if(reftracks){ |
780 | for(Int_t itrack=0; itrack < reftracks->GetEntriesFast(); itrack++){ | |
781 | AliAODTrack* track = (AliAODTrack *) reftracks->At(itrack); | |
782 | fhPtInCone->Fill(ptcluster,TMath::Sqrt(track->Px()*track->Px()+track->Py()*track->Py())); | |
783 | coneptsum+=track->Pt(); | |
784 | } | |
785 | } | |
786 | ||
477d6cee | 787 | //CaloClusters |
a3aebfff | 788 | if(refclusters){ |
789 | TLorentzVector mom ; | |
790 | for(Int_t icalo=0; icalo < refclusters->GetEntriesFast(); icalo++){ | |
791 | AliAODCaloCluster* calo = (AliAODCaloCluster *) refclusters->At(icalo); | |
233e0df8 | 792 | Int_t input = 0; |
793 | if (fCalorimeter == "EMCAL" && GetReader()->GetAODEMCALNormalInputEntries() <= icalo) input = 1 ; | |
794 | else if(fCalorimeter == "PHOS" && GetReader()->GetAODPHOSNormalInputEntries() <= icalo) input = 1; | |
795 | ||
796 | //Get Momentum vector, | |
797 | if (input == 0) calo->GetMomentum(mom,vertex) ;//Assume that come from vertex in straight line | |
798 | else if(input == 1) calo->GetMomentum(mom,vertex2);//Assume that come from vertex in straight line | |
799 | ||
a3aebfff | 800 | fhPtInCone->Fill(ptcluster, mom.Pt()); |
801 | coneptsum+=mom.Pt(); | |
802 | } | |
477d6cee | 803 | } |
a3aebfff | 804 | |
1e1befe8 | 805 | if(GetDebug() > 1) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Particle %d Energy Sum in Isolation Cone %2.2f\n", iaod, coneptsum); |
806 | ||
807 | if(!fReMakeIC) fhConeSumPt->Fill(ptcluster,coneptsum); | |
477d6cee | 808 | |
809 | if(isolation){ | |
1e1befe8 | 810 | |
811 | if(GetDebug() > 1) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Particle %d ISOLATED, fill histograms\n", iaod); | |
812 | ||
477d6cee | 813 | fhPtIso ->Fill(ptcluster); |
814 | fhPhiIso ->Fill(ptcluster,phicluster); | |
815 | fhEtaIso ->Fill(ptcluster,etacluster); | |
816 | ||
817 | if(IsDataMC()){ | |
818 | Int_t tag =aod->GetTag(); | |
819 | ||
591cc579 | 820 | if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)){ |
477d6cee | 821 | fhPtIsoPrompt ->Fill(ptcluster); |
822 | fhPhiIsoPrompt ->Fill(ptcluster,phicluster); | |
823 | fhEtaIsoPrompt ->Fill(ptcluster,etacluster); | |
824 | } | |
591cc579 | 825 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) |
477d6cee | 826 | { |
827 | fhPtIsoFragmentation ->Fill(ptcluster); | |
828 | fhPhiIsoFragmentation ->Fill(ptcluster,phicluster); | |
829 | fhEtaIsoFragmentation ->Fill(ptcluster,etacluster); | |
830 | } | |
591cc579 | 831 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) |
477d6cee | 832 | { |
833 | fhPtIsoPi0Decay ->Fill(ptcluster); | |
834 | fhPhiIsoPi0Decay ->Fill(ptcluster,phicluster); | |
835 | fhEtaIsoPi0Decay ->Fill(ptcluster,etacluster); | |
836 | } | |
591cc579 | 837 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay) || GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)) |
477d6cee | 838 | { |
839 | fhPtIsoOtherDecay ->Fill(ptcluster); | |
840 | fhPhiIsoOtherDecay ->Fill(ptcluster,phicluster); | |
841 | fhEtaIsoOtherDecay ->Fill(ptcluster,etacluster); | |
842 | } | |
591cc579 | 843 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) |
477d6cee | 844 | { |
845 | fhPtIsoConversion ->Fill(ptcluster); | |
846 | fhPhiIsoConversion ->Fill(ptcluster,phicluster); | |
847 | fhEtaIsoConversion ->Fill(ptcluster,etacluster); | |
848 | } | |
849 | else | |
850 | { | |
851 | fhPtIsoUnknown ->Fill(ptcluster); | |
852 | fhPhiIsoUnknown ->Fill(ptcluster,phicluster); | |
853 | fhEtaIsoUnknown ->Fill(ptcluster,etacluster); | |
854 | } | |
855 | }//Histograms with MC | |
856 | ||
857 | }//Isolated histograms | |
858 | ||
859 | }// aod loop | |
860 | ||
861 | } | |
862 | ||
863 | //____________________________________________________________________________ | |
864 | void AliAnaParticleIsolation::InitParameters() | |
865 | { | |
866 | ||
867 | //Initialize the parameters of the analysis. | |
a3aebfff | 868 | SetInputAODName("PWG4Particle"); |
591cc579 | 869 | SetAODObjArrayName("IsolationCone"); |
a3aebfff | 870 | AddToHistogramsName("AnaIsolation_"); |
871 | ||
477d6cee | 872 | fCalorimeter = "PHOS" ; |
873 | fReMakeIC = kFALSE ; | |
874 | fMakeSeveralIC = kFALSE ; | |
875 | fMakeInvMass = kFALSE ; | |
876 | ||
877 | //----------- Several IC----------------- | |
878 | fNCones = 5 ; | |
879 | fNPtThresFrac = 5 ; | |
880 | fConeSizes[0] = 0.1; fConeSizes[1] = 0.2; fConeSizes[2] = 0.3; fConeSizes[3] = 0.4; fConeSizes[4] = 0.5; | |
881 | fPtThresholds[0] = 1.; fPtThresholds[1] = 2.; fPtThresholds[2] = 3.; fPtThresholds[3] = 4.; fPtThresholds[4] = 5.; | |
882 | fPtFractions[0] = 0.05; fPtFractions[1] = 0.075; fPtFractions[2] = 0.1; fPtFractions[3] = 1.25; fPtFractions[4] = 1.5; | |
883 | ||
884 | //------------- Histograms settings ------- | |
885 | fHistoNPtSumBins = 100 ; | |
886 | fHistoPtSumMax = 50 ; | |
887 | fHistoPtSumMin = 0. ; | |
888 | ||
889 | fHistoNPtInConeBins = 100 ; | |
890 | fHistoPtInConeMax = 50 ; | |
891 | fHistoPtInConeMin = 0. ; | |
892 | ||
893 | } | |
894 | ||
895 | //__________________________________________________________________ | |
896 | void AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelation* ph) | |
897 | { | |
898 | //Isolation Cut Analysis for both methods and different pt cuts and cones | |
899 | Float_t ptC = ph->Pt(); | |
900 | Int_t tag = ph->GetTag(); | |
901 | ||
902 | //Keep original setting used when filling AODs, reset at end of analysis | |
903 | Float_t ptthresorg = GetIsolationCut()->GetPtThreshold(); | |
904 | Float_t ptfracorg = GetIsolationCut()->GetPtFraction(); | |
905 | Float_t rorg = GetIsolationCut()->GetConeSize(); | |
906 | ||
907 | Float_t coneptsum = 0 ; | |
908 | Int_t n[10][10];//[fNCones][fNPtThresFrac]; | |
909 | Int_t nfrac[10][10];//[fNCones][fNPtThresFrac]; | |
910 | Bool_t isolated = kFALSE; | |
911 | ||
912 | //Loop on cone sizes | |
913 | for(Int_t icone = 0; icone<fNCones; icone++){ | |
914 | GetIsolationCut()->SetConeSize(fConeSizes[icone]); | |
915 | coneptsum = 0 ; | |
a3aebfff | 916 | |
477d6cee | 917 | //Loop on ptthresholds |
918 | for(Int_t ipt = 0; ipt<fNPtThresFrac ;ipt++){ | |
919 | n[icone][ipt]=0; | |
920 | nfrac[icone][ipt]=0; | |
921 | GetIsolationCut()->SetPtThreshold(fPtThresholds[ipt]); | |
591cc579 | 922 | GetIsolationCut()->MakeIsolationCut(ph->GetObjArray(GetAODObjArrayName()+"Tracks"), |
923 | ph->GetObjArray(GetAODObjArrayName()+"Clusters"), | |
233e0df8 | 924 | GetReader(), kFALSE, ph, "",n[icone][ipt],nfrac[icone][ipt],coneptsum, isolated); |
a3aebfff | 925 | |
477d6cee | 926 | //Normal ptThreshold cut |
927 | if(n[icone][ipt] == 0) { | |
928 | fhPtThresIsolated[icone][ipt]->Fill(ptC); | |
929 | if(IsDataMC()){ | |
591cc579 | 930 | if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtThresIsolatedPrompt[icone][ipt]->Fill(ptC) ; |
931 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtThresIsolatedConversion[icone][ipt]->Fill(ptC) ; | |
932 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtThresIsolatedFragmentation[icone][ipt]->Fill(ptC) ; | |
933 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtThresIsolatedPi0Decay[icone][ipt]->Fill(ptC) ; | |
934 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay) || GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtThresIsolatedOtherDecay[icone][ipt]->Fill(ptC) ; | |
477d6cee | 935 | else fhPtThresIsolatedUnknown[icone][ipt]->Fill(ptC) ; |
936 | } | |
937 | } | |
938 | ||
939 | //Pt threshold on pt cand/ pt in cone fraction | |
940 | if(nfrac[icone][ipt] == 0) { | |
941 | fhPtFracIsolated[icone][ipt]->Fill(ptC); | |
942 | if(IsDataMC()){ | |
591cc579 | 943 | if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtFracIsolatedPrompt[icone][ipt]->Fill(ptC) ; |
944 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtFracIsolatedConversion[icone][ipt]->Fill(ptC) ; | |
945 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtFracIsolatedFragmentation[icone][ipt]->Fill(ptC) ; | |
946 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtFracIsolatedPi0Decay[icone][ipt]->Fill(ptC) ; | |
947 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay) || GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtFracIsolatedOtherDecay[icone][ipt]->Fill(ptC) ; | |
477d6cee | 948 | else fhPtFracIsolatedUnknown[icone][ipt]->Fill(ptC) ; |
949 | } | |
950 | } | |
951 | }//pt thresh loop | |
952 | ||
953 | //Sum in cone histograms | |
954 | fhPtSumIsolated[icone]->Fill(ptC,coneptsum) ; | |
955 | if(IsDataMC()){ | |
591cc579 | 956 | if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtSumIsolatedPrompt[icone]->Fill(ptC,coneptsum) ; |
957 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtSumIsolatedConversion[icone]->Fill(ptC,coneptsum) ; | |
958 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtSumIsolatedFragmentation[icone]->Fill(ptC,coneptsum) ; | |
959 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtSumIsolatedPi0Decay[icone]->Fill(ptC,coneptsum) ; | |
960 | else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay) || GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtSumIsolatedOtherDecay[icone]->Fill(ptC,coneptsum) ; | |
477d6cee | 961 | else fhPtSumIsolatedUnknown[icone]->Fill(ptC,coneptsum) ; |
962 | } | |
963 | ||
964 | }//cone size loop | |
965 | ||
966 | //Reset original parameters for AOD analysis | |
967 | GetIsolationCut()->SetPtThreshold(ptthresorg); | |
968 | GetIsolationCut()->SetPtFraction(ptfracorg); | |
969 | GetIsolationCut()->SetConeSize(rorg); | |
970 | ||
971 | } | |
972 | ||
973 | //__________________________________________________________________ | |
974 | void AliAnaParticleIsolation::Print(const Option_t * opt) const | |
975 | { | |
976 | ||
977 | //Print some relevant parameters set for the analysis | |
978 | if(! opt) | |
979 | return; | |
980 | ||
981 | printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ; | |
a3aebfff | 982 | AliAnaPartCorrBaseClass::Print(" "); |
477d6cee | 983 | |
984 | printf("ReMake Isolation = %d \n", fReMakeIC) ; | |
985 | printf("Make Several Isolation = %d \n", fMakeSeveralIC) ; | |
986 | printf("Calorimeter for isolation = %s \n", fCalorimeter.Data()) ; | |
987 | ||
988 | if(fMakeSeveralIC){ | |
989 | printf("N Cone Sizes = %d\n", fNCones) ; | |
990 | printf("Cone Sizes = \n") ; | |
991 | for(Int_t i = 0; i < fNCones; i++) | |
992 | printf(" %1.2f;", fConeSizes[i]) ; | |
993 | printf(" \n") ; | |
994 | ||
995 | printf("N pT thresholds/fractions = %d\n", fNPtThresFrac) ; | |
996 | printf(" pT thresholds = \n") ; | |
997 | for(Int_t i = 0; i < fNPtThresFrac; i++) | |
998 | printf(" %2.2f;", fPtThresholds[i]) ; | |
999 | ||
1000 | printf(" \n") ; | |
1001 | ||
1002 | printf(" pT fractions = \n") ; | |
1003 | for(Int_t i = 0; i < fNPtThresFrac; i++) | |
1004 | printf(" %2.2f;", fPtFractions[i]) ; | |
1005 | ||
1006 | } | |
1007 | ||
1008 | printf("Histograms: %3.1f < pT sum < %3.1f, Nbin = %d\n", fHistoPtSumMin, fHistoPtSumMax, fHistoNPtSumBins); | |
1009 | printf("Histograms: %3.1f < pT in cone < %3.1f, Nbin = %d\n", fHistoPtInConeMin, fHistoPtInConeMax, fHistoNPtInConeBins); | |
1010 | ||
1011 | printf(" \n") ; | |
1012 | ||
1013 | } | |
1014 |