]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.cxx
add switches for the filling of isolation band and underlying events histograms,...
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaParticleIsolation.cxx
CommitLineData
1a31a9ab 1/**************************************************************************
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 **************************************************************************/
1a31a9ab 15
16//_________________________________________________________________________
17// Class for analysis of particle isolation
18// Input is selected particles put in AOD branch (AliAODPWG4ParticleCorrelation)
19//
20// Class created from old AliPHOSGammaJet
21// (see AliRoot versions previous Release 4-09)
22//
23// -- Author: Gustavo Conesa (LNF-INFN)
24
25//-Yaxian Mao (add the possibility for different IC method with different pt range, 01/10/2010)
26//////////////////////////////////////////////////////////////////////////////
db6fb352 27
28
1a31a9ab 29// --- ROOT system ---
30#include <TClonesArray.h>
31#include <TList.h>
32#include <TObjString.h>
33#include <TH2F.h>
1a31a9ab 34#include <TClass.h>
dc9c6e78 35#include <TH2F.h>
36#include "TParticle.h"
37#include "TDatabasePDG.h"
38
39
1a31a9ab 40
41// --- Analysis system ---
42#include "AliAnaParticleIsolation.h"
43#include "AliCaloTrackReader.h"
dc9c6e78 44#include "AliStack.h"
1a31a9ab 45#include "AliIsolationCut.h"
dc9c6e78 46#include "AliFiducialCut.h"
47#include "AliMCAnalysisUtils.h"
1a31a9ab 48#include "AliNeutralMesonSelection.h"
dc9c6e78 49#include "AliAODMCParticle.h"
1a31a9ab 50#include "AliAODPWG4ParticleCorrelation.h"
51#include "AliMCAnalysisUtils.h"
52#include "AliVTrack.h"
53#include "AliVCluster.h"
2ad19c3d 54#include "AliESDEvent.h"
55#include "AliAODEvent.h"
dc9c6e78 56// --- Detectors ---
ea051413 57#include "AliEMCALGeometry.h"
dc9c6e78 58#include "AliPHOSGeoUtils.h"
1a31a9ab 59
60ClassImp(AliAnaParticleIsolation)
db6fb352 61
803d06a8 62//______________________________________________________________________________
db6fb352 63AliAnaParticleIsolation::AliAnaParticleIsolation() :
64AliAnaCaloTrackCorrBaseClass(), fCalorimeter(""),
65fReMakeIC(0), fMakeSeveralIC(0),
2ad19c3d 66fFillPileUpHistograms(0),
977564f5 67fFillTMHisto(0), fFillSSHisto(1),
68fFillUEBandSubtractHistograms(1), fFillCellHistograms(0),
69fFillHighMultHistograms(0), fFillTaggedDecayHistograms(0),
70fFillNLMHistograms(0), fTRDSMCovered(-1),
db6fb352 71// Several IC
72fNCones(0), fNPtThresFrac(0),
73fConeSizes(), fPtThresholds(),
74fPtFractions(), fSumPtThresholds(),
75// Histograms
c8710850 76fhEIso(0), fhPtIso(0),
77fhPtCentralityIso(0), fhPtEventPlaneIso(0),
78fhPtNLocMaxIso(0),
9b01dc66 79fhPhiIso(0), fhEtaIso(0), fhEtaPhiIso(0),
db6fb352 80fhEtaPhiNoIso(0),
9b01dc66 81fhENoIso(0), fhPtNoIso(0), fhPtNLocMaxNoIso(0),
8736d400 82fhPtDecayIso(0), fhPtDecayNoIso(0),
db6fb352 83fhEtaPhiDecayIso(0), fhEtaPhiDecayNoIso(0),
23130491 84fhPtInCone(0),
9b01dc66 85fhPtClusterInCone(0), fhPtCellInCone(0), fhPtTrackInCone(0),
2a9171b5 86fhPtTrackInConeOtherBC(0), fhPtTrackInConeOtherBCPileUpSPD(0),
cc944149 87fhPtTrackInConeBC0(0), fhPtTrackInConeVtxBC0(0),
88fhPtTrackInConeBC0PileUpSPD(0),
17af6e24 89fhPtInConePileUp(), fhPtInConeCent(0),
23130491 90fhPerpConeSumPt(0), fhPtInPerpCone(0),
977564f5 91fhEtaPhiInConeCluster(0), fhEtaPhiCluster(0),
92fhEtaPhiInConeTrack(0), fhEtaPhiTrack(0),
23130491 93fhEtaBandCluster(0), fhPhiBandCluster(0),
94fhEtaBandTrack(0), fhPhiBandTrack(0),
9b01dc66 95fhEtaBandCell(0), fhPhiBandCell(0),
96fhConeSumPt(0), fhConeSumPtCellTrack(0),
97fhConeSumPtCell(0), fhConeSumPtCluster(0), fhConeSumPtTrack(0),
23130491 98fhConeSumPtEtaBandUECluster(0), fhConeSumPtPhiBandUECluster(0),
99fhConeSumPtEtaBandUETrack(0), fhConeSumPtPhiBandUETrack(0),
9b01dc66 100fhConeSumPtEtaBandUECell(0), fhConeSumPtPhiBandUECell(0),
23130491 101fhConeSumPtTrigEtaPhi(0),
9b01dc66 102fhConeSumPtCellTrackTrigEtaPhi(0),
23130491 103fhConeSumPtEtaBandUEClusterTrigEtaPhi(0), fhConeSumPtPhiBandUEClusterTrigEtaPhi(0),
104fhConeSumPtEtaBandUETrackTrigEtaPhi(0), fhConeSumPtPhiBandUETrackTrigEtaPhi(0),
67b42f6d 105fhConeSumPtEtaBandUECellTrigEtaPhi(0), fhConeSumPtPhiBandUECellTrigEtaPhi(0),
23130491 106fhConeSumPtEtaUESub(0), fhConeSumPtPhiUESub(0),
107fhConeSumPtEtaUESubTrigEtaPhi(0), fhConeSumPtPhiUESubTrigEtaPhi(0),
9b01dc66 108fhConeSumPtEtaUESubTrackCell(0), fhConeSumPtPhiUESubTrackCell(0),
109fhConeSumPtEtaUESubTrackCellTrigEtaPhi(0), fhConeSumPtPhiUESubTrackCellTrigEtaPhi(0),
23130491 110fhConeSumPtEtaUESubCluster(0), fhConeSumPtPhiUESubCluster(0),
111fhConeSumPtEtaUESubClusterTrigEtaPhi(0), fhConeSumPtPhiUESubClusterTrigEtaPhi(0),
9b01dc66 112fhConeSumPtEtaUESubCell(0), fhConeSumPtPhiUESubCell(0),
113fhConeSumPtEtaUESubCellTrigEtaPhi(0), fhConeSumPtPhiUESubCellTrigEtaPhi(0),
23130491 114fhConeSumPtEtaUESubTrack(0), fhConeSumPtPhiUESubTrack(0),
115fhConeSumPtEtaUESubTrackTrigEtaPhi(0), fhConeSumPtPhiUESubTrackTrigEtaPhi(0),
116fhFractionTrackOutConeEta(0), fhFractionTrackOutConeEtaTrigEtaPhi(0),
117fhFractionClusterOutConeEta(0), fhFractionClusterOutConeEtaTrigEtaPhi(0),
118fhFractionClusterOutConePhi(0), fhFractionClusterOutConePhiTrigEtaPhi(0),
9b01dc66 119fhFractionCellOutConeEta(0), fhFractionCellOutConeEtaTrigEtaPhi(0),
120fhFractionCellOutConePhi(0), fhFractionCellOutConePhiTrigEtaPhi(0),
814d1087 121fhConeSumPtClustervsTrack(0),
122fhConeSumPtEtaUESubClustervsTrack(0), fhConeSumPtPhiUESubClustervsTrack(0),
9b01dc66 123fhConeSumPtCellvsTrack(0),
124fhConeSumPtEtaUESubCellvsTrack(0), fhConeSumPtPhiUESubCellvsTrack(0),
814d1087 125fhEtaBandClustervsTrack(0), fhPhiBandClustervsTrack(0),
126fhEtaBandNormClustervsTrack(0), fhPhiBandNormClustervsTrack(0),
9b01dc66 127fhEtaBandCellvsTrack(0), fhPhiBandCellvsTrack(0),
128fhEtaBandNormCellvsTrack(0), fhPhiBandNormCellvsTrack(0),
b5d10017 129fhConeSumPtSubvsConeSumPtTotPhiTrack(0), fhConeSumPtSubNormvsConeSumPtTotPhiTrack(0),
130fhConeSumPtSubvsConeSumPtTotEtaTrack(0), fhConeSumPtSubNormvsConeSumPtTotEtaTrack(0),
131fhConeSumPtSubvsConeSumPtTotPhiCluster(0), fhConeSumPtSubNormvsConeSumPtTotPhiCluster(0),
132fhConeSumPtSubvsConeSumPtTotEtaCluster(0), fhConeSumPtSubNormvsConeSumPtTotEtaCluster(0),
133fhConeSumPtSubvsConeSumPtTotPhiCell(0), fhConeSumPtSubNormvsConeSumPtTotPhiCell(0),
134fhConeSumPtSubvsConeSumPtTotEtaCell(0), fhConeSumPtSubNormvsConeSumPtTotEtaCell(0),
727a309a 135fhConeSumPtVSUETracksEtaBand(0), fhConeSumPtVSUETracksPhiBand(0),
136fhConeSumPtVSUEClusterEtaBand(0), fhConeSumPtVSUEClusterPhiBand(0),
db6fb352 137// MC histograms
138fhPtIsoPrompt(0), fhPhiIsoPrompt(0), fhEtaIsoPrompt(0),
139fhPtThresIsolatedPrompt(), fhPtFracIsolatedPrompt(), fhPtSumIsolatedPrompt(),
140fhPtIsoFragmentation(0), fhPhiIsoFragmentation(0), fhEtaIsoFragmentation(0),
141fhPtThresIsolatedFragmentation(), fhPtFracIsolatedFragmentation(), fhPtSumIsolatedFragmentation(),
764ab1f4 142fhPtIsoPi0(0), fhPhiIsoPi0(0), fhEtaIsoPi0(0),
143fhPtThresIsolatedPi0(), fhPtFracIsolatedPi0(), fhPtSumIsolatedPi0(),
db6fb352 144fhPtIsoPi0Decay(0), fhPhiIsoPi0Decay(0), fhEtaIsoPi0Decay(0),
145fhPtThresIsolatedPi0Decay(), fhPtFracIsolatedPi0Decay(), fhPtSumIsolatedPi0Decay(),
146fhPtIsoEtaDecay(0), fhPhiIsoEtaDecay(0), fhEtaIsoEtaDecay(0),
147fhPtThresIsolatedEtaDecay(), fhPtFracIsolatedEtaDecay(), fhPtSumIsolatedEtaDecay(),
148fhPtIsoOtherDecay(0), fhPhiIsoOtherDecay(0), fhEtaIsoOtherDecay(0),
149fhPtThresIsolatedOtherDecay(), fhPtFracIsolatedOtherDecay(), fhPtSumIsolatedOtherDecay(),
764ab1f4 150//fhPtIsoConversion(0), fhPhiIsoConversion(0), fhEtaIsoConversion(0),
151//fhPtThresIsolatedConversion(), fhPtFracIsolatedConversion(), fhPtSumIsolatedConversion(),
152fhPtIsoHadron(0), fhPhiIsoHadron(0), fhEtaIsoHadron(0),
153fhPtThresIsolatedHadron(), fhPtFracIsolatedHadron(), fhPtSumIsolatedHadron(),
154fhPtNoIsoPi0(0), fhPtNoIsoPi0Decay(0),
155fhPtNoIsoEtaDecay(0), fhPtNoIsoOtherDecay(0),
db6fb352 156fhPtNoIsoPrompt(0), fhPtIsoMCPhoton(0), fhPtNoIsoMCPhoton(0),
764ab1f4 157//fhPtNoIsoConversion(0),
158fhPtNoIsoFragmentation(0), fhPtNoIsoHadron(0),
db6fb352 159// Hist several IC
764ab1f4 160fhSumPtLeadingPt(), fhPtLeadingPt(),
23130491 161fhPerpSumPtLeadingPt(), fhPerpPtLeadingPt(),
db6fb352 162fhPtThresIsolated(), fhPtFracIsolated(), fhPtSumIsolated(),
163fhEtaPhiPtThresIso(), fhEtaPhiPtThresDecayIso(), fhPtPtThresDecayIso(),
164fhEtaPhiPtFracIso(), fhEtaPhiPtFracDecayIso(), fhPtPtFracDecayIso(),
b0a31c92 165fhPtPtSumDecayIso(), fhEtaPhiSumDensityIso(), fhEtaPhiSumDensityDecayIso(),
166fhPtSumDensityIso(), fhPtSumDensityDecayIso(),
167fhPtFracPtSumIso(), fhPtFracPtSumDecayIso(),
168fhEtaPhiFracPtSumIso(), fhEtaPhiFracPtSumDecayIso(),
db6fb352 169// Cluster control histograms
ca134929 170fhTrackMatchedDEta(), fhTrackMatchedDPhi(), fhTrackMatchedDEtaDPhi(),
171fhdEdx(), fhEOverP(), fhTrackMatchedMCParticle(),
f6d2e552 172fhELambda0() , fhPtLambda0() , fhELambda1(),
32d244b0 173fhELambda0TRD(), fhPtLambda0TRD(), fhELambda1TRD(),
174fhELambda0MCPhoton(), fhPtLambda0MCPhotonPrompt(), fhPtLambda0MCPhotonFrag(),
175fhELambda0MCPi0(), fhELambda0MCPi0Decay(),
764ab1f4 176fhELambda0MCEtaDecay(), fhELambda0MCOtherDecay(), fhELambda0MCHadron(),
32d244b0 177
db6fb352 178// Number of local maxima in cluster
ca134929 179fhNLocMax(),
180fhELambda0LocMax1(), fhELambda1LocMax1(),
181fhELambda0LocMax2(), fhELambda1LocMax2(),
182fhELambda0LocMaxN(), fhELambda1LocMaxN(),
2ad19c3d 183// PileUp
17af6e24 184fhEIsoPileUp(), fhPtIsoPileUp(),
185fhENoIsoPileUp(), fhPtNoIsoPileUp(),
2ad19c3d 186fhTimeENoCut(0), fhTimeESPD(0), fhTimeESPDMulti(0),
187fhTimeNPileUpVertSPD(0), fhTimeNPileUpVertTrack(0),
188fhTimeNPileUpVertContributors(0),
189fhTimePileUpMainVertexZDistance(0), fhTimePileUpMainVertexZDiamond(0),
db6fb352 190// Histograms settings
191fHistoNPtSumBins(0), fHistoPtSumMax(0.), fHistoPtSumMin(0.),
192fHistoNPtInConeBins(0), fHistoPtInConeMax(0.), fHistoPtInConeMin(0.)
1a31a9ab 193{
194 //default ctor
195
196 //Initialize parameters
197 InitParameters();
db6fb352 198
b5dbb99b 199 for(Int_t i = 0; i < 5 ; i++)
dc9c6e78 200 {
201 fConeSizes[i] = 0 ;
202
203 fhPtSumIsolatedPrompt [i] = 0 ;
204 fhPtSumIsolatedFragmentation[i] = 0 ;
205 fhPtSumIsolatedPi0Decay [i] = 0 ;
206 fhPtSumIsolatedPi0 [i] = 0 ;
207 fhPtSumIsolatedEtaDecay [i] = 0 ;
208 fhPtSumIsolatedOtherDecay [i] = 0 ;
209 // fhPtSumIsolatedConversion [i] = 0 ;
210 fhPtSumIsolatedHadron [i] = 0 ;
1a31a9ab 211
b5dbb99b 212 for(Int_t j = 0; j < 5 ; j++)
dc9c6e78 213 {
23130491 214 fhPtThresIsolated [i][j] = 0 ;
215 fhPtFracIsolated [i][j] = 0 ;
216 fhPtSumIsolated [i][j] = 0 ;
217
218 fhEtaPhiPtThresIso [i][j] = 0 ;
219 fhEtaPhiPtThresDecayIso [i][j] = 0 ;
220 fhPtPtThresDecayIso [i][j] = 0 ;
221
222 fhEtaPhiPtFracIso [i][j] = 0 ;
223 fhEtaPhiPtFracDecayIso [i][j] = 0 ;
224 fhPtPtFracDecayIso [i][j] = 0 ;
225 fhPtPtSumDecayIso [i][j] = 0 ;
226 fhPtSumDensityIso [i][j] = 0 ;
227 fhPtSumDensityDecayIso [i][j] = 0 ;
228 fhEtaPhiSumDensityIso [i][j] = 0 ;
229 fhEtaPhiSumDensityDecayIso [i][j] = 0 ;
230 fhPtFracPtSumIso [i][j] = 0 ;
231 fhPtFracPtSumDecayIso [i][j] = 0 ;
232 fhEtaPhiFracPtSumIso [i][j] = 0 ;
233 fhEtaPhiFracPtSumDecayIso [i][j] = 0 ;
db6fb352 234
dc9c6e78 235 fhPtThresIsolatedPrompt [i][j] = 0 ;
236 fhPtThresIsolatedFragmentation[i][j] = 0 ;
237 fhPtThresIsolatedPi0Decay [i][j] = 0 ;
238 fhPtThresIsolatedPi0 [i][j] = 0 ;
239 fhPtThresIsolatedEtaDecay [i][j] = 0 ;
240 fhPtThresIsolatedOtherDecay [i][j] = 0 ;
241 // fhPtThresIsolatedConversion [i][j] = 0 ;
242 fhPtThresIsolatedHadron [ i][j] = 0 ;
243
244 fhPtFracIsolatedPrompt [i][j] = 0 ;
245 fhPtFracIsolatedFragmentation [i][j] = 0 ;
246 fhPtFracIsolatedPi0 [i][j] = 0 ;
247 fhPtFracIsolatedPi0Decay [i][j] = 0 ;
248 fhPtFracIsolatedEtaDecay [i][j] = 0 ;
249 fhPtFracIsolatedOtherDecay [i][j] = 0 ;
250 // fhPtFracIsolatedConversion [i][j] = 0 ;
251 fhPtFracIsolatedHadron [i][j] = 0 ;
252
253 }
254 }
1a31a9ab 255
db6fb352 256 for(Int_t i = 0; i < 5 ; i++)
dc9c6e78 257 {
258 fPtFractions [i] = 0 ;
db6fb352 259 fPtThresholds [i] = 0 ;
260 fSumPtThresholds[i] = 0 ;
dc9c6e78 261 }
262
ca134929 263
264 for(Int_t i = 0; i < 2 ; i++)
dc9c6e78 265 {
ca134929 266 fhTrackMatchedDEta[i] = 0 ; fhTrackMatchedDPhi[i] = 0 ; fhTrackMatchedDEtaDPhi [i] = 0 ;
267 fhdEdx [i] = 0 ; fhEOverP [i] = 0 ; fhTrackMatchedMCParticle[i] = 0 ;
dc9c6e78 268 fhELambda0 [i] = 0 ; fhELambda1 [i] = 0 ;
ca134929 269 fhELambda0TRD [i] = 0 ; fhELambda1TRD [i] = 0 ;
270
764ab1f4 271 fhELambda0MCPhoton [i] = 0 ; fhELambda0MCPi0 [i] = 0 ; fhELambda0MCPi0Decay[i] = 0 ;
272 fhELambda0MCEtaDecay[i] = 0 ; fhELambda0MCOtherDecay[i] = 0 ; fhELambda0MCHadron [i] = 0 ;
dc9c6e78 273 fhPtLambda0 [i] = 0 ; fhPtLambda0TRD [i] = 0 ;
274 fhPtLambda0MCPhotonPrompt [i] = 0 ; fhPtLambda0MCPhotonFrag [i] = 0 ;
ca134929 275 // Number of local maxima in cluster
276 fhNLocMax [i] = 0 ;
277 fhELambda0LocMax1[i] = 0 ; fhELambda1LocMax1[i] = 0 ;
278 fhELambda0LocMax2[i] = 0 ; fhELambda1LocMax2[i] = 0 ;
279 fhELambda0LocMaxN[i] = 0 ; fhELambda1LocMaxN[i] = 0 ;
280
dc9c6e78 281 }
282
283
284 // Acceptance
285 for(Int_t i = 0; i < 7; i++)
286 {
287 fhPtPrimMCiso[i] = 0;
288 fhEPrimMC [i] = 0;
289 fhEtaPrimMC [i] = 0;
db4ffddf 290 fhPhiPrimMC [i] = 0;
dc9c6e78 291 }
db6fb352 292
17af6e24 293 // Pile-Up
294
295 for(Int_t i = 0 ; i < 7 ; i++)
296 {
297 fhPtInConePileUp[i] = 0 ;
298 fhEIsoPileUp [i] = 0 ;
299 fhPtIsoPileUp [i] = 0 ;
300 fhENoIsoPileUp [i] = 0 ;
301 fhPtNoIsoPileUp [i] = 0 ;
302 }
303
1a31a9ab 304}
305
23130491 306//_______________________________________________________________________________________________
307void AliAnaParticleIsolation::CalculateCaloUEBand(AliAODPWG4ParticleCorrelation * pCandidate,
308 Float_t & etaBandPtSum, Float_t & phiBandPtSum)
309{
310 // Get the clusters pT or sum of pT in phi/eta bands or at 45 degrees from trigger
311
72433939 312 if( GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kOnlyCharged ) return ;
313
23130491 314 Float_t conesize = GetIsolationCut()->GetConeSize();
315 TLorentzVector mom ;
316
317 //Select the Calorimeter
318 TObjArray * pl = 0x0;
319 if (fCalorimeter == "PHOS" )
320 pl = GetPHOSClusters();
321 else if (fCalorimeter == "EMCAL")
322 pl = GetEMCALClusters();
323
324 if(!pl) return ;
325
326 //Get vertex for cluster momentum calculation
327 Double_t vertex[] = {0,0,0} ; //vertex ;
328 if(GetReader()->GetDataType() != AliCaloTrackReader::kMC)
329 GetReader()->GetVertex(vertex);
330
331 Float_t ptTrig = pCandidate->Pt() ;
332 Float_t phiTrig = pCandidate->Phi();
333 Float_t etaTrig = pCandidate->Eta();
334
335 for(Int_t icluster=0; icluster < pl->GetEntriesFast(); icluster++)
336 {
337 AliVCluster* cluster = (AliVCluster *) pl->At(icluster);
338
339 if(!cluster)
340 {
341 printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Cluster not available?");
342 continue;
343 }
73378bcc 344
23130491 345 //Do not count the candidate (photon or pi0) or the daughters of the candidate
346 if(cluster->GetID() == pCandidate->GetCaloLabel(0) ||
347 cluster->GetID() == pCandidate->GetCaloLabel(1) ) continue ;
348
72433939 349 //Remove matched clusters to tracks if Neutral and Track info is used
350 if( GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged &&
351 IsTrackMatched(cluster,GetReader()->GetInputEvent())) continue ;
73378bcc 352
23130491 353 cluster->GetMomentum(mom,vertex) ;//Assume that come from vertex in straight line
354
355 //exclude particles in cone
356 Float_t rad = GetIsolationCut()->Radius(etaTrig, phiTrig, mom.Eta(), mom.Phi());
23130491 357
9004af1c 358 // histo of eta and phi for all clusters
359 fhEtaPhiCluster->Fill(mom.Eta(), mom.Phi());
360 if(rad < conesize) {
361 // histos for all clusters in cone
362 fhEtaPhiInConeCluster->Fill(mom.Eta(), mom.Phi());
363 continue ;
364 }
23130491 365 //fill histogram for UE in phi band in EMCal acceptance
366 if(mom.Eta() > (etaTrig-conesize) && mom.Eta() < (etaTrig+conesize))
367 {
368 phiBandPtSum+=mom.Pt();
369 fhPhiBandCluster->Fill(mom.Eta(),mom.Phi());
9004af1c 370
371}
23130491 372
373 //fill histogram for UE in eta band in EMCal acceptance
374 if(mom.Phi() > (phiTrig-conesize) && mom.Phi() < (phiTrig+conesize))
375 {
376 etaBandPtSum+=mom.Pt();
377 fhEtaBandCluster->Fill(mom.Eta(),mom.Phi());
378 }
379 }
380
814d1087 381 fhConeSumPtEtaBandUECluster ->Fill(ptTrig , etaBandPtSum);
382 fhConeSumPtPhiBandUECluster ->Fill(ptTrig , phiBandPtSum);
23130491 383 fhConeSumPtEtaBandUEClusterTrigEtaPhi->Fill(etaTrig,phiTrig,etaBandPtSum);
384 fhConeSumPtPhiBandUEClusterTrigEtaPhi->Fill(etaTrig,phiTrig,phiBandPtSum);
385
386}
387
b5d10017 388//________________________________________________________________________________________________
9b01dc66 389void AliAnaParticleIsolation::CalculateCaloCellUEBand(AliAODPWG4ParticleCorrelation * pCandidate,
390 Float_t & etaBandPtSumCells, Float_t & phiBandPtSumCells)
391{
392 // Get the cells amplitude or sum of amplitude in phi/eta bands or at 45 degrees from trigger
393
394 if( GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kOnlyCharged ) return ;
b5d10017 395
396 Float_t conesize = GetIsolationCut()->GetConeSize();
9b01dc66 397
398 Float_t phiTrig = pCandidate->Phi();
b5d10017 399 if(phiTrig<0) phiTrig += TMath::TwoPi();
9b01dc66 400 Float_t etaTrig = pCandidate->Eta();
9b01dc66 401
b5d10017 402 if(pCandidate->GetDetector()=="EMCAL")
9b01dc66 403 {
b5d10017 404 AliEMCALGeometry* eGeom = AliEMCALGeometry::GetInstance();
405 Int_t absId = -999;
406
407 if (eGeom->GetAbsCellIdFromEtaPhi(etaTrig,phiTrig,absId))
e0ddcd8e 408 {
b5d10017 409 if(!eGeom->CheckAbsCellId(absId)) return ;
9b01dc66 410
b5d10017 411 // Get absolute (col,row) of trigger particle
412 Int_t nSupMod = eGeom->GetSuperModuleNumber(absId);
413 Int_t nModule = -1;
414 Int_t imEta=-1, imPhi=-1;
415 Int_t ieta =-1, iphi =-1;
416
417 if (eGeom->GetCellIndex(absId,nSupMod,nModule,imPhi,imEta))
418 {
419 eGeom->GetCellPhiEtaIndexInSModule(nSupMod,nModule,imPhi,imEta,iphi,ieta);
420
421 Int_t colTrig = ieta;
422 if (nSupMod % 2) colTrig = AliEMCALGeoParams::fgkEMCALCols + ieta ;
423 Int_t rowTrig = iphi + AliEMCALGeoParams::fgkEMCALRows*int(nSupMod/2);
424
425 Int_t sqrSize = int(conesize/0.0143);
426
427 AliVCaloCells * cells = GetEMCALCells();
428
10a65cc6 429 Int_t nTotalRows = AliEMCALGeoParams::fgkEMCALRows*16/3 ; // 24*(16/3) 5 full-size Sectors (2 SM) + 1 one-third Sector (2 SM)
430 Int_t nTotalCols = 2*AliEMCALGeoParams::fgkEMCALCols;
431 // printf("nTotalRows %i, nTotalCols %i\n",nTotalRows,nTotalCols);
b5d10017 432 // Loop on cells in eta band
10a65cc6 433
434 Int_t irowmin = rowTrig-sqrSize;
435 if(irowmin<0) irowmin=0;
436 Int_t irowmax = rowTrig+sqrSize;
437 if(irowmax>AliEMCALGeoParams::fgkEMCALRows) irowmax=AliEMCALGeoParams::fgkEMCALRows;
438
439
440 for(Int_t irow = irowmin; irow <irowmax; irow++)
b5d10017 441 {
10a65cc6 442 for(Int_t icol = 0; icol < nTotalCols; icol++)
b5d10017 443 {
444 Int_t inSector = int(irow/AliEMCALGeoParams::fgkEMCALRows);
10a65cc6 445 if(inSector==5) continue;
446 Int_t inSupMod = -1;
b5d10017 447 Int_t icolLoc = -1;
448 if(icol < AliEMCALGeoParams::fgkEMCALCols)
449 {
ea051413 450 inSupMod = 2*inSector + 1;
b5d10017 451 icolLoc = icol;
452 }
453 else if(icol > AliEMCALGeoParams::fgkEMCALCols - 1)
454 {
ea051413 455 inSupMod = 2*inSector;
b5d10017 456 icolLoc = icol-AliEMCALGeoParams::fgkEMCALCols;
457 }
458
b5c8089d 459 Int_t irowLoc = irow - AliEMCALGeoParams::fgkEMCALRows*inSector ;
b5d10017 460
461 // Exclude cells in cone
9004af1c 462 if(TMath::Abs(icol-colTrig) < sqrSize || TMath::Abs(irow-rowTrig) < sqrSize){
463 continue ;
464 }
b5d10017 465 Int_t iabsId = eGeom->GetAbsCellIdFromCellIndexes(inSupMod,irowLoc,icolLoc);
466 if(!eGeom->CheckAbsCellId(iabsId)) continue;
467 etaBandPtSumCells += cells->GetCellAmplitude(iabsId);
10a65cc6 468 fhEtaBandCell->Fill(colTrig,rowTrig);
469
470 // printf("ETA inSupMod %i,irowLoc %i,icolLoc %i, iabsId %i, etaBandPtSumCells %f\n",nSupMod,irowLoc,icolLoc,iabsId,etaBandPtSumCells);
471 }
b5d10017 472 }
10a65cc6 473 Int_t icolmin = colTrig-sqrSize;
474 if(icolmin<0) icolmin=0;
475 Int_t icolmax = colTrig+sqrSize;
476 if(icolmax>AliEMCALGeoParams::fgkEMCALCols) icolmax=AliEMCALGeoParams::fgkEMCALCols;
477
b5d10017 478 // Loop on cells in phi band
10a65cc6 479 for(Int_t icol = icolmin; icol < icolmax; icol++)
b5d10017 480 {
481 for(Int_t irow = 0; irow < nTotalRows; irow++)
10a65cc6 482 {
b5d10017 483 Int_t inSector = int(irow/AliEMCALGeoParams::fgkEMCALRows);
10a65cc6 484 if(inSector==5) continue;
b5d10017 485 Int_t inSupMod = -1;
486 Int_t icolLoc = -1;
10a65cc6 487 // printf("icol %i, irow %i, inSector %i\n",icol,irow ,inSector);
b5d10017 488 if(icol < AliEMCALGeoParams::fgkEMCALCols)
489 {
10a65cc6 490 // printf("icol < AliEMCALGeoParams::fgkEMCALCols %i\n",AliEMCALGeoParams::fgkEMCALCols );
ea051413 491 inSupMod = 2*inSector + 1;
b5d10017 492 icolLoc = icol;
493 }
494 else if(icol > AliEMCALGeoParams::fgkEMCALCols - 1)
495 {
10a65cc6 496 // printf("icol > AliEMCALGeoParams::fgkEMCALCols -1 %i\n",AliEMCALGeoParams::fgkEMCALCols -1 );
497 inSupMod = 2*inSector;
b5d10017 498 icolLoc = icol-AliEMCALGeoParams::fgkEMCALCols;
499 }
500
ea051413 501 Int_t irowLoc = irow - AliEMCALGeoParams::fgkEMCALRows*inSector ; // Stesso problema di sopra //
b5d10017 502
503 // Exclude cells in cone
10a65cc6 504 if(TMath::Abs(icol-colTrig) < sqrSize) {
505 //printf("TMath::Abs(icol-colTrig) %i < sqrSize %i\n",TMath::Abs(icol-colTrig) ,sqrSize);continue ;
506 }
507 if(TMath::Abs(irow-rowTrig) < sqrSize) {
508 //printf("TMath::Abs(irow-rowTrig) %i < sqrSize %i\n",TMath::Abs(irow-rowTrig) ,sqrSize);continue ;
509 }
b5d10017 510
511 Int_t iabsId = eGeom->GetAbsCellIdFromCellIndexes(inSupMod,irowLoc,icolLoc);
10a65cc6 512 if(!eGeom->CheckAbsCellId(iabsId)) {printf("!eGeom->CheckAbsCellId(iabsId=%i) inSupMod %i irowLoc %i icolLoc %i \n",iabsId,inSupMod, irowLoc, icolLoc);continue;}
b5d10017 513 phiBandPtSumCells += cells->GetCellAmplitude(iabsId);
10a65cc6 514 fhPhiBandCell->Fill(colTrig,rowTrig);
515 //printf("inSupMod %i,irowLoc %i,icolLoc %i, iabsId %i, phiBandPtSumCells %f\n",nSupMod,irowLoc,icolLoc,iabsId,phiBandPtSumCells);
516 }
b5d10017 517 }
518 }
9b01dc66 519 }
520 }
521
522 Float_t ptTrig = pCandidate->Pt();
523
524 fhConeSumPtEtaBandUECell ->Fill(ptTrig , etaBandPtSumCells);
525 fhConeSumPtPhiBandUECell ->Fill(ptTrig , phiBandPtSumCells);
526 fhConeSumPtEtaBandUECellTrigEtaPhi->Fill(etaTrig,phiTrig,etaBandPtSumCells);
527 fhConeSumPtPhiBandUECellTrigEtaPhi->Fill(etaTrig,phiTrig,phiBandPtSumCells);
528
529}
530
23130491 531//________________________________________________________________________________________________
532void AliAnaParticleIsolation::CalculateTrackUEBand(AliAODPWG4ParticleCorrelation * pCandidate,
533 Float_t & etaBandPtSum, Float_t & phiBandPtSum)
534{
535 // Get the track pT or sum of pT in phi/eta bands or at 45 degrees from trigger
536
72433939 537 if( GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kOnlyNeutral ) return ;
538
23130491 539 Float_t conesize = GetIsolationCut()->GetConeSize();
540
541 Double_t sumptPerp= 0. ;
542 Float_t ptTrig = pCandidate->Pt() ;
543 Float_t phiTrig = pCandidate->Phi();
544 Float_t etaTrig = pCandidate->Eta();
545
546 TObjArray * trackList = GetCTSTracks() ;
547 for(Int_t itrack=0; itrack < trackList->GetEntriesFast(); itrack++)
548 {
549 AliVTrack* track = (AliVTrack *) trackList->At(itrack);
550
551 if(!track)
552 {
727a309a 553 printf("AliAnaParticleIsolation::CalculateTrackUEBand() - Track not available?");
23130491 554 continue;
555 }
556
557 //Do not count the candidate (pion, conversion photon) or the daughters of the candidate
558 if(track->GetID() == pCandidate->GetTrackLabel(0) || track->GetID() == pCandidate->GetTrackLabel(1) ||
559 track->GetID() == pCandidate->GetTrackLabel(2) || track->GetID() == pCandidate->GetTrackLabel(3) ) continue ;
9004af1c 560
561 // histo of eta:phi for all tracks
562 fhEtaPhiTrack->Fill(track->Eta(),track->Phi());
563
23130491 564 //exclude particles in cone
565 Float_t rad = GetIsolationCut()->Radius(etaTrig, phiTrig, track->Eta(), track->Phi());
9004af1c 566 if(rad < conesize) {
567 // histo of eta:phi for all tracks in cone
568 fhEtaPhiInConeTrack->Fill(track->Eta(),track->Phi());
569 continue ;
570 }
23130491 571
572 //fill histogram for UE in phi band
573 if(track->Eta() > (etaTrig-conesize) && track->Eta() < (etaTrig+conesize))
574 {
575 phiBandPtSum+=track->Pt();
576 fhPhiBandTrack->Fill(track->Eta(),track->Phi());
577 }
578
579 //fill histogram for UE in eta band in EMCal acceptance
580 if(track->Phi() > (phiTrig-conesize) && track->Phi() < (phiTrig+conesize))
581 {
582 etaBandPtSum+=track->Pt();
583 fhEtaBandTrack->Fill(track->Eta(),track->Phi());
584 }
585
586 //fill the histograms at +-45 degrees in phi from trigger particle, perpedicular to trigger axis in phi
587 Double_t dPhi = phiTrig - track->Phi() + TMath::PiOver2();
588 Double_t dEta = etaTrig - track->Eta();
589 Double_t arg = dPhi*dPhi + dEta*dEta;
590 if(TMath::Sqrt(arg) < conesize)
591 {
592 fhPtInPerpCone->Fill(ptTrig,TMath::Sqrt(track->Px()*track->Px()+track->Py()*track->Py()));
593 sumptPerp+=track->Pt();
594 }
595
596 dPhi = phiTrig - track->Phi() - TMath::PiOver2();
597 arg = dPhi*dPhi + dEta*dEta;
598 if(TMath::Sqrt(arg) < conesize)
599 {
600 fhPtInPerpCone->Fill(ptTrig,TMath::Sqrt(track->Px()*track->Px()+track->Py()*track->Py()));
601 sumptPerp+=track->Pt();
602 }
603 }
604
814d1087 605 fhPerpConeSumPt ->Fill(ptTrig , sumptPerp );
606 fhConeSumPtEtaBandUETrack ->Fill(ptTrig , etaBandPtSum);
607 fhConeSumPtPhiBandUETrack ->Fill(ptTrig , phiBandPtSum);
23130491 608 fhConeSumPtEtaBandUETrackTrigEtaPhi->Fill(etaTrig,phiTrig,etaBandPtSum);
609 fhConeSumPtPhiBandUETrackTrigEtaPhi->Fill(etaTrig,phiTrig,phiBandPtSum);
610
611}
612
0e7a6570 613
0e7a6570 614
b94e038e 615//_____________________________________________________________________________________________________________________________________
616void AliAnaParticleIsolation::CalculateNormalizeUEBandPerUnitArea(AliAODPWG4ParticleCorrelation * pCandidate, Float_t coneptsumCluster,
617 Float_t coneptsumCell, Float_t coneptsumTrack,
618 Float_t &etaBandptsumTrackNorm, Float_t &etaBandptsumClusterNorm)
23130491 619{
620 //normalize phi/eta band per area unit
621
622 Float_t etaUEptsumTrack = 0 ;
623 Float_t phiUEptsumTrack = 0 ;
624 Float_t etaUEptsumCluster = 0 ;
625 Float_t phiUEptsumCluster = 0 ;
9b01dc66 626 Float_t etaUEptsumCell = 0 ;
627 Float_t phiUEptsumCell = 0 ;
628
72433939 629 Int_t partTypeInCone = GetIsolationCut()->GetParticleTypeInCone();
23130491 630
23130491 631 // Do the normalization
632
633 Float_t conesize = GetIsolationCut()->GetConeSize();
634 Float_t coneA = conesize*conesize*TMath::Pi(); // A = pi R^2, isolation cone area
635 Float_t ptTrig = pCandidate->Pt() ;
636 Float_t phiTrig = pCandidate->Phi();
637 Float_t etaTrig = pCandidate->Eta();
727a309a 638
26a8bf11 639
23130491 640 // ------ //
641 // Tracks //
642 // ------ //
72433939 643 Float_t phiUEptsumTrackNorm = 0 ;
644 Float_t etaUEptsumTrackNorm = 0 ;
645 Float_t coneptsumTrackSubPhi = 0 ;
646 Float_t coneptsumTrackSubEta = 0 ;
b5d10017 647 Float_t coneptsumTrackSubPhiNorm = 0 ;
648 Float_t coneptsumTrackSubEtaNorm = 0 ;
727a309a 649 etaBandptsumTrackNorm = 0 ;
b5d10017 650
72433939 651 if( partTypeInCone!=AliIsolationCut::kOnlyNeutral )
23130491 652 {
727a309a 653 // Sum the pT in the phi or eta band for clusters or tracks
654 CalculateTrackUEBand (pCandidate,etaUEptsumTrack ,phiUEptsumTrack );// rajouter ici l'histo eta phi
655
656 //Fill histos
657 fhConeSumPtVSUETracksEtaBand->Fill(coneptsumTrack,etaUEptsumTrack);
658 fhConeSumPtVSUETracksPhiBand->Fill(coneptsumTrack,phiUEptsumTrack);
659
660
661 Float_t correctConeSumTrack = 1;
662 Float_t correctConeSumTrackPhi = 1;
663
664 GetIsolationCut()->CalculateUEBandTrackNormalization(GetReader(),etaTrig, phiTrig,
665 phiUEptsumTrack,etaUEptsumTrack,
666 phiUEptsumTrackNorm,etaUEptsumTrackNorm,
667 correctConeSumTrack,correctConeSumTrackPhi);
668
669 coneptsumTrackSubPhi = coneptsumTrack - phiUEptsumTrackNorm;
670 coneptsumTrackSubEta = coneptsumTrack - etaUEptsumTrackNorm;
671
672 etaBandptsumTrackNorm = etaUEptsumTrackNorm;
72433939 673
674 fhConeSumPtPhiUESubTrack ->Fill(ptTrig , coneptsumTrackSubPhi);
675 fhConeSumPtPhiUESubTrackTrigEtaPhi ->Fill(etaTrig, phiTrig, coneptsumTrackSubPhi);
676 fhConeSumPtEtaUESubTrack ->Fill(ptTrig , coneptsumTrackSubEta);
677 fhConeSumPtEtaUESubTrackTrigEtaPhi ->Fill(etaTrig, phiTrig, coneptsumTrackSubEta);
678
679 fhFractionTrackOutConeEta ->Fill(ptTrig , correctConeSumTrack-1);
680 fhFractionTrackOutConeEtaTrigEtaPhi->Fill(etaTrig, phiTrig,correctConeSumTrack-1);
b5d10017 681
727a309a 682 if(coneptsumTrack > 0)
683 {
684 coneptsumTrackSubPhiNorm = coneptsumTrackSubPhi/coneptsumTrack;
10a65cc6 685 coneptsumTrackSubEtaNorm = coneptsumTrackSubEta/coneptsumTrack;
686 }
727a309a 687
b5d10017 688 fhConeSumPtSubvsConeSumPtTotPhiTrack ->Fill(coneptsumTrack,coneptsumTrackSubPhi);
689 fhConeSumPtSubNormvsConeSumPtTotPhiTrack->Fill(coneptsumTrack,coneptsumTrackSubPhiNorm);
690 fhConeSumPtSubvsConeSumPtTotEtaTrack ->Fill(coneptsumTrack,coneptsumTrackSubEta);
691 fhConeSumPtSubNormvsConeSumPtTotEtaTrack->Fill(coneptsumTrack,coneptsumTrackSubEtaNorm);
692
72433939 693 }
23130491 694
9b01dc66 695 // ------------------------ //
696 // EMCal Clusters and cells //
697 // ------------------------ //
72433939 698 Float_t phiUEptsumClusterNorm = 0 ;
699 Float_t etaUEptsumClusterNorm = 0 ;
700 Float_t coneptsumClusterSubPhi = 0 ;
701 Float_t coneptsumClusterSubEta = 0 ;
b5d10017 702 Float_t coneptsumClusterSubPhiNorm = 0 ;
703 Float_t coneptsumClusterSubEtaNorm = 0 ;
9b01dc66 704 Float_t phiUEptsumCellNorm = 0 ;
705 Float_t etaUEptsumCellNorm = 0 ;
706 Float_t coneptsumCellSubPhi = 0 ;
707 Float_t coneptsumCellSubEta = 0 ;
b5d10017 708 Float_t coneptsumCellSubPhiNorm = 0 ;
709 Float_t coneptsumCellSubEtaNorm = 0 ;
727a309a 710 etaBandptsumClusterNorm = 0;
9b01dc66 711
72433939 712 if( partTypeInCone!=AliIsolationCut::kOnlyCharged )
23130491 713 {
977564f5 714
9b01dc66 715 // -------------- //
716 // EMCal clusters //
717 // -------------- //
72433939 718
727a309a 719 // Sum the pT in the phi or eta band for clusters or tracks
720 CalculateCaloUEBand (pCandidate,etaUEptsumCluster,phiUEptsumCluster);// rajouter ici l'histo eta phi
977564f5 721
722 //Fill histos
723 fhConeSumPtVSUEClusterEtaBand->Fill(coneptsumCluster,etaUEptsumCluster);
724 fhConeSumPtVSUEClusterPhiBand->Fill(coneptsumCluster,phiUEptsumCluster);
725
726
727a309a 727 Float_t correctConeSumClusterEta = 1;
72433939 728 Float_t correctConeSumClusterPhi = 1;
977564f5 729
727a309a 730 GetIsolationCut()->CalculateUEBandClusterNormalization(GetReader(),etaTrig, phiTrig,
731 phiUEptsumCluster,etaUEptsumCluster,
732 phiUEptsumClusterNorm,etaUEptsumClusterNorm,
733 correctConeSumClusterEta,correctConeSumClusterPhi);
72433939 734
735 // In case that cone is out of eta and phi side, we are over correcting, not too often with the current cuts ...
727a309a 736 // Comment if not used
737 // Float_t coneBadCellsCoeff =1;
738 // Float_t etaBandBadCellsCoeff=1;
739 // Float_t phiBandBadCellsCoeff=1;
740 // GetIsolationCut()->GetCoeffNormBadCell(pCandidate, GetReader(),coneBadCellsCoeff,etaBandBadCellsCoeff,phiBandBadCellsCoeff) ;
977564f5 741
727a309a 742 //coneptsumCluster=coneptsumCluster*coneBadCellsCoeff*correctConeSumClusterEta*correctConeSumClusterPhi;
743
744 coneptsumClusterSubPhi = coneptsumCluster - phiUEptsumClusterNorm;
26a8bf11 745 coneptsumClusterSubEta = coneptsumCluster - etaUEptsumClusterNorm;
72433939 746
727a309a 747 etaBandptsumClusterNorm = etaUEptsumClusterNorm;
977564f5 748
72433939 749 fhConeSumPtPhiUESubCluster ->Fill(ptTrig , coneptsumClusterSubPhi);
750 fhConeSumPtPhiUESubClusterTrigEtaPhi ->Fill(etaTrig, phiTrig, coneptsumClusterSubPhi);
751 fhConeSumPtEtaUESubCluster ->Fill(ptTrig , coneptsumClusterSubEta);
752 fhConeSumPtEtaUESubClusterTrigEtaPhi ->Fill(etaTrig, phiTrig, coneptsumClusterSubEta);
753
754 fhFractionClusterOutConeEta ->Fill(ptTrig , correctConeSumClusterEta-1);
755 fhFractionClusterOutConeEtaTrigEtaPhi->Fill(etaTrig, phiTrig, correctConeSumClusterEta-1);
756 fhFractionClusterOutConePhi ->Fill(ptTrig , correctConeSumClusterPhi-1);
757 fhFractionClusterOutConePhiTrigEtaPhi->Fill(etaTrig, phiTrig, correctConeSumClusterPhi-1);
9b01dc66 758
727a309a 759 if(coneptsumCluster!=0)
760 {
10a65cc6 761 coneptsumClusterSubPhiNorm = coneptsumClusterSubPhi/coneptsumCluster;
762 coneptsumClusterSubEtaNorm = coneptsumClusterSubEta/coneptsumCluster;
763 }
727a309a 764
b5d10017 765 fhConeSumPtSubvsConeSumPtTotPhiCluster ->Fill(coneptsumCluster,coneptsumClusterSubPhi);
766 fhConeSumPtSubNormvsConeSumPtTotPhiCluster->Fill(coneptsumCluster,coneptsumClusterSubPhiNorm);
767 fhConeSumPtSubvsConeSumPtTotEtaCluster ->Fill(coneptsumCluster,coneptsumClusterSubEta);
768 fhConeSumPtSubNormvsConeSumPtTotEtaCluster->Fill(coneptsumCluster,coneptsumClusterSubEtaNorm);
769
9b01dc66 770 // ----------- //
771 // EMCal Cells //
772 // ----------- //
727a309a 773
977564f5 774 if(fFillCellHistograms)
9b01dc66 775 {
977564f5 776 // Sum the pT in the phi or eta band for clusters or tracks
777 CalculateCaloCellUEBand(pCandidate,etaUEptsumCell ,phiUEptsumCell );
9b01dc66 778
977564f5 779 // Move to AliIsolationCut the calculation not the histograms??
b5d10017 780
977564f5 781 //Careful here if EMCal limits changed .. 2010 (4 SM) to 2011-12 (10 SM), for the moment consider 100 deg in phi
782 Float_t emcEtaSize = 0.7*2; // TO FIX
783 Float_t emcPhiSize = TMath::DegToRad()*100.; // TO FIX
784
785 if(((2*conesize*emcPhiSize)-coneA)!=0)phiUEptsumCellNorm = phiUEptsumCell*(coneA / ((2*conesize*emcPhiSize)-coneA));
786 if(((2*conesize*emcEtaSize)-coneA)!=0)etaUEptsumCellNorm = etaUEptsumCell*(coneA / ((2*conesize*emcEtaSize)-coneA));
787
788 // Need to correct coneptsumCluster by the fraction of the cone out of the calorimeter cut acceptance!
789
790 Float_t correctConeSumCellEta = 1;
791 if(TMath::Abs(etaTrig)+conesize > emcEtaSize/2.)
792 {
793 Float_t excess = TMath::Abs(etaTrig) + conesize - emcEtaSize/2.;
794 correctConeSumCellEta = GetIsolationCut()->CalculateExcessAreaFraction(excess);
795 //printf("Excess EMC-Eta %2.3f, coneA %2.2f, excessA %2.2f, angle %2.2f,factor %2.2f\n",excess,coneA, excessA, angle*TMath::RadToDeg(), correctConeSumClusterEta);
796 // Need to correct phi band surface if part of the cone falls out of track cut acceptance!
797 if(((2*(conesize-excess)*emcPhiSize)-(coneA-correctConeSumCellEta))!=0)phiUEptsumCellNorm = phiUEptsumCell*(coneA / ((2*(conesize-excess)*emcPhiSize)-(coneA-correctConeSumCellEta)));
798 }
799
800 Float_t correctConeSumCellPhi = 1;
801 //printf("EMCPhiTrig %2.2f, conesize %2.2f, sum %2.2f, rest %2.2f \n",phiTrig*TMath::RadToDeg(),conesize*TMath::RadToDeg(),(phiTrig+conesize)*TMath::RadToDeg(),(phiTrig-conesize)*TMath::RadToDeg() );
802 if((phiTrig+conesize > 180*TMath::DegToRad()) ||
803 (phiTrig-conesize < 80*TMath::DegToRad()))
804 {
805 Float_t excess = 0;
806 if( phiTrig+conesize > 180*TMath::DegToRad() ) excess = conesize + phiTrig - 180*TMath::DegToRad() ;
807 else excess = conesize - phiTrig + 80*TMath::DegToRad() ;
808
809 correctConeSumCellPhi = GetIsolationCut()->CalculateExcessAreaFraction(excess);
810 //printf("Excess EMC-Phi %2.3f, coneA %2.2f, excessA %2.2f, angle %2.2f,factor %2.2f\n",excess,coneA, excessA, angle*TMath::RadToDeg(), correctConeSumClusterPhi);
811
812 // Need to correct eta band surface if part of the cone falls out of track cut acceptance!
813 if(((2*(conesize-excess)*emcEtaSize)-(coneA-correctConeSumCellPhi))!=0)etaUEptsumCellNorm = etaUEptsumCell*(coneA / ((2*(conesize-excess)*emcEtaSize)-(coneA-correctConeSumCellPhi)));
814
815 }
816
817 // In case that cone is out of eta and phi side, we are over correcting, not too often with the current cuts ...
818 coneptsumCellSubPhi = coneptsumCell*correctConeSumCellEta*correctConeSumCellPhi - phiUEptsumCellNorm;
819 coneptsumCellSubEta = coneptsumCell*correctConeSumCellEta*correctConeSumCellPhi - etaUEptsumCellNorm;
820
821 fhConeSumPtPhiUESubCell ->Fill(ptTrig , coneptsumCellSubPhi);
822 fhConeSumPtPhiUESubCellTrigEtaPhi ->Fill(etaTrig, phiTrig, coneptsumCellSubPhi);
823 fhConeSumPtEtaUESubCell ->Fill(ptTrig , coneptsumCellSubEta);
824 fhConeSumPtEtaUESubCellTrigEtaPhi ->Fill(etaTrig, phiTrig, coneptsumCellSubEta);
825
826 fhFractionCellOutConeEta ->Fill(ptTrig , correctConeSumCellEta-1);
827 fhFractionCellOutConeEtaTrigEtaPhi->Fill(etaTrig, phiTrig, correctConeSumCellEta-1);
828 fhFractionCellOutConePhi ->Fill(ptTrig , correctConeSumCellPhi-1);
829 fhFractionCellOutConePhiTrigEtaPhi->Fill(etaTrig, phiTrig, correctConeSumCellPhi-1);
830 if(coneptsumCell!=0)
831 {
832 coneptsumCellSubPhiNorm = coneptsumCellSubPhi/coneptsumCell;
833 coneptsumCellSubEtaNorm = coneptsumCellSubEta/coneptsumCell;
834 }
835
836 fhConeSumPtSubvsConeSumPtTotPhiCell ->Fill(coneptsumCell,coneptsumCellSubPhi);
837 fhConeSumPtSubNormvsConeSumPtTotPhiCell->Fill(coneptsumCell,coneptsumCellSubPhiNorm);
838 fhConeSumPtSubvsConeSumPtTotEtaCell ->Fill(coneptsumCell,coneptsumCellSubEta);
839 fhConeSumPtSubNormvsConeSumPtTotEtaCell->Fill(coneptsumCell,coneptsumCellSubEtaNorm);
10a65cc6 840 }
23130491 841 }
977564f5 842
72433939 843 if( partTypeInCone==AliIsolationCut::kNeutralAndCharged )
844 {
9b01dc66 845 // --------------------------- //
846 // Tracks and clusters in cone //
847 // --------------------------- //
72433939 848
849 Double_t sumPhiUESub = coneptsumClusterSubPhi + coneptsumTrackSubPhi;
850 Double_t sumEtaUESub = coneptsumClusterSubEta + coneptsumTrackSubEta;
851
852 fhConeSumPtPhiUESub ->Fill(ptTrig , sumPhiUESub);
853 fhConeSumPtPhiUESubTrigEtaPhi->Fill(etaTrig, phiTrig, sumPhiUESub);
854 fhConeSumPtEtaUESub ->Fill(ptTrig , sumEtaUESub);
855 fhConeSumPtEtaUESubTrigEtaPhi->Fill(etaTrig, phiTrig, sumEtaUESub);
856
9b01dc66 857 fhEtaBandClustervsTrack ->Fill(etaUEptsumCluster ,etaUEptsumTrack );
858 fhPhiBandClustervsTrack ->Fill(phiUEptsumCluster ,phiUEptsumTrack );
72433939 859 fhEtaBandNormClustervsTrack->Fill(etaUEptsumClusterNorm,etaUEptsumTrackNorm);
860 fhPhiBandNormClustervsTrack->Fill(phiUEptsumClusterNorm,phiUEptsumTrackNorm);
861
862 fhConeSumPtEtaUESubClustervsTrack->Fill(coneptsumClusterSubEta,coneptsumTrackSubEta);
863 fhConeSumPtPhiUESubClustervsTrack->Fill(coneptsumClusterSubPhi,coneptsumTrackSubPhi);
977564f5 864
9b01dc66 865 // ------------------------ //
866 // Tracks and cells in cone //
867 // ------------------------ //
868
977564f5 869 if(fFillCellHistograms)
870 {
871 Double_t sumPhiUESubTrackCell = coneptsumCellSubPhi + coneptsumTrackSubPhi;
872 Double_t sumEtaUESubTrackCell = coneptsumCellSubEta + coneptsumTrackSubEta;
873
874 fhConeSumPtPhiUESubTrackCell ->Fill(ptTrig , sumPhiUESubTrackCell);
875 fhConeSumPtPhiUESubTrackCellTrigEtaPhi->Fill(etaTrig, phiTrig, sumPhiUESubTrackCell);
876 fhConeSumPtEtaUESubTrackCell ->Fill(ptTrig , sumEtaUESubTrackCell);
877 fhConeSumPtEtaUESubTrackCellTrigEtaPhi->Fill(etaTrig, phiTrig, sumEtaUESubTrackCell);
878
879 fhEtaBandCellvsTrack ->Fill(etaUEptsumCell ,etaUEptsumTrack );
880 fhPhiBandCellvsTrack ->Fill(phiUEptsumCell ,phiUEptsumTrack );
881 fhEtaBandNormCellvsTrack->Fill(etaUEptsumCellNorm,etaUEptsumTrackNorm);
882 fhPhiBandNormCellvsTrack->Fill(phiUEptsumCellNorm,phiUEptsumTrackNorm);
883
884 fhConeSumPtEtaUESubCellvsTrack->Fill(coneptsumCellSubEta,coneptsumTrackSubEta);
885 fhConeSumPtPhiUESubCellvsTrack->Fill(coneptsumCellSubPhi,coneptsumTrackSubPhi);
886 }
9b01dc66 887
72433939 888 }
23130491 889}
890
891
892//__________________________________________________________________________________________________
893void AliAnaParticleIsolation::CalculateCaloSignalInCone(AliAODPWG4ParticleCorrelation * aodParticle,
894 Float_t & coneptsumCluster)
895{
896 // Get the cluster pT or sum of pT in isolation cone
897
72433939 898 if( GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kOnlyCharged ) return ;
899
23130491 900 //Recover reference arrays with clusters and tracks
901 TObjArray * refclusters = aodParticle->GetObjArray(GetAODObjArrayName()+"Clusters");
902 if(!refclusters) return ;
903
904 Float_t ptTrig = aodParticle->Pt();
905
906 //Get vertex for cluster momentum calculation
907 Double_t vertex[] = {0,0,0} ; //vertex ;
908 if(GetReader()->GetDataType() != AliCaloTrackReader::kMC)
909 GetReader()->GetVertex(vertex);
910
911 TLorentzVector mom ;
912 for(Int_t icalo=0; icalo < refclusters->GetEntriesFast(); icalo++)
913 {
914 AliVCluster* calo = (AliVCluster *) refclusters->At(icalo);
915 calo->GetMomentum(mom,vertex) ;//Assume that come from vertex in straight line
916
917 fhPtInCone ->Fill(ptTrig, mom.Pt());
918 fhPtClusterInCone->Fill(ptTrig, mom.Pt());
919
920 if(fFillPileUpHistograms)
921 {
922 if(GetReader()->IsPileUpFromSPD()) fhPtInConePileUp[0]->Fill(ptTrig,mom.Pt());
923 if(GetReader()->IsPileUpFromEMCal()) fhPtInConePileUp[1]->Fill(ptTrig,mom.Pt());
924 if(GetReader()->IsPileUpFromSPDOrEMCal()) fhPtInConePileUp[2]->Fill(ptTrig,mom.Pt());
925 if(GetReader()->IsPileUpFromSPDAndEMCal()) fhPtInConePileUp[3]->Fill(ptTrig,mom.Pt());
926 if(GetReader()->IsPileUpFromSPDAndNotEMCal()) fhPtInConePileUp[4]->Fill(ptTrig,mom.Pt());
927 if(GetReader()->IsPileUpFromEMCalAndNotSPD()) fhPtInConePileUp[5]->Fill(ptTrig,mom.Pt());
928 if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) fhPtInConePileUp[6]->Fill(ptTrig,mom.Pt());
929 }
930
977564f5 931 if(fFillHighMultHistograms) fhPtInConeCent->Fill(GetEventCentrality(),mom.Pt());
932
23130491 933 coneptsumCluster+=mom.Pt();
72433939 934 }
935
936 fhConeSumPtCluster ->Fill(ptTrig, coneptsumCluster);
23130491 937}
938
b94e038e 939//______________________________________________________________________________________________________
9b01dc66 940void AliAnaParticleIsolation::CalculateCaloCellSignalInCone(AliAODPWG4ParticleCorrelation * aodParticle,
941 Float_t & coneptsumCell)
942{
b5d10017 943 // Get the cell amplityde or sum of amplitudes in isolation cone
944 // Mising: Remove signal cells in cone in case the trigger is a cluster!
9b01dc66 945
946 if( GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kOnlyCharged ) return ;
b5d10017 947
9b01dc66 948 Float_t conesize = GetIsolationCut()->GetConeSize();
949
950 Float_t ptTrig = aodParticle->Pt();
951 Float_t phiTrig = aodParticle->Phi();
b5d10017 952 if(phiTrig<0) phiTrig += TMath::TwoPi();
9b01dc66 953 Float_t etaTrig = aodParticle->Eta();
954
b5d10017 955 if(aodParticle->GetDetector()=="EMCAL")
9b01dc66 956 {
b5d10017 957 AliEMCALGeometry* eGeom = AliEMCALGeometry::GetInstance();
958 Int_t absId = -999;
959
960 if (eGeom->GetAbsCellIdFromEtaPhi(etaTrig,phiTrig,absId))
9b01dc66 961 {
b5d10017 962 if(!eGeom->CheckAbsCellId(absId)) return ;
9b01dc66 963
b5d10017 964 // Get absolute (col,row) of trigger particle
965 Int_t nSupMod = eGeom->GetSuperModuleNumber(absId);
966 Int_t nModule = -1;
967 Int_t imEta=-1, imPhi=-1;
968 Int_t ieta =-1, iphi =-1;
969
970 if (eGeom->GetCellIndex(absId,nSupMod,nModule,imPhi,imEta))
971 {
972 Int_t iEta=-1, iPhi=-1;
973 eGeom->GetCellPhiEtaIndexInSModule(nSupMod,nModule,imPhi,imEta,iphi,ieta);
974
975 Int_t colTrig = iEta;
976 if (nSupMod % 2) colTrig = AliEMCALGeoParams::fgkEMCALCols + iEta ;
977 Int_t rowTrig = iPhi + AliEMCALGeoParams::fgkEMCALRows*int(nSupMod/2);
978
979 Int_t sqrSize = int(conesize/0.0143);
980
981 AliVCaloCells * cells = GetEMCALCells();
982
983 // Loop on cells in cone
984 for(Int_t irow = rowTrig-sqrSize; irow < rowTrig+sqrSize; irow++)
985 {
10a65cc6 986 for(Int_t icol = colTrig-sqrSize; icol < colTrig+sqrSize; icol++)
b5d10017 987 {
988 Int_t inSector = int(irow/AliEMCALGeoParams::fgkEMCALRows);
10a65cc6 989 if(inSector==5) continue;
990
991 Int_t inSupMod = -1;
b5d10017 992 Int_t icolLoc = -1;
993 if(icol < AliEMCALGeoParams::fgkEMCALCols)
994 {
ea051413 995 inSupMod = 2*inSector + 1;
b5d10017 996 icolLoc = icol;
997 }
998 else if(icol > AliEMCALGeoParams::fgkEMCALCols - 1)
999 {
ea051413 1000 inSupMod = 2*inSector;
b5d10017 1001 icolLoc = icol-AliEMCALGeoParams::fgkEMCALCols;
1002 }
1003
b5c8089d 1004 Int_t irowLoc = irow - AliEMCALGeoParams::fgkEMCALRows*inSector ;
b5d10017 1005
1006 Int_t iabsId = eGeom->GetAbsCellIdFromCellIndexes(inSupMod,irowLoc,icolLoc);
1007 if(!eGeom->CheckAbsCellId(iabsId)) continue;
1008
1009 fhPtCellInCone->Fill(ptTrig, cells->GetCellAmplitude(iabsId));
1010 coneptsumCell += cells->GetCellAmplitude(iabsId);
1011 }
1012 }
1013 }
9b01dc66 1014 }
1015 }
1016
1017 fhConeSumPtCell->Fill(ptTrig,coneptsumCell);
b5d10017 1018
9b01dc66 1019}
1020
23130491 1021//___________________________________________________________________________________________________
1022void AliAnaParticleIsolation::CalculateTrackSignalInCone(AliAODPWG4ParticleCorrelation * aodParticle,
1023 Float_t & coneptsumTrack)
1024{
1025 // Get the track pT or sum of pT in isolation cone
1026
72433939 1027 if( GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kOnlyNeutral ) return ;
1028
23130491 1029 //Recover reference arrays with clusters and tracks
1030 TObjArray * reftracks = aodParticle->GetObjArray(GetAODObjArrayName()+"Tracks");
1031 if(!reftracks) return ;
1032
1033 Float_t ptTrig = aodParticle->Pt();
1034 Double_t bz = GetReader()->GetInputEvent()->GetMagneticField();
1035
1036 for(Int_t itrack=0; itrack < reftracks->GetEntriesFast(); itrack++)
1037 {
1038 AliVTrack* track = (AliVTrack *) reftracks->At(itrack);
1039 Float_t pTtrack = track->Pt();
1040
1041 fhPtInCone ->Fill(ptTrig,pTtrack);
1042 fhPtTrackInCone->Fill(ptTrig,pTtrack);
1043
1044 if(fFillPileUpHistograms)
1045 {
1046 ULong_t status = track->GetStatus();
1047 Bool_t okTOF = ( (status & AliVTrack::kTOFout) == AliVTrack::kTOFout ) ;
1048 //Double32_t tof = track->GetTOFsignal()*1e-3;
1049 Int_t trackBC = track->GetTOFBunchCrossing(bz);
1050
1051 if ( okTOF && trackBC!=0 ) fhPtTrackInConeOtherBC->Fill(ptTrig,pTtrack);
1052 else if( okTOF && trackBC==0 ) fhPtTrackInConeBC0 ->Fill(ptTrig,pTtrack);
1053
1054 Int_t vtxBC = GetReader()->GetVertexBC();
1055 if(vtxBC == 0 || vtxBC==AliVTrack::kTOFBCNA) fhPtTrackInConeVtxBC0->Fill(ptTrig,pTtrack);
1056
1057 if(GetReader()->IsPileUpFromSPD()) { fhPtInConePileUp[0]->Fill(ptTrig,pTtrack);
1058 if(okTOF && trackBC!=0 ) fhPtTrackInConeOtherBCPileUpSPD->Fill(ptTrig,pTtrack);
1059 if(okTOF && trackBC==0 ) fhPtTrackInConeBC0PileUpSPD ->Fill(ptTrig,pTtrack); }
1060 if(GetReader()->IsPileUpFromEMCal()) fhPtInConePileUp[1]->Fill(ptTrig,pTtrack);
1061 if(GetReader()->IsPileUpFromSPDOrEMCal()) fhPtInConePileUp[2]->Fill(ptTrig,pTtrack);
1062 if(GetReader()->IsPileUpFromSPDAndEMCal()) fhPtInConePileUp[3]->Fill(ptTrig,pTtrack);
1063 if(GetReader()->IsPileUpFromSPDAndNotEMCal()) fhPtInConePileUp[4]->Fill(ptTrig,pTtrack);
1064 if(GetReader()->IsPileUpFromEMCalAndNotSPD()) fhPtInConePileUp[5]->Fill(ptTrig,pTtrack);
1065 if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) fhPtInConePileUp[6]->Fill(ptTrig,pTtrack);
1066 }
1067
977564f5 1068 if(fFillHighMultHistograms) fhPtInConeCent->Fill(GetEventCentrality(),pTtrack);
1069
23130491 1070 coneptsumTrack+=pTtrack;
1071 }
72433939 1072
1073 fhConeSumPtTrack->Fill(ptTrig, coneptsumTrack);
1074
23130491 1075}
1076
2ad19c3d 1077//_________________________________________________________________
23130491 1078void AliAnaParticleIsolation::FillPileUpHistograms(Int_t clusterID)
2ad19c3d 1079{
1080 // Fill some histograms to understand pile-up
1081 if(!fFillPileUpHistograms) return;
1082
1083 if(clusterID < 0 )
1084 {
1085 printf("AliAnaParticleIsolation::FillPileUpHistograms(), ID of cluster = %d, not possible! ", clusterID);
1086 return;
1087 }
1088
1089 Int_t iclus = -1;
1090 TObjArray* clusters = 0x0;
1091 if (fCalorimeter == "EMCAL") clusters = GetEMCALClusters();
1092 else if(fCalorimeter == "PHOS" ) clusters = GetPHOSClusters();
1093
1094 Float_t energy = 0;
1095 Float_t time = -1000;
1096
1097 if(clusters)
1098 {
1099 AliVCluster *cluster = FindCluster(clusters,clusterID,iclus);
1100 energy = cluster->E();
994051fa 1101 time = cluster->GetTOF()*1e9;
2ad19c3d 1102 }
1103
1104 //printf("E %f, time %f\n",energy,time);
1105 AliVEvent * event = GetReader()->GetInputEvent();
1106
1107 fhTimeENoCut->Fill(energy,time);
1108 if(GetReader()->IsPileUpFromSPD()) fhTimeESPD ->Fill(energy,time);
1109 if(event->IsPileupFromSPDInMultBins()) fhTimeESPDMulti->Fill(energy,time);
1110
de101942 1111 if(energy < 8) return; // Fill time figures for high energy clusters not too close to trigger threshold
2ad19c3d 1112
1113 AliESDEvent* esdEv = dynamic_cast<AliESDEvent*> (event);
1114 AliAODEvent* aodEv = dynamic_cast<AliAODEvent*> (event);
1115
1116 // N pile up vertices
1117 Int_t nVerticesSPD = -1;
1118 Int_t nVerticesTracks = -1;
1119
1120 if (esdEv)
1121 {
1122 nVerticesSPD = esdEv->GetNumberOfPileupVerticesSPD();
1123 nVerticesTracks = esdEv->GetNumberOfPileupVerticesTracks();
1124
1125 }//ESD
1126 else if (aodEv)
1127 {
1128 nVerticesSPD = aodEv->GetNumberOfPileupVerticesSPD();
1129 nVerticesTracks = aodEv->GetNumberOfPileupVerticesTracks();
1130 }//AOD
1131
1132 fhTimeNPileUpVertSPD ->Fill(time,nVerticesSPD);
1133 fhTimeNPileUpVertTrack->Fill(time,nVerticesTracks);
1134
1135 //printf("Is SPD %d, Is SPD Multi %d, n spd %d, n track %d\n",
1136 // GetReader()->IsPileUpFromSPD(),event->IsPileupFromSPDInMultBins(),nVerticesSPD,nVerticesTracks);
1137
1138 Int_t ncont = -1;
5559f30a 1139 Float_t z1 = -1, z2 = -1;
2ad19c3d 1140 Float_t diamZ = -1;
1141 for(Int_t iVert=0; iVert<nVerticesSPD;iVert++)
1142 {
1143 if (esdEv)
1144 {
1145 const AliESDVertex* pv=esdEv->GetPileupVertexSPD(iVert);
1146 ncont=pv->GetNContributors();
1147 z1 = esdEv->GetPrimaryVertexSPD()->GetZ();
1148 z2 = pv->GetZ();
1149 diamZ = esdEv->GetDiamondZ();
1150 }//ESD
1151 else if (aodEv)
1152 {
1153 AliAODVertex *pv=aodEv->GetVertex(iVert);
1154 if(pv->GetType()!=AliAODVertex::kPileupSPD) continue;
1155 ncont=pv->GetNContributors();
1156 z1=aodEv->GetPrimaryVertexSPD()->GetZ();
1157 z2=pv->GetZ();
1158 diamZ = aodEv->GetDiamondZ();
1159 }// AOD
1160
1161 Double_t distZ = TMath::Abs(z2-z1);
1162 diamZ = TMath::Abs(z2-diamZ);
1163
1164 fhTimeNPileUpVertContributors ->Fill(time,ncont);
1165 fhTimePileUpMainVertexZDistance->Fill(time,distZ);
1166 fhTimePileUpMainVertexZDiamond ->Fill(time,diamZ);
1167
1168 }// loop
1169}
1170
23130491 1171//_____________________________________________________________________________________________________________________
f6d2e552 1172void AliAnaParticleIsolation::FillTrackMatchingShowerShapeControlHistograms(AliAODPWG4ParticleCorrelation *pCandidate)
b5dbb99b 1173{
db7b861a 1174 // Fill Track matching and Shower Shape control histograms
b5dbb99b 1175 if(!fFillTMHisto && !fFillSSHisto) return;
1176
23130491 1177 Int_t clusterID = pCandidate->GetCaloLabel(0) ;
1178 Int_t nMaxima = pCandidate->GetFiducialArea(); // bad name, just place holder for the moment
1179 Int_t mcTag = pCandidate->GetTag() ;
1180 Bool_t isolated = pCandidate->IsIsolated();
1181
1182 if(clusterID < 0 )
547c2f01 1183 {
81a5e27b 1184 printf("AliAnaParticleIsolation::FillTrackMatchingShowerShapeControlHistograms(), ID of cluster = %d, not possible! \n", clusterID);
547c2f01 1185 return;
1186 }
1187
b5dbb99b 1188 Int_t iclus = -1;
1189 TObjArray* clusters = 0x0;
1190 if (fCalorimeter == "EMCAL") clusters = GetEMCALClusters();
1191 else if(fCalorimeter == "PHOS" ) clusters = GetPHOSClusters();
1192
32d244b0 1193 Float_t energy = pCandidate->E();
1194 Float_t pt = pCandidate->Pt();
1195
b5dbb99b 1196 if(clusters)
1197 {
b5dbb99b 1198 AliVCluster *cluster = FindCluster(clusters,clusterID,iclus);
b5dbb99b 1199
1200 if(fFillSSHisto)
1201 {
32d244b0 1202 fhELambda0 [isolated]->Fill(energy, cluster->GetM02() );
1203 fhPtLambda0[isolated]->Fill(pt, cluster->GetM02() );
1204 fhELambda1 [isolated]->Fill(energy, cluster->GetM20() );
b5dbb99b 1205
764ab1f4 1206 if(IsDataMC())
1207 {
32d244b0 1208 if (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt) ||
1209 GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation))
1210 {
1211 fhELambda0MCPhoton [isolated]->Fill(energy, cluster->GetM02());
1212
1213 if (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt))
1214 fhPtLambda0MCPhotonPrompt [isolated]->Fill(pt, cluster->GetM02());
1215 else if (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation))
1216 fhPtLambda0MCPhotonFrag [isolated]->Fill(pt, cluster->GetM02());
1217 }
764ab1f4 1218 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0)) fhELambda0MCPi0 [isolated]->Fill(energy, cluster->GetM02());
1219 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay)) fhELambda0MCPi0Decay [isolated]->Fill(energy, cluster->GetM02());
1220 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay)) fhELambda0MCEtaDecay [isolated]->Fill(energy, cluster->GetM02());
1221 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay)) fhELambda0MCOtherDecay[isolated]->Fill(energy, cluster->GetM02());
23130491 1222
2dac6a45 1223 // else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion)) fhPtNoIsoConversion ->Fill(energy, cluster->GetM02());
f6d2e552 1224 else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron)) fhELambda0MCHadron [isolated]->Fill(energy, cluster->GetM02());
764ab1f4 1225 }
1226
977564f5 1227 if(fCalorimeter == "EMCAL" && fTRDSMCovered >= 0 && GetModuleNumber(cluster) > fTRDSMCovered)
b5dbb99b 1228 {
32d244b0 1229 fhELambda0TRD [isolated]->Fill(energy, cluster->GetM02() );
1230 fhPtLambda0TRD[isolated]->Fill(pt , cluster->GetM02() );
1231 fhELambda1TRD [isolated]->Fill(energy, cluster->GetM20() );
b5dbb99b 1232 }
5c46c992 1233
977564f5 1234 if(fFillNLMHistograms)
1235 {
1236 fhNLocMax[isolated]->Fill(energy,nMaxima);
1237 if (nMaxima==1) { fhELambda0LocMax1[isolated]->Fill(energy,cluster->GetM02()); fhELambda1LocMax1[isolated]->Fill(energy,cluster->GetM20()); }
1238 else if(nMaxima==2) { fhELambda0LocMax2[isolated]->Fill(energy,cluster->GetM02()); fhELambda1LocMax2[isolated]->Fill(energy,cluster->GetM20()); }
1239 else { fhELambda0LocMaxN[isolated]->Fill(energy,cluster->GetM02()); fhELambda1LocMaxN[isolated]->Fill(energy,cluster->GetM20()); }
1240 }
1241 } // SS histo fill
b5dbb99b 1242
1243
1244 if(fFillTMHisto)
1245 {
1246 Float_t dZ = cluster->GetTrackDz();
1247 Float_t dR = cluster->GetTrackDx();
1248
1249 if(cluster->IsEMCAL() && GetCaloUtils()->IsRecalculationOfClusterTrackMatchingOn())
1250 {
1251 dR = 2000., dZ = 2000.;
1252 GetCaloUtils()->GetEMCALRecoUtils()->GetMatchedResiduals(cluster->GetID(),dZ,dR);
1253 }
1254
1255 //printf("ParticleIsolation: dPhi %f, dEta %f\n",dR,dZ);
ec58c056 1256 if(fhTrackMatchedDEta[isolated] && TMath::Abs(dR) < 999)
b5dbb99b 1257 {
ca134929 1258 fhTrackMatchedDEta[isolated]->Fill(energy,dZ);
1259 fhTrackMatchedDPhi[isolated]->Fill(energy,dR);
1260 if(energy > 0.5) fhTrackMatchedDEtaDPhi[isolated]->Fill(dZ,dR);
b5dbb99b 1261 }
1262
1263 // Check dEdx and E/p of matched clusters
1264
1265 if(TMath::Abs(dZ) < 0.05 && TMath::Abs(dR) < 0.05)
1266 {
db6fb352 1267
4bfeae64 1268 AliVTrack *track = GetCaloUtils()->GetMatchedTrack(cluster, GetReader()->GetInputEvent());
b5dbb99b 1269
1270 if(track)
1271 {
1272 Float_t dEdx = track->GetTPCsignal();
ca134929 1273 fhdEdx[isolated]->Fill(cluster->E(), dEdx);
b5dbb99b 1274
1275 Float_t eOverp = cluster->E()/track->P();
ca134929 1276 fhEOverP[isolated]->Fill(cluster->E(), eOverp);
b5dbb99b 1277 }
4bfeae64 1278 //else
1279 // printf("AliAnaParticleIsolation::FillTrackMatchingShowerShapeHistograms() - Residual OK but (dR, dZ)= (%2.4f,%2.4f) no track associated WHAT? \n", dR,dZ);
b5dbb99b 1280
db6fb352 1281
1282 if(IsDataMC())
1283 {
b5dbb99b 1284 if ( !GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion) )
1285 {
1286 if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0) ||
ca134929 1287 GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEta) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 2.5 );
1288 else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 0.5 );
1289 else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 1.5 );
1290 else fhTrackMatchedMCParticle[isolated]->Fill(energy, 3.5 );
b5dbb99b 1291
1292 }
1293 else
1294 {
1295 if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0) ||
ca134929 1296 GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEta) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 6.5 );
1297 else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 4.5 );
1298 else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 5.5 );
1299 else fhTrackMatchedMCParticle[isolated]->Fill(energy, 7.5 );
b5dbb99b 1300 }
1301
1302 } // MC
1303
1304 } // match window
1305
1306 }// TM histos fill
1307
1308 } // clusters array available
1309
1310}
1311
803d06a8 1312//______________________________________________________
1a31a9ab 1313TObjString * AliAnaParticleIsolation::GetAnalysisCuts()
1314{
b0a31c92 1315 //Save parameters used for analysis
1a31a9ab 1316 TString parList ; //this will be list of parameters used for this analysis.
1317 const Int_t buffersize = 255;
1318 char onePar[buffersize] ;
1319
1320 snprintf(onePar, buffersize,"--- AliAnaParticleIsolation ---\n") ;
1321 parList+=onePar ;
1322 snprintf(onePar, buffersize,"Calorimeter: %s\n",fCalorimeter.Data()) ;
1323 parList+=onePar ;
1324 snprintf(onePar, buffersize,"fReMakeIC =%d (Flag for reisolation during histogram filling) \n",fReMakeIC) ;
1325 parList+=onePar ;
1326 snprintf(onePar, buffersize,"fMakeSeveralIC=%d (Flag for isolation with several cuts at the same time ) \n",fMakeSeveralIC) ;
09273901 1327 parList+=onePar ;
1328 snprintf(onePar, buffersize,"fFillTMHisto=%d (Flag for track matching histograms) \n",fFillTMHisto) ;
1a31a9ab 1329 parList+=onePar ;
09273901 1330 snprintf(onePar, buffersize,"fFillSSHisto=%d (Flag for shower shape histograms) \n",fFillSSHisto) ;
1331 parList+=onePar ;
db6fb352 1332
b5dbb99b 1333 if(fMakeSeveralIC)
1334 {
1a31a9ab 1335 snprintf(onePar, buffersize,"fNCones =%d (Number of cone sizes) \n",fNCones) ;
1336 parList+=onePar ;
1337 snprintf(onePar, buffersize,"fNPtThresFrac=%d (Flag for isolation with several cuts at the same time ) \n",fNPtThresFrac) ;
1338 parList+=onePar ;
1339
b5dbb99b 1340 for(Int_t icone = 0; icone < fNCones ; icone++)
1341 {
1a31a9ab 1342 snprintf(onePar, buffersize,"fConeSizes[%d]=%1.2f (isolation cone size) \n",icone, fConeSizes[icone]) ;
1343 parList+=onePar ;
1344 }
b5dbb99b 1345 for(Int_t ipt = 0; ipt < fNPtThresFrac ; ipt++)
1346 {
1a31a9ab 1347 snprintf(onePar, buffersize,"fPtThresholds[%d]=%1.2f (isolation pt threshold) \n",ipt, fPtThresholds[ipt]) ;
1348 parList+=onePar ;
1349 }
b5dbb99b 1350 for(Int_t ipt = 0; ipt < fNPtThresFrac ; ipt++)
1351 {
1a31a9ab 1352 snprintf(onePar, buffersize,"fPtFractions[%d]=%1.2f (isolation pt fraction threshold) \n",ipt, fPtFractions[ipt]) ;
1353 parList+=onePar ;
db6fb352 1354 }
1355 for(Int_t ipt = 0; ipt < fNPtThresFrac ; ipt++)
1356 {
1357 snprintf(onePar, buffersize,"fSumPtThresholds[%d]=%1.2f (isolation sum pt threshold) \n",ipt, fSumPtThresholds[ipt]) ;
1358 parList+=onePar ;
1a31a9ab 1359 }
1360 }
1361
1362 //Get parameters set in base class.
1363 parList += GetBaseParametersList() ;
1364
1365 //Get parameters set in IC class.
1366 if(!fMakeSeveralIC)parList += GetIsolationCut()->GetICParametersList() ;
1367
1368 return new TObjString(parList) ;
b0a31c92 1369
1a31a9ab 1370}
1371
803d06a8 1372//________________________________________________________
1a31a9ab 1373TList * AliAnaParticleIsolation::GetCreateOutputObjects()
1374{
1375 // Create histograms to be saved in output file and
1376 // store them in outputContainer
1377 TList * outputContainer = new TList() ;
1378 outputContainer->SetName("IsolatedParticleHistos") ;
1379
745913ae 1380 Int_t nptbins = GetHistogramRanges()->GetHistoPtBins();
1381 Int_t nphibins = GetHistogramRanges()->GetHistoPhiBins();
1382 Int_t netabins = GetHistogramRanges()->GetHistoEtaBins();
1383 Float_t ptmax = GetHistogramRanges()->GetHistoPtMax();
1384 Float_t phimax = GetHistogramRanges()->GetHistoPhiMax();
1385 Float_t etamax = GetHistogramRanges()->GetHistoEtaMax();
1386 Float_t ptmin = GetHistogramRanges()->GetHistoPtMin();
1387 Float_t phimin = GetHistogramRanges()->GetHistoPhiMin();
1388 Float_t etamin = GetHistogramRanges()->GetHistoEtaMin();
09273901 1389 Int_t ssbins = GetHistogramRanges()->GetHistoShowerShapeBins();
1390 Float_t ssmax = GetHistogramRanges()->GetHistoShowerShapeMax();
1391 Float_t ssmin = GetHistogramRanges()->GetHistoShowerShapeMin();
2ad19c3d 1392 Int_t ntimebins= GetHistogramRanges()->GetHistoTimeBins();
1393 Float_t timemax = GetHistogramRanges()->GetHistoTimeMax();
1394 Float_t timemin = GetHistogramRanges()->GetHistoTimeMin();
1395
09273901 1396 Int_t nresetabins = GetHistogramRanges()->GetHistoTrackResidualEtaBins();
1397 Float_t resetamax = GetHistogramRanges()->GetHistoTrackResidualEtaMax();
1398 Float_t resetamin = GetHistogramRanges()->GetHistoTrackResidualEtaMin();
1399 Int_t nresphibins = GetHistogramRanges()->GetHistoTrackResidualPhiBins();
1400 Float_t resphimax = GetHistogramRanges()->GetHistoTrackResidualPhiMax();
1401 Float_t resphimin = GetHistogramRanges()->GetHistoTrackResidualPhiMin();
803d06a8 1402
31ae6d59 1403 Int_t ndedxbins = GetHistogramRanges()->GetHistodEdxBins();
1404 Float_t dedxmax = GetHistogramRanges()->GetHistodEdxMax();
1405 Float_t dedxmin = GetHistogramRanges()->GetHistodEdxMin();
1406 Int_t nPoverEbins = GetHistogramRanges()->GetHistoPOverEBins();
1407 Float_t pOverEmax = GetHistogramRanges()->GetHistoPOverEMax();
1408 Float_t pOverEmin = GetHistogramRanges()->GetHistoPOverEMin();
1409
803d06a8 1410 Int_t nptsumbins = fHistoNPtSumBins;
1411 Float_t ptsummax = fHistoPtSumMax;
1412 Float_t ptsummin = fHistoPtSumMin;
1413 Int_t nptinconebins = fHistoNPtInConeBins;
1414 Float_t ptinconemax = fHistoPtInConeMax;
1415 Float_t ptinconemin = fHistoPtInConeMin;
1a31a9ab 1416
7726e3a3 1417 //Float_t ptthre = GetIsolationCut()->GetPtThreshold();
1418 //Float_t ptsumthre = GetIsolationCut()->GetSumPtThreshold();
1419 //Float_t ptfrac = GetIsolationCut()->GetPtFraction();
1420 Float_t r = GetIsolationCut()->GetConeSize();
1421 Int_t method = GetIsolationCut()->GetICMethod() ;
1422 Int_t particle = GetIsolationCut()->GetParticleTypeInCone() ;
1423
1424 TString sThreshold = "";
47a27744 1425 if ( method == AliIsolationCut::kSumPtIC ) sThreshold = Form(", %2.2f < #Sigma #it{p}_{T}^{in cone} < %2.2f GeV/#it{c}", GetIsolationCut()->GetSumPtThreshold(), GetIsolationCut()->GetSumPtThresholdMax());
1426 else if ( method == AliIsolationCut::kPtThresIC) sThreshold = Form(", %2.2f < #it{p}_{T}^{th} < %2.2f GeV/#it{c}" , GetIsolationCut()->GetPtThreshold(), GetIsolationCut()->GetPtThresholdMax());
1427 else if ( method == AliIsolationCut::kPtFracIC) sThreshold = Form(", #Sigma #it{p}_{T}^{in cone}/#it{p}_{T}^{trig} = %2.2f" , GetIsolationCut()->GetPtFraction());
7726e3a3 1428
1429 TString sParticle = ", x^{0,#pm}";
1430 if ( particle == AliIsolationCut::kOnlyNeutral ) sParticle = ", x^{0}";
1431 else if ( particle == AliIsolationCut::kOnlyCharged ) sParticle = ", x^{#pm}";
1432
1433 TString parTitle = Form("#it{R} = %2.2f%s%s",GetIsolationCut()->GetConeSize(), sThreshold.Data(),sParticle.Data());
db6fb352 1434
17af6e24 1435 TString pileUpName[] = {"SPD","EMCAL","SPDOrEMCAL","SPDAndEMCAL","SPDAndNotEMCAL","EMCALAndNotSPD","NotSPDAndNotEMCAL"} ;
1436
b5dbb99b 1437 if(!fMakeSeveralIC)
1438 {
7726e3a3 1439 TString isoName [] = {"NoIso",""};
1440 TString isoTitle[] = {"Not isolated" ,"isolated"};
c8710850 1441
72433939 1442 fhEIso = new TH1F("hE",
7726e3a3 1443 Form("Number of isolated particles vs E, %s",parTitle.Data()),
72433939 1444 nptbins,ptmin,ptmax);
977564f5 1445 fhEIso->SetYTitle("d#it{N} / d#it{E}");
9a97f32f 1446 fhEIso->SetXTitle("#it{E} (GeV/#it{c})");
72433939 1447 outputContainer->Add(fhEIso) ;
1448
1449 fhPtIso = new TH1F("hPt",
7726e3a3 1450 Form("Number of isolated particles vs #it{p}_{T}, %s",parTitle.Data()),
72433939 1451 nptbins,ptmin,ptmax);
9a97f32f 1452 fhPtIso->SetYTitle("d#it{N} / #it{p}_{T}");
dc9c6e78 1453 fhPtIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
72433939 1454 outputContainer->Add(fhPtIso) ;
1455
977564f5 1456 if(fFillHighMultHistograms)
1457 {
1458 fhPtCentralityIso = new TH2F("hPtCentrality",
1459 Form("centrality vs #it{p}_{T} for isolated particles, %s",parTitle.Data()),
1460 nptbins,ptmin,ptmax, 100,0,100);
1461 fhPtCentralityIso->SetYTitle("centrality");
1462 fhPtCentralityIso->SetXTitle("#it{p}_{T}(GeV/#it{c})");
1463 outputContainer->Add(fhPtCentralityIso) ;
1464
1465 fhPtEventPlaneIso = new TH2F("hPtEventPlane",
1466 Form("event plane angle vs #it{p}_{T} for isolated particles, %s",parTitle.Data()),
1467 nptbins,ptmin,ptmax, 100,0,TMath::Pi());
1468 fhPtEventPlaneIso->SetYTitle("Event plane angle (rad)");
1469 fhPtEventPlaneIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1470 outputContainer->Add(fhPtEventPlaneIso) ;
1471 }
72433939 1472
977564f5 1473 if(fFillNLMHistograms)
1474 {
1475 fhPtNLocMaxIso = new TH2F("hPtNLocMax",
1476 Form("Number of isolated particles vs #it{p}_{T}, %s",parTitle.Data()),
1477 nptbins,ptmin,ptmax,10,0,10);
1478 fhPtNLocMaxIso->SetYTitle("#it{NLM}");
1479 fhPtNLocMaxIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1480 outputContainer->Add(fhPtNLocMaxIso) ;
1481 }
72433939 1482
1483 fhPhiIso = new TH2F("hPhi",
7726e3a3 1484 Form("Number of isolated particles vs #phi, %s",parTitle.Data()),
72433939 1485 nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1486 fhPhiIso->SetYTitle("#phi");
dc9c6e78 1487 fhPhiIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
72433939 1488 outputContainer->Add(fhPhiIso) ;
1489
1490 fhEtaIso = new TH2F("hEta",
7726e3a3 1491 Form("Number of isolated particles vs #eta, %s",parTitle.Data()),
72433939 1492 nptbins,ptmin,ptmax,netabins,etamin,etamax);
1493 fhEtaIso->SetYTitle("#eta");
dc9c6e78 1494 fhEtaIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
72433939 1495 outputContainer->Add(fhEtaIso) ;
1496
1497 fhEtaPhiIso = new TH2F("hEtaPhiIso",
7726e3a3 1498 Form("Number of isolated particles #eta vs #phi, %s",parTitle.Data()),
72433939 1499 netabins,etamin,etamax,nphibins,phimin,phimax);
1500 fhEtaPhiIso->SetXTitle("#eta");
1501 fhEtaPhiIso->SetYTitle("#phi");
1502 outputContainer->Add(fhEtaPhiIso) ;
1503
977564f5 1504 if(fFillTaggedDecayHistograms)
1505 {
1506 fhPtDecayIso = new TH1F("hPtDecayIso",
1507 Form("Number of isolated #pi^{0} decay particles vs #it{p}_{T}, %s",parTitle.Data()),
1508 nptbins,ptmin,ptmax);
1509 fhPtDecayIso->SetYTitle("#it{counts}");
1510 fhPtDecayIso->SetXTitle("#it{p}_{T}(GeV/#it{c})");
1511 outputContainer->Add(fhPtDecayIso) ;
1512
1513 fhEtaPhiDecayIso = new TH2F("hEtaPhiDecayIso",
1514 Form("Number of isolated Pi0 decay particles #eta vs #phi, %s",parTitle.Data()),
1515 netabins,etamin,etamax,nphibins,phimin,phimax);
1516 fhEtaPhiDecayIso->SetXTitle("#eta");
1517 fhEtaPhiDecayIso->SetYTitle("#phi");
1518 outputContainer->Add(fhEtaPhiDecayIso) ;
1519 }
72433939 1520
1521 fhConeSumPt = new TH2F("hConePtSum",
9a97f32f 1522 Form("Track and Cluster #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f",r),
72433939 1523 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 1524 fhConeSumPt->SetYTitle("#Sigma #it{p}_{T}");
9a97f32f 1525 fhConeSumPt->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
72433939 1526 outputContainer->Add(fhConeSumPt) ;
1527
1528 fhConeSumPtTrigEtaPhi = new TH2F("hConePtSumTrigEtaPhi",
9a97f32f 1529 Form("Trigger #eta vs #phi, #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f",r),
72433939 1530 netabins,etamin,etamax,nphibins,phimin,phimax);
dc9c6e78 1531 fhConeSumPtTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
72433939 1532 fhConeSumPtTrigEtaPhi->SetXTitle("#eta_{trigger}");
1533 fhConeSumPtTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1534 outputContainer->Add(fhConeSumPtTrigEtaPhi) ;
1535
1536 fhPtInCone = new TH2F("hPtInCone",
9a97f32f 1537 Form("#it{p}_{T} of clusters and tracks in isolation cone for #it{R} = %2.2f",r),
72433939 1538 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
9a97f32f 1539 fhPtInCone->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
dc9c6e78 1540 fhPtInCone->SetXTitle("#it{p}_{T} (GeV/#it{c})");
72433939 1541 outputContainer->Add(fhPtInCone) ;
1542
977564f5 1543 if(fFillHighMultHistograms)
1544 {
1545 fhPtInConeCent = new TH2F("hPtInConeCent",
1546 Form("#it{p}_{T} in isolation cone for #it{R} = %2.2f",r),
1547 100,0,100,nptinconebins,ptinconemin,ptinconemax);
1548 fhPtInConeCent->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
1549 fhPtInConeCent->SetXTitle("centrality");
1550 outputContainer->Add(fhPtInConeCent) ;
1551 }
72433939 1552
1553 // Cluster only histograms
1554 if(GetIsolationCut()->GetParticleTypeInCone()!=AliIsolationCut::kOnlyCharged)
1555 {
1556 fhConeSumPtCluster = new TH2F("hConePtSumCluster",
9a97f32f 1557 Form("Cluster #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f",r),
72433939 1558 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 1559 fhConeSumPtCluster->SetYTitle("#Sigma #it{p}_{T}");
9a97f32f 1560 fhConeSumPtCluster->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
72433939 1561 outputContainer->Add(fhConeSumPtCluster) ;
1562
977564f5 1563 if(fFillCellHistograms)
1564 {
1565 fhConeSumPtCell = new TH2F("hConePtSumCell",
1566 Form("Cell #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f",r),
1567 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1568 fhConeSumPtCell->SetYTitle("#Sigma #it{p}_{T}");
1569 fhConeSumPtCell->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
1570 outputContainer->Add(fhConeSumPtCell) ;
1571 }
72433939 1572
977564f5 1573 if(fFillUEBandSubtractHistograms)
1574 {
1575 fhConeSumPtEtaBandUECluster = new TH2F("hConePtSumEtaBandUECluster",
1576 "#Sigma cluster #it{p}_{T} in UE Eta Band",
1577 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1578 fhConeSumPtEtaBandUECluster->SetYTitle("#Sigma #it{p}_{T}");
1579 fhConeSumPtEtaBandUECluster->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
1580 outputContainer->Add(fhConeSumPtEtaBandUECluster) ;
1581
1582 fhConeSumPtPhiBandUECluster = new TH2F("hConePtSumPhiBandUECluster",
1583 "#Sigma cluster #it{p}_{T} UE Phi Band",
1584 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1585 fhConeSumPtPhiBandUECluster->SetYTitle("#Sigma #it{p}_{T}");
1586 fhConeSumPtPhiBandUECluster->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
1587 outputContainer->Add(fhConeSumPtPhiBandUECluster) ;
1588
1589 fhConeSumPtEtaBandUEClusterTrigEtaPhi = new TH2F("hConePtSumEtaBandUEClusterTrigEtaPhi",
1590 "Trigger #eta vs #phi, #Sigma cluster #it{p}_{T} in UE Eta Band",
1591 netabins,etamin,etamax,nphibins,phimin,phimax);
1592 fhConeSumPtEtaBandUEClusterTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
1593 fhConeSumPtEtaBandUEClusterTrigEtaPhi->SetXTitle("#eta_{trigger}");
1594 fhConeSumPtEtaBandUEClusterTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1595 outputContainer->Add(fhConeSumPtEtaBandUEClusterTrigEtaPhi) ;
1596
1597 fhConeSumPtPhiBandUEClusterTrigEtaPhi = new TH2F("hConePtSumPhiBandUEClusterTrigEtaPhi",
1598 "Trigger #eta vs #phi, #Sigma cluster #it{p}_{T} UE Phi Band",
1599 netabins,etamin,etamax,nphibins,phimin,phimax);
1600 fhConeSumPtPhiBandUEClusterTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
1601 fhConeSumPtPhiBandUEClusterTrigEtaPhi->SetXTitle("#eta_{trigger}");
1602 fhConeSumPtPhiBandUEClusterTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1603 outputContainer->Add(fhConeSumPtPhiBandUEClusterTrigEtaPhi) ;
1604 if(fFillCellHistograms)
1605 {
1606
1607 fhConeSumPtEtaBandUECell = new TH2F("hConePtSumEtaBandUECell",
1608 "#Sigma cell #it{p}_{T} in UE Eta Band",
1609 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1610 fhConeSumPtEtaBandUECell->SetYTitle("#Sigma #it{p}_{T}");
1611 fhConeSumPtEtaBandUECell->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
1612 outputContainer->Add(fhConeSumPtEtaBandUECell) ;
1613
1614 fhConeSumPtPhiBandUECell = new TH2F("hConePtSumPhiBandUECell",
1615 "#Sigma cell #it{p}_{T} UE Phi Band",
1616 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1617 fhConeSumPtPhiBandUECell->SetYTitle("#Sigma #it{p}_{T}");
1618 fhConeSumPtPhiBandUECell->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
1619 outputContainer->Add(fhConeSumPtPhiBandUECell) ;
1620
1621 fhConeSumPtEtaBandUECellTrigEtaPhi = new TH2F("hConePtSumEtaBandUECellTrigEtaPhi",
1622 "Trigger #eta vs #phi, #Sigma cell #it{p}_{T} in UE Eta Band",
1623 netabins,etamin,etamax,nphibins,phimin,phimax);
1624 fhConeSumPtEtaBandUECellTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
1625 fhConeSumPtEtaBandUECellTrigEtaPhi->SetXTitle("#eta_{trigger}");
1626 fhConeSumPtEtaBandUECellTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1627 outputContainer->Add(fhConeSumPtEtaBandUECellTrigEtaPhi) ;
1628
1629 fhConeSumPtPhiBandUECellTrigEtaPhi = new TH2F("hConePtSumPhiBandUECellTrigEtaPhi",
1630 "Trigger #eta vs #phi, #Sigma cell #it{p}_{T} UE Phi Band",
1631 netabins,etamin,etamax,nphibins,phimin,phimax);
1632 fhConeSumPtPhiBandUECellTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
1633 fhConeSumPtPhiBandUECellTrigEtaPhi->SetXTitle("#eta_{trigger}");
1634 fhConeSumPtPhiBandUECellTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1635 outputContainer->Add(fhConeSumPtPhiBandUECellTrigEtaPhi) ;
1636 }
1637 fhEtaBandCluster = new TH2F("hEtaBandCluster",
1638 Form("#eta vs #phi of clusters in #eta band isolation cone for #it{R} = %2.2f",r),
1639 netabins,-1,1,nphibins,0,TMath::TwoPi());
1640 fhEtaBandCluster->SetXTitle("#eta");
1641 fhEtaBandCluster->SetYTitle("#phi");
1642 outputContainer->Add(fhEtaBandCluster) ;
1643
1644 fhPhiBandCluster = new TH2F("hPhiBandCluster",
1645 Form("#eta vs #phi of clusters in #phi band isolation cone for #it{R} = %2.2f",r),
1646 netabins,-1,1,nphibins,0,TMath::TwoPi());
1647 fhPhiBandCluster->SetXTitle("#eta");
1648 fhPhiBandCluster->SetYTitle("#phi");
1649 outputContainer->Add(fhPhiBandCluster) ;
1650
1651 fhEtaPhiInConeCluster= new TH2F("hEtaPhiInConeCluster",
1652 Form("#eta vs #phi of clusters in cone for #it{R} = %2.2f",r),
1653 netabins,-1,1,nphibins,0,TMath::TwoPi());
1654 fhEtaPhiInConeCluster->SetXTitle("#eta");
1655 fhEtaPhiInConeCluster->SetYTitle("#phi");
1656 outputContainer->Add(fhEtaPhiInConeCluster) ;
1657
1658 fhEtaPhiCluster= new TH2F("hEtaPhiCluster",
1659 Form("#eta vs #phi of all clusters"),
1660 netabins,-1,1,nphibins,0,TMath::TwoPi());
1661 fhEtaPhiCluster->SetXTitle("#eta");
1662 fhEtaPhiCluster->SetYTitle("#phi");
1663 outputContainer->Add(fhEtaPhiCluster) ;
9b01dc66 1664
977564f5 1665 }
9b01dc66 1666
72433939 1667 fhPtClusterInCone = new TH2F("hPtClusterInCone",
9a97f32f 1668 Form("#it{p}_{T} of clusters in isolation cone for #it{R} = %2.2f",r),
72433939 1669 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
9a97f32f 1670 fhPtClusterInCone->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
dc9c6e78 1671 fhPtClusterInCone->SetXTitle("#it{p}_{T} (GeV/#it{c})");
72433939 1672 outputContainer->Add(fhPtClusterInCone) ;
1673
72433939 1674
977564f5 1675 if(fFillCellHistograms)
1676 {
1677 fhPtCellInCone = new TH2F("hPtCellInCone",
1678 Form("#it{p}_{T} of cells in isolation cone for #it{R} = %2.2f",r),
1679 nptbins,ptmin,ptmax,1000,0,50);
1680 fhPtCellInCone->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
1681 fhPtCellInCone->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1682 outputContainer->Add(fhPtCellInCone) ;
1683
1684 fhEtaBandCell = new TH2F("hEtaBandCell",
1685 Form("#col vs #row of cells in #eta band isolation cone for #it{R} = %2.2f",r),
1686 96,0,95,128,0,127);
1687 fhEtaBandCell->SetXTitle("#col");
1688 fhEtaBandCell->SetYTitle("#row");
1689 outputContainer->Add(fhEtaBandCell) ;
1690
1691 fhPhiBandCell = new TH2F("hPhiBandCell",
1692 Form("#col vs #row of cells in #phi band isolation cone for #it{R} = %2.2f",r),
1693 96,0,95,128,0,127);
1694 fhPhiBandCell->SetXTitle("#col");
1695 fhPhiBandCell->SetYTitle("#row");
1696 outputContainer->Add(fhPhiBandCell) ;
1697 }
72433939 1698
977564f5 1699 if(fFillUEBandSubtractHistograms)
1700 {
1701 fhConeSumPtEtaUESubCluster = new TH2F("hConeSumPtEtaUESubCluster",
1702 Form("Clusters #Sigma #it{p}_{T} after bkg subtraction from eta band in the isolation cone for #it{R} = %2.2f",r),
1703 nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
1704 fhConeSumPtEtaUESubCluster->SetYTitle("#Sigma #it{p}_{T}");
1705 fhConeSumPtEtaUESubCluster->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1706 outputContainer->Add(fhConeSumPtEtaUESubCluster) ;
1707
1708 fhConeSumPtPhiUESubCluster = new TH2F("hConeSumPtPhiUESubCluster",
1709 Form("Clusters #Sigma #it{p}_{T} after bkg subtraction from phi band in the isolation cone for #it{R} = %2.2f",r),
1710 nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
1711 fhConeSumPtPhiUESubCluster->SetYTitle("#Sigma #it{p}_{T}");
1712 fhConeSumPtPhiUESubCluster->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1713 outputContainer->Add(fhConeSumPtPhiUESubCluster) ;
1714
1715 fhConeSumPtEtaUESubClusterTrigEtaPhi = new TH2F("hConeSumPtEtaUESubClusterTrigEtaPhi",
1716 Form("Trigger #eta vs #phi, Clusters #Sigma #it{p}_{T} after bkg subtraction from eta band in the isolation cone for #it{R} = %2.2f",r),
1717 netabins,etamin,etamax,nphibins,phimin,phimax);
1718 fhConeSumPtEtaUESubClusterTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
1719 fhConeSumPtEtaUESubClusterTrigEtaPhi->SetXTitle("#eta_{trigger}");
1720 fhConeSumPtEtaUESubClusterTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1721 outputContainer->Add(fhConeSumPtEtaUESubClusterTrigEtaPhi) ;
1722
1723 fhConeSumPtPhiUESubClusterTrigEtaPhi = new TH2F("hConeSumPtPhiUESubClusterTrigEtaPhi",
1724 Form("Trigger #eta vs #phi, Clusters #Sigma #it{p}_{T} after bkg subtraction from phi band in the isolation cone for #it{R} = %2.2f",r),
1725 netabins,etamin,etamax,nphibins,phimin,phimax);
1726 fhConeSumPtPhiUESubClusterTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
1727 fhConeSumPtPhiUESubClusterTrigEtaPhi->SetXTitle("#eta_{trigger}");
1728 fhConeSumPtPhiUESubClusterTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1729 outputContainer->Add(fhConeSumPtPhiUESubClusterTrigEtaPhi) ;
1730
1731 if(fFillCellHistograms)
1732 {
1733 fhConeSumPtEtaUESubCell = new TH2F("hConeSumPtEtaUESubCell",
1734 Form("Cells #Sigma #it{p}_{T} after bkg subtraction from eta band in the isolation cone for #it{R} = %2.2f",r),
1735 nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
1736 fhConeSumPtEtaUESubCell->SetYTitle("#Sigma #it{p}_{T}");
1737 fhConeSumPtEtaUESubCell->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1738 outputContainer->Add(fhConeSumPtEtaUESubCell) ;
1739
1740 fhConeSumPtPhiUESubCell = new TH2F("hConeSumPtPhiUESubCell",
1741 Form("Cells #Sigma #it{p}_{T} after bkg subtraction from phi band in the isolation cone for #it{R} = %2.2f",r),
1742 nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
1743 fhConeSumPtPhiUESubCell->SetYTitle("#Sigma #it{p}_{T}");
1744 fhConeSumPtPhiUESubCell->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1745 outputContainer->Add(fhConeSumPtPhiUESubCell) ;
1746
1747 fhConeSumPtEtaUESubCellTrigEtaPhi = new TH2F("hConeSumPtEtaUESubCellTrigEtaPhi",
1748 Form("Trigger #eta vs #phi, Cells #Sigma #it{p}_{T} after bkg subtraction from eta band in the isolation cone for #it{R} = %2.2f",r),
72433939 1749 netabins,etamin,etamax,nphibins,phimin,phimax);
977564f5 1750 fhConeSumPtEtaUESubCellTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
1751 fhConeSumPtEtaUESubCellTrigEtaPhi->SetXTitle("#eta_{trigger}");
1752 fhConeSumPtEtaUESubCellTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1753 outputContainer->Add(fhConeSumPtEtaUESubCellTrigEtaPhi) ;
1754
1755 fhConeSumPtPhiUESubCellTrigEtaPhi = new TH2F("hConeSumPtPhiUESubCellTrigEtaPhi",
1756 Form("Trigger #eta vs #phi, Cells #Sigma #it{p}_{T} after bkg subtraction from phi band in the isolation cone for #it{R} = %2.2f",r),
72433939 1757 netabins,etamin,etamax,nphibins,phimin,phimax);
977564f5 1758 fhConeSumPtPhiUESubCellTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
1759 fhConeSumPtPhiUESubCellTrigEtaPhi->SetXTitle("#eta_{trigger}");
1760 fhConeSumPtPhiUESubCellTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1761 outputContainer->Add(fhConeSumPtPhiUESubCellTrigEtaPhi) ;
1762 }
1763
1764 fhFractionClusterOutConeEta = new TH2F("hFractionClusterOutConeEta",
1765 Form("Fraction of the isolation cone #it{R} = %2.2f, out of clusters #eta acceptance",r),
1766 nptbins,ptmin,ptmax,100,0,1);
1767 fhFractionClusterOutConeEta->SetYTitle("#it{fraction}");
1768 fhFractionClusterOutConeEta->SetXTitle("#it{p}_{T,trigger} (GeV/#it{c})");
1769 outputContainer->Add(fhFractionClusterOutConeEta) ;
1770
1771 fhFractionClusterOutConeEtaTrigEtaPhi = new TH2F("hFractionClusterOutConeEtaTrigEtaPhi",
1772 Form("Fraction of the isolation cone #it{R} = %2.2f, out of clusters #eta acceptance, in trigger #eta-#phi ",r),
1773 netabins,etamin,etamax,nphibins,phimin,phimax);
1774 fhFractionClusterOutConeEtaTrigEtaPhi->SetZTitle("#it{fraction}");
1775 fhFractionClusterOutConeEtaTrigEtaPhi->SetXTitle("#eta_{trigger}");
1776 fhFractionClusterOutConeEtaTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1777 outputContainer->Add(fhFractionClusterOutConeEtaTrigEtaPhi) ;
1778
1779 fhFractionClusterOutConePhi = new TH2F("hFractionClusterOutConePhi",
1780 Form("Fraction of the isolation cone #it{R} = %2.2f, out of clusters #phi acceptance",r),
1781 nptbins,ptmin,ptmax,100,0,1);
1782 fhFractionClusterOutConePhi->SetYTitle("#it{fraction}");
1783 fhFractionClusterOutConePhi->SetXTitle("#it{p}_{T,trigger} (GeV/#it{c})");
1784 outputContainer->Add(fhFractionClusterOutConePhi) ;
1785
1786 fhFractionClusterOutConePhiTrigEtaPhi = new TH2F("hFractionClusterOutConePhiTrigEtaPhi",
1787 Form("Fraction of the isolation cone #it{R} = %2.2f, out of clusters #phi acceptance, in trigger #eta-#phi ",r),
1788 netabins,etamin,etamax,nphibins,phimin,phimax);
1789 fhFractionClusterOutConePhiTrigEtaPhi->SetZTitle("#it{fraction}");
1790 fhFractionClusterOutConePhiTrigEtaPhi->SetXTitle("#eta_{trigger}");
1791 fhFractionClusterOutConePhiTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1792 outputContainer->Add(fhFractionClusterOutConePhiTrigEtaPhi) ;
1793
1794 fhConeSumPtSubvsConeSumPtTotPhiCluster = new TH2F("hConeSumPtSubvsConeSumPtTotPhiCluster",
1795 Form("#Sigma #it{p}_{T} in cone after bkg sub from #phi band vs #Sigma #it{p}_{T} in cone before bkg sub, R=%2.2f",r),
1796 nptsumbins,ptsummin,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
1797 fhConeSumPtSubvsConeSumPtTotPhiCluster->SetXTitle("#Sigma #it{p}_{T, tot} (GeV/#it{c})");
1798 fhConeSumPtSubvsConeSumPtTotPhiCluster->SetYTitle("#Sigma #it{p}_{T, sub} (GeV/#it{c})");
1799 outputContainer->Add(fhConeSumPtSubvsConeSumPtTotPhiCluster);
1800
1801 fhConeSumPtSubNormvsConeSumPtTotPhiCluster = new TH2F("hConeSumPtSubNormvsConeSumPtTotPhiCluster",
1802 Form("#Sigma #it{p}_{T, norm} in cone after bkg sub from #phi band vs #Sigma #it{p}_{T} in cone before bkg sub, R=%2.2f",r),
1803 nptsumbins,ptsummin,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
1804 fhConeSumPtSubNormvsConeSumPtTotPhiCluster->SetXTitle("#Sigma #it{p}_{T, tot} (GeV/#it{c})");
1805 fhConeSumPtSubNormvsConeSumPtTotPhiCluster->SetYTitle("#Sigma #it{p}_{T, sub norm} (GeV/#it{c})");
1806 outputContainer->Add(fhConeSumPtSubNormvsConeSumPtTotPhiCluster);
1807
1808 fhConeSumPtSubvsConeSumPtTotEtaCluster = new TH2F("hConeSumPtSubvsConeSumPtTotEtaCluster",
1809 Form("#Sigma #it{p}_{T} in cone after bkg sub from #eta band vs #Sigma #it{p}_{T} in cone before bkg sub, R=%2.2f",r),
1810 nptsumbins,ptsummin,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
1811 fhConeSumPtSubvsConeSumPtTotEtaCluster->SetXTitle("#Sigma #it{p}_{T, tot} (GeV/#it{c})");
1812 fhConeSumPtSubvsConeSumPtTotEtaCluster->SetYTitle("#Sigma #it{p}_{T, sub} (GeV/#it{c})");
1813 outputContainer->Add(fhConeSumPtSubvsConeSumPtTotEtaCluster);
1814
1815 fhConeSumPtSubNormvsConeSumPtTotEtaCluster = new TH2F("hConeSumPtSubNormvsConeSumPtTotEtaCluster",
1816 Form("#Sigma #it{p}_{T, norm} in cone after bkg sub from #eta band vs #Sigma #it{p}_{T} in cone before bkg sub, R=%2.2f",r),
1817 nptsumbins,ptsummin,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
1818 fhConeSumPtSubNormvsConeSumPtTotEtaCluster->SetXTitle("#Sigma #it{p}_{T, tot} (GeV/#it{c})");
1819 fhConeSumPtSubNormvsConeSumPtTotEtaCluster->SetYTitle("#Sigma #it{p}_{T, sub norm} (GeV/#it{c})");
1820 outputContainer->Add(fhConeSumPtSubNormvsConeSumPtTotEtaCluster);
1821
1822 fhConeSumPtVSUEClusterEtaBand = new TH2F("hConeSumPtVSUEClusterEtaBand",
1823 Form("#Sigma #it{p}_{T} in cone versus #Sigma #it{p}_{T} in eta band for cluster (before normalization), R=%2.2f",r),
1824 nptsumbins,ptsummin,ptsummax,2*nptsumbins,ptsummin,2*ptsummax);
1825 fhConeSumPtVSUEClusterEtaBand->SetXTitle("#Sigma #it{p}_{T} cone (GeV/#it{c})");
1826 fhConeSumPtVSUEClusterEtaBand->SetYTitle("#Sigma #it{p}_{T} UE (GeV/#it{c})");
1827 outputContainer->Add(fhConeSumPtVSUEClusterEtaBand);
1828
1829 fhConeSumPtVSUEClusterPhiBand = new TH2F("hConeSumPtVSUEClusterPhiBand",
1830 Form("#Sigma #it{p}_{T} in cone versus #Sigma #it{p}_{T} in phi band for cluster (before normalization), R=%2.2f",r),
1831 nptsumbins,ptsummin,ptsummax,8*nptsumbins,ptsummin,8*ptsummax);
1832 fhConeSumPtVSUEClusterPhiBand->SetXTitle("#Sigma #it{p}_{T} cone (GeV/#it{c})");
1833 fhConeSumPtVSUEClusterPhiBand->SetYTitle("#Sigma #it{p}_{T} UE (GeV/#it{c})");
1834 outputContainer->Add(fhConeSumPtVSUEClusterPhiBand);
1835
1836 if(fFillCellHistograms)
1837 {
1838 fhFractionCellOutConeEta = new TH2F("hFractionCellOutConeEta",
1839 Form("Fraction of the isolation cone #it{R} = %2.2f, out of cells #eta acceptance",r),
1840 nptbins,ptmin,ptmax,100,0,1);
1841 fhFractionCellOutConeEta->SetYTitle("#it{fraction}");
1842 fhFractionCellOutConeEta->SetXTitle("#it{p}_{T,trigger} (GeV/#it{c})");
1843 outputContainer->Add(fhFractionCellOutConeEta) ;
1844
1845 fhFractionCellOutConeEtaTrigEtaPhi = new TH2F("hFractionCellOutConeEtaTrigEtaPhi",
1846 Form("Fraction of the isolation cone #it{R} = %2.2f, out of cells #eta acceptance, in trigger #eta-#phi ",r),
1847 netabins,etamin,etamax,nphibins,phimin,phimax);
1848 fhFractionCellOutConeEtaTrigEtaPhi->SetZTitle("#it{fraction}");
1849 fhFractionCellOutConeEtaTrigEtaPhi->SetXTitle("#eta_{trigger}");
1850 fhFractionCellOutConeEtaTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1851 outputContainer->Add(fhFractionCellOutConeEtaTrigEtaPhi) ;
1852
1853 fhFractionCellOutConePhi = new TH2F("hFractionCellOutConePhi",
1854 Form("Fraction of the isolation cone #it{R} = %2.2f, out of cells #phi acceptance",r),
1855 nptbins,ptmin,ptmax,100,0,1);
1856 fhFractionCellOutConePhi->SetYTitle("#it{fraction}");
1857 fhFractionCellOutConePhi->SetXTitle("#it{p}_{T,trigger} (GeV/#it{c})");
1858 outputContainer->Add(fhFractionCellOutConePhi) ;
1859
1860 fhFractionCellOutConePhiTrigEtaPhi = new TH2F("hFractionCellOutConePhiTrigEtaPhi",
1861 Form("Fraction of the isolation cone #it{R} = %2.2f, out of cells #phi acceptance, in trigger #eta-#phi ",r),
1862 netabins,etamin,etamax,nphibins,phimin,phimax);
1863 fhFractionCellOutConePhiTrigEtaPhi->SetZTitle("#it{fraction}");
1864 fhFractionCellOutConePhiTrigEtaPhi->SetXTitle("#eta_{trigger}");
1865 fhFractionCellOutConePhiTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1866 outputContainer->Add(fhFractionCellOutConePhiTrigEtaPhi) ;
1867
1868
1869 fhConeSumPtSubvsConeSumPtTotPhiCell = new TH2F("hConeSumPtSubvsConeSumPtTotPhiCell",
1870 Form("#Sigma #it{p}_{T} in cone after bkg sub from #phi band vs #Sigma #it{p}_{T} in cone before bkg sub, R=%2.2f",r),
b5d10017 1871 nptsumbins,ptsummin,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
977564f5 1872 fhConeSumPtSubvsConeSumPtTotPhiCell->SetXTitle("#Sigma #it{p}_{T, tot} (GeV/#it{c})");
1873 fhConeSumPtSubvsConeSumPtTotPhiCell->SetYTitle("#Sigma #it{p}_{T, sub} (GeV/#it{c})");
1874 outputContainer->Add(fhConeSumPtSubvsConeSumPtTotPhiCell);
1875
1876 fhConeSumPtSubNormvsConeSumPtTotPhiCell = new TH2F("hConeSumPtSubNormvsConeSumPtTotPhiCell",
1877 Form("#Sigma #it{p}_{T, norm} in cone after bkg sub from #phi band vs #Sigma #it{p}_{T} in cone before bkg sub, R=%2.2f",r),
1878 nptsumbins,ptsummin,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
1879 fhConeSumPtSubNormvsConeSumPtTotPhiCell->SetXTitle("#Sigma #it{p}_{T, tot} (GeV/#it{c})");
1880 fhConeSumPtSubNormvsConeSumPtTotPhiCell->SetYTitle("#Sigma #it{p}_{T, sub norm} (GeV/#it{c})");
1881 outputContainer->Add(fhConeSumPtSubNormvsConeSumPtTotPhiCell);
1882
1883 fhConeSumPtSubvsConeSumPtTotEtaCell = new TH2F("hConeSumPtSubvsConeSumPtTotEtaCell",
1884 Form("#Sigma #it{p}_{T} in cone after bkg sub from #eta band vs #Sigma #it{p}_{T} in cone before bkg sub, R=%2.2f",r),
b5d10017 1885 nptsumbins,ptsummin,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
977564f5 1886 fhConeSumPtSubvsConeSumPtTotEtaCell->SetXTitle("#Sigma #it{p}_{T, tot} (GeV/#it{c})");
1887 fhConeSumPtSubvsConeSumPtTotEtaCell->SetYTitle("#Sigma #it{p}_{T, sub} (GeV/#it{c})");
1888 outputContainer->Add(fhConeSumPtSubvsConeSumPtTotEtaCell);
1889
1890 fhConeSumPtSubNormvsConeSumPtTotEtaCell = new TH2F("hConeSumPtSubNormvsConeSumPtTotEtaCell",
1891 Form("#Sigma #it{p}_{T, norm} in cone after bkg sub from #eta band vs #Sigma #it{p}_{T} in cone before bkg sub, R=%2.2f",r),
1892 nptsumbins,ptsummin,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
1893 fhConeSumPtSubNormvsConeSumPtTotEtaCell->SetXTitle("#Sigma #it{p}_{T, tot} (GeV/#it{c})");
1894 fhConeSumPtSubNormvsConeSumPtTotEtaCell->SetYTitle("#Sigma #it{p}_{T, sub norm} (GeV/#it{c})");
1895 outputContainer->Add(fhConeSumPtSubNormvsConeSumPtTotEtaCell);
1896 }
1897 }
72433939 1898 }
1899
1900 // Track only histograms
1901 if(GetIsolationCut()->GetParticleTypeInCone()!=AliIsolationCut::kOnlyNeutral)
1902 {
1903 fhConeSumPtTrack = new TH2F("hConePtSumTrack",
9a97f32f 1904 Form("Track #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f",r),
72433939 1905 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 1906 fhConeSumPtTrack->SetYTitle("#Sigma #it{p}_{T}");
9a97f32f 1907 fhConeSumPtTrack->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
72433939 1908 outputContainer->Add(fhConeSumPtTrack) ;
1909
72433939 1910 fhPtTrackInCone = new TH2F("hPtTrackInCone",
9a97f32f 1911 Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f",r),
72433939 1912 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
9a97f32f 1913 fhPtTrackInCone->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
dc9c6e78 1914 fhPtTrackInCone->SetXTitle("#it{p}_{T} (GeV/#it{c})");
72433939 1915 outputContainer->Add(fhPtTrackInCone) ;
977564f5 1916
72433939 1917
977564f5 1918 if(fFillUEBandSubtractHistograms)
1919 {
1920 fhConeSumPtEtaBandUETrack = new TH2F("hConePtSumEtaBandUETrack",
1921 "#Sigma track #it{p}_{T} in UE Eta Band",
1922 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1923 fhConeSumPtEtaBandUETrack->SetYTitle("#Sigma #it{p}_{T}");
1924 fhConeSumPtEtaBandUETrack->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
1925 outputContainer->Add(fhConeSumPtEtaBandUETrack) ;
1926
1927 fhConeSumPtPhiBandUETrack = new TH2F("hConePtSumPhiBandUETrack",
1928 "#Sigma track #it{p}_{T} in UE Phi Band",
1929 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax*8);
1930 fhConeSumPtPhiBandUETrack->SetYTitle("#Sigma #it{p}_{T}");
1931 fhConeSumPtPhiBandUETrack->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
1932 outputContainer->Add(fhConeSumPtPhiBandUETrack) ;
1933
1934
1935 fhConeSumPtEtaBandUETrackTrigEtaPhi = new TH2F("hConePtSumEtaBandUETrackTrigEtaPhi",
1936 "Trigger #eta vs #phi, #Sigma track #it{p}_{T} in UE Eta Band",
1937 netabins,etamin,etamax,nphibins,phimin,phimax);
1938 fhConeSumPtEtaBandUETrackTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
1939 fhConeSumPtEtaBandUETrackTrigEtaPhi->SetXTitle("#eta_{trigger}");
1940 fhConeSumPtEtaBandUETrackTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1941 outputContainer->Add(fhConeSumPtEtaBandUETrackTrigEtaPhi) ;
1942
1943 fhConeSumPtPhiBandUETrackTrigEtaPhi = new TH2F("hConePtSumPhiBandUETrackTrigEtaPhi",
1944 "Trigger #eta vs #phi, #Sigma track #it{p}_{T} in UE Phi Band",
1945 netabins,etamin,etamax,nphibins,phimin,phimax);
1946 fhConeSumPtPhiBandUETrackTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
1947 fhConeSumPtPhiBandUETrackTrigEtaPhi->SetXTitle("#eta_{trigger}");
1948 fhConeSumPtPhiBandUETrackTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1949 outputContainer->Add(fhConeSumPtPhiBandUETrackTrigEtaPhi) ;
1950
1951 fhEtaBandTrack = new TH2F("hEtaBandTrack",
1952 Form("#eta vs #phi of tracks in #eta band isolation cone for #it{R} = %2.2f",r),
1953 netabins,-1,1,nphibins,0,TMath::TwoPi());
1954 fhEtaBandTrack->SetXTitle("#eta");
1955 fhEtaBandTrack->SetYTitle("#phi");
1956 outputContainer->Add(fhEtaBandTrack) ;
1957
1958 fhPhiBandTrack = new TH2F("hPhiBandTrack",
1959 Form("#eta vs #phi of tracks in #phi band isolation cone for #it{R} = %2.2f",r),
1960 netabins,-1,1,nphibins,0,TMath::TwoPi());
1961 fhPhiBandTrack->SetXTitle("#eta");
1962 fhPhiBandTrack->SetYTitle("#phi");
1963 outputContainer->Add(fhPhiBandTrack) ;
1964
1965 fhConeSumPtEtaUESubTrack = new TH2F("hConeSumPtEtaUESubTrack",
1966 Form("Tracks #Sigma #it{p}_{T} after bkg subtraction from eta band in the isolation cone for #it{R} = %2.2f",r),
1967 nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
1968 fhConeSumPtEtaUESubTrack->SetYTitle("#Sigma #it{p}_{T}");
1969 fhConeSumPtEtaUESubTrack->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1970 outputContainer->Add(fhConeSumPtEtaUESubTrack) ;
1971
1972 fhConeSumPtPhiUESubTrack = new TH2F("hConeSumPtPhiUESubTrack",
1973 Form("Tracks #Sigma #it{p}_{T} after bkg subtraction from phi band in the isolation cone for #it{R} = %2.2f",r),
1974 nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
1975 fhConeSumPtPhiUESubTrack->SetYTitle("#Sigma #it{p}_{T}");
1976 fhConeSumPtPhiUESubTrack->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1977 outputContainer->Add(fhConeSumPtPhiUESubTrack) ;
1978
1979 fhConeSumPtEtaUESubTrackTrigEtaPhi = new TH2F("hConeSumPtEtaUESubTrackTrigEtaPhi",
1980 Form("Trigger #eta vs #phi, Tracks #Sigma #it{p}_{T} after bkg subtraction from eta band in the isolation cone for #it{R} = %2.2f",r),
1981 netabins,etamin,etamax,nphibins,phimin,phimax);
1982 fhConeSumPtEtaUESubTrackTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
1983 fhConeSumPtEtaUESubTrackTrigEtaPhi->SetXTitle("#eta_{trigger}");
1984 fhConeSumPtEtaUESubTrackTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1985 outputContainer->Add(fhConeSumPtEtaUESubTrackTrigEtaPhi) ;
1986
1987 fhConeSumPtPhiUESubTrackTrigEtaPhi = new TH2F("hConeSumPtPhiUESubTrackTrigEtaPhi",
1988 Form("Trigger #eta vs #phi, Tracks #Sigma #it{p}_{T} after bkg subtraction from phi band in the isolation cone for #it{R} = %2.2f",r),
1989 netabins,etamin,etamax,nphibins,phimin,phimax);
1990 fhConeSumPtPhiUESubTrackTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
1991 fhConeSumPtPhiUESubTrackTrigEtaPhi->SetXTitle("#eta_{trigger}");
1992 fhConeSumPtPhiUESubTrackTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
1993 outputContainer->Add(fhConeSumPtPhiUESubTrackTrigEtaPhi) ;
1994
1995 fhFractionTrackOutConeEta = new TH2F("hFractionTrackOutConeEta",
1996 Form("Fraction of the isolation cone #it{R} = %2.2f, out of tracks #eta acceptance",r),
1997 nptbins,ptmin,ptmax,100,0,1);
1998 fhFractionTrackOutConeEta->SetYTitle("#it{fraction}");
1999 fhFractionTrackOutConeEta->SetXTitle("#it{p}_{T,trigger} (GeV/#it{c})");
2000 outputContainer->Add(fhFractionTrackOutConeEta) ;
2001
2002 fhFractionTrackOutConeEtaTrigEtaPhi = new TH2F("hFractionTrackOutConeEtaTrigEtaPhi",
2003 Form("Fraction of the isolation cone #it{R} = %2.2f, out of tracks #eta acceptance, in trigger #eta-#phi ",r),
2004 netabins,etamin,etamax,nphibins,phimin,phimax);
2005 fhFractionTrackOutConeEtaTrigEtaPhi->SetZTitle("#it{fraction}");
2006 fhFractionTrackOutConeEtaTrigEtaPhi->SetXTitle("#eta_{trigger}");
2007 fhFractionTrackOutConeEtaTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
2008 outputContainer->Add(fhFractionTrackOutConeEtaTrigEtaPhi) ;
2009
2010 fhConeSumPtSubvsConeSumPtTotPhiTrack = new TH2F("hConeSumPtSubvsConeSumPtTotPhiTrack",
2011 Form("#Sigma #it{p}_{T} in cone after bkg sub from #phi band vs #Sigma #it{p}_{T} in cone before bkg sub, R=%2.2f",r),
2012 nptsumbins,ptsummin,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
2013 fhConeSumPtSubvsConeSumPtTotPhiTrack->SetXTitle("#Sigma #it{p}_{T, tot} (GeV/#it{c})");
2014 fhConeSumPtSubvsConeSumPtTotPhiTrack->SetYTitle("#Sigma #it{p}_{T, sub} (GeV/#it{c})");
2015 outputContainer->Add(fhConeSumPtSubvsConeSumPtTotPhiTrack);
2016
2017 fhConeSumPtSubNormvsConeSumPtTotPhiTrack = new TH2F("hConeSumPtSubNormvsConeSumPtTotPhiTrack",
2018 Form("#Sigma #it{p}_{T, norm} in cone after bkg sub from #phi band vs #Sigma #it{p}_{T} in cone before bkg sub, R=%2.2f",r),
2019 nptsumbins,ptsummin,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
2020 fhConeSumPtSubNormvsConeSumPtTotPhiTrack->SetXTitle("#Sigma #it{p}_{T, tot} (GeV/#it{c})");
2021 fhConeSumPtSubNormvsConeSumPtTotPhiTrack->SetYTitle("#Sigma #it{p}_{T, sub norm} (GeV/#it{c})");
2022 outputContainer->Add(fhConeSumPtSubNormvsConeSumPtTotPhiTrack);
2023
2024 fhConeSumPtSubvsConeSumPtTotEtaTrack = new TH2F("hConeSumPtSubvsConeSumPtTotEtaTrack",
2025 Form("#Sigma #it{p}_{T} in cone after bkg sub from #eta band vs #Sigma #it{p}_{T} in cone before bkg sub, R=%2.2f",r),
2026 nptsumbins,ptsummin,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
2027 fhConeSumPtSubvsConeSumPtTotEtaTrack->SetXTitle("#Sigma #it{p}_{T, tot} (GeV/#it{c})");
2028 fhConeSumPtSubvsConeSumPtTotEtaTrack->SetYTitle("#Sigma #it{p}_{T, sub} (GeV/#it{c})");
2029 outputContainer->Add(fhConeSumPtSubvsConeSumPtTotEtaTrack);
2030
2031 fhConeSumPtSubNormvsConeSumPtTotEtaTrack = new TH2F("hConeSumPtSubNormvsConeSumPtTotEtaTrack",
2032 Form("#Sigma #it{p}_{T, norm} in cone after bkg sub from #eta band vs #Sigma #it{p}_{T} in cone before bkg sub, R=%2.2f",r),
2033 nptsumbins,ptsummin,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
2034 fhConeSumPtSubNormvsConeSumPtTotEtaTrack->SetXTitle("#Sigma #it{p}_{T, tot} (GeV/#it{c})");
2035 fhConeSumPtSubNormvsConeSumPtTotEtaTrack->SetYTitle("#Sigma #it{p}_{T, sub norm} (GeV/#it{c})");
2036 outputContainer->Add(fhConeSumPtSubNormvsConeSumPtTotEtaTrack);
2037
2038
2039 // UE in perpendicular cone
2040 fhPerpConeSumPt = new TH2F("hPerpConePtSum",
2041 Form("#Sigma #it{p}_{T} in isolation cone at #pm 45 degree phi from trigger particle, #it{R} = %2.2f",r),
2042 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
2043 fhPerpConeSumPt->SetYTitle("#Sigma #it{p}_{T}");
2044 fhPerpConeSumPt->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2045 outputContainer->Add(fhPerpConeSumPt) ;
2046
2047 fhPtInPerpCone = new TH2F("hPtInPerpCone",
2048 Form("#it{p}_{T} in isolation cone at #pm 45 degree phi from trigger particle, #it{R} = %2.2f",r),
2049 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
2050 fhPtInPerpCone->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
2051 fhPtInPerpCone->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2052 outputContainer->Add(fhPtInPerpCone) ;
2053
2054 fhEtaPhiTrack= new TH2F("hEtaPhiTrack",
2055 Form("#eta vs #phi of all Tracks"),
2056 netabins,-1,1,nphibins,0,TMath::TwoPi());
2057 fhEtaPhiTrack->SetXTitle("#eta");
2058 fhEtaPhiTrack->SetYTitle("#phi");
2059 outputContainer->Add(fhEtaPhiTrack) ;
2060
2061 fhEtaPhiInConeTrack= new TH2F("hEtaPhiInConeTrack",
2062 Form("#eta vs #phi of Tracks in cone for #it{R} = %2.2f",r),
2063 netabins,-1,1,nphibins,0,TMath::TwoPi());
2064 fhEtaPhiInConeTrack->SetXTitle("#eta");
2065 fhEtaPhiInConeTrack->SetYTitle("#phi");
2066 outputContainer->Add(fhEtaPhiInConeTrack) ;
2067
2068 fhConeSumPtVSUETracksEtaBand = new TH2F("hConeSumPtVSUETracksEtaBand",
2069 Form("#Sigma #it{p}_{T} in cone versus #Sigma #it{p}_{T} in eta band for tracks (before normalization), R=%2.2f",r),
2070 nptsumbins,ptsummin,ptsummax,2*nptsumbins,ptsummin,2*ptsummax);
2071 fhConeSumPtVSUETracksEtaBand->SetXTitle("#Sigma #it{p}_{T} cone (GeV/#it{c})");
2072 fhConeSumPtVSUETracksEtaBand->SetYTitle("#Sigma #it{p}_{T} UE (GeV/#it{c})");
2073 outputContainer->Add(fhConeSumPtVSUETracksEtaBand);
2074
2075 fhConeSumPtVSUETracksPhiBand = new TH2F("hConeSumPtVSUETracksPhiBand",
2076 Form("#Sigma #it{p}_{T} in cone versus #Sigma #it{p}_{T} in phi band for tracks (before normalization), R=%2.2f",r),
2077 nptsumbins,ptsummin,ptsummax,8*nptsumbins,ptsummin,8*ptsummax);
2078 fhConeSumPtVSUETracksPhiBand->SetXTitle("#Sigma #it{p}_{T} cone (GeV/#it{c})");
2079 fhConeSumPtVSUETracksPhiBand->SetYTitle("#Sigma #it{p}_{T} UE (GeV/#it{c})");
2080 outputContainer->Add(fhConeSumPtVSUETracksPhiBand);
2081 }
72433939 2082 }
2083
977564f5 2084 if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
72433939 2085 {
72433939 2086 fhConeSumPtClustervsTrack = new TH2F("hConePtSumClustervsTrack",
9a97f32f 2087 Form("Track vs Cluster #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f",r),
72433939 2088 nptsumbins,ptsummin,ptsummax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 2089 fhConeSumPtClustervsTrack->SetXTitle("#Sigma #it{p}_{T} cluster");
2090 fhConeSumPtClustervsTrack->SetYTitle("#Sigma #it{p}_{T} track");
72433939 2091 outputContainer->Add(fhConeSumPtClustervsTrack) ;
2092
977564f5 2093 if(fFillCellHistograms)
2094 {
2095 fhConeSumPtCellvsTrack = new TH2F("hConePtSumCellvsTrack",
2096 Form("Track vs cell #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f",r),
2097 nptsumbins,ptsummin,ptsummax,nptsumbins,ptsummin,ptsummax);
2098 fhConeSumPtCellvsTrack->SetXTitle("#Sigma #it{p}_{T} cell");
2099 fhConeSumPtCellvsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2100 outputContainer->Add(fhConeSumPtCellvsTrack) ;
2101
2102 fhConeSumPtCellTrack = new TH2F("hConePtSumCellTrack",
2103 Form("Track and Cell #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f",r),
2104 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
2105 fhConeSumPtCellTrack->SetYTitle("#Sigma #it{p}_{T}");
2106 fhConeSumPtCellTrack->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
2107 outputContainer->Add(fhConeSumPtCellTrack) ;
2108
2109 fhConeSumPtCellTrackTrigEtaPhi = new TH2F("hConePtSumCellTrackTrigEtaPhi",
2110 Form("Trigger #eta vs #phi, #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f",r),
2111 netabins,etamin,etamax,nphibins,phimin,phimax);
2112 fhConeSumPtCellTrackTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
2113 fhConeSumPtCellTrackTrigEtaPhi->SetXTitle("#eta_{trigger}");
2114 fhConeSumPtCellTrackTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
2115 outputContainer->Add(fhConeSumPtCellTrackTrigEtaPhi) ;
2116
2117 }
9b01dc66 2118
977564f5 2119
2120 if(fFillUEBandSubtractHistograms)
2121 {
2122 fhConeSumPtEtaUESub = new TH2F("hConeSumPtEtaUESub",
2123 Form("#Sigma #it{p}_{T} after bkg subtraction from eta band in the isolation cone for #it{R} = %2.2f",r),
2124 nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
2125 fhConeSumPtEtaUESub->SetYTitle("#Sigma #it{p}_{T}");
2126 fhConeSumPtEtaUESub->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2127 outputContainer->Add(fhConeSumPtEtaUESub) ;
2128
2129 fhConeSumPtPhiUESub = new TH2F("hConeSumPtPhiUESub",
2130 Form("#Sigma #it{p}_{T} after bkg subtraction from phi band in the isolation cone for #it{R} = %2.2f",r),
2131 nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
2132 fhConeSumPtPhiUESub->SetYTitle("#Sigma #it{p}_{T}");
2133 fhConeSumPtPhiUESub->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2134 outputContainer->Add(fhConeSumPtPhiUESub) ;
2135
2136 fhConeSumPtEtaUESubTrigEtaPhi = new TH2F("hConeSumPtEtaUESubTrigEtaPhi",
2137 Form("Trigger #eta vs #phi, #Sigma #it{p}_{T} after bkg subtraction from eta band in the isolation cone for #it{R} = %2.2f",r),
2138 netabins,etamin,etamax,nphibins,phimin,phimax);
2139 fhConeSumPtEtaUESubTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
2140 fhConeSumPtEtaUESubTrigEtaPhi->SetXTitle("#eta_{trigger}");
2141 fhConeSumPtEtaUESubTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
2142 outputContainer->Add(fhConeSumPtEtaUESubTrigEtaPhi) ;
2143
2144 fhConeSumPtPhiUESubTrigEtaPhi = new TH2F("hConeSumPtPhiUESubTrigEtaPhi",
2145 Form("Trigger #eta vs #phi, #Sigma #it{p}_{T} after bkg subtraction from phi band in the isolation cone for #it{R} = %2.2f",r),
2146 netabins,etamin,etamax,nphibins,phimin,phimax);
2147 fhConeSumPtPhiUESubTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
2148 fhConeSumPtPhiUESubTrigEtaPhi->SetXTitle("#eta_{trigger}");
2149 fhConeSumPtPhiUESubTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
2150 outputContainer->Add(fhConeSumPtPhiUESubTrigEtaPhi) ;
2151
2152 fhConeSumPtEtaUESubClustervsTrack = new TH2F("hConePtSumEtaUESubClustervsTrack",
2153 Form("Track vs Cluster #Sigma #it{p}_{T} UE sub eta band in isolation cone for #it{R} = %2.2f",r),
2154 2*nptsumbins,-ptsummax,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
2155 fhConeSumPtEtaUESubClustervsTrack->SetXTitle("#Sigma #it{p}_{T} cluster");
2156 fhConeSumPtEtaUESubClustervsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2157 outputContainer->Add(fhConeSumPtEtaUESubClustervsTrack) ;
2158
2159 fhConeSumPtPhiUESubClustervsTrack = new TH2F("hConePhiUESubPtSumClustervsTrack",
2160 Form("Track vs Cluster #Sigma #it{p}_{T} UE sub phi band in isolation cone for #it{R} = %2.2f",r),
2161 2*nptsumbins,-ptsummax,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
2162 fhConeSumPtPhiUESubClustervsTrack->SetXTitle("#Sigma #it{p}_{T} cluster");
2163 fhConeSumPtPhiUESubClustervsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2164 outputContainer->Add(fhConeSumPtPhiUESubClustervsTrack) ;
2165
2166 fhEtaBandClustervsTrack = new TH2F("hEtaBandClustervsTrack",
2167 Form("Track vs Cluster #Sigma #it{p}_{T} in Eta band in isolation cone for #it{R} = %2.2f",r),
9b01dc66 2168 nptsumbins,ptsummin,ptsummax,nptsumbins,ptsummin,ptsummax);
977564f5 2169 fhEtaBandClustervsTrack->SetXTitle("#Sigma #it{p}_{T} cluster");
2170 fhEtaBandClustervsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2171 outputContainer->Add(fhEtaBandClustervsTrack) ;
2172
2173 fhPhiBandClustervsTrack = new TH2F("hPhiBandClustervsTrack",
2174 Form("Track vs Cluster #Sigma #it{p}_{T} in Phi band in isolation cone for #it{R} = %2.2f",r),
2175 nptsumbins,ptsummin,ptsummax*4,nptsumbins,ptsummin,ptsummax*8);
2176 fhPhiBandClustervsTrack->SetXTitle("#Sigma #it{p}_{T} cluster");
2177 fhPhiBandClustervsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2178 outputContainer->Add(fhPhiBandClustervsTrack) ;
2179
2180 fhEtaBandNormClustervsTrack = new TH2F("hEtaBandNormClustervsTrack",
2181 Form("Track vs Cluster #Sigma #it{p}_{T} in Eta band in isolation cone for #it{R} = %2.2f",r),
2182 nptsumbins,ptsummin,ptsummax,nptsumbins,ptsummin,ptsummax);
2183 fhEtaBandNormClustervsTrack->SetXTitle("#Sigma #it{p}_{T} cluster");
2184 fhEtaBandNormClustervsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2185 outputContainer->Add(fhEtaBandNormClustervsTrack) ;
2186
2187 fhPhiBandNormClustervsTrack = new TH2F("hPhiBandNormClustervsTrack",
2188 Form("Track vs Cluster #Sigma #it{p}_{T} in Phi band in isolation cone for #it{R} = %2.2f",r),
2189 nptsumbins,ptsummin,ptsummax,nptsumbins,ptsummin,ptsummax);
2190 fhPhiBandNormClustervsTrack->SetXTitle("#Sigma #it{p}_{T} cluster");
2191 fhPhiBandNormClustervsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2192 outputContainer->Add(fhPhiBandNormClustervsTrack) ;
2193
2194 fhConeSumPtEtaUESubClustervsTrack = new TH2F("hConePtSumEtaUESubClustervsTrack",
2195 Form("Track vs Cluster #Sigma #it{p}_{T} UE sub eta band in isolation cone for #it{R} = %2.2f",r),
2196 2*nptsumbins,-ptsummax,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
2197 fhConeSumPtEtaUESubClustervsTrack->SetXTitle("#Sigma #it{p}_{T} cluster");
2198 fhConeSumPtEtaUESubClustervsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2199 outputContainer->Add(fhConeSumPtEtaUESubClustervsTrack) ;
2200
2201 fhConeSumPtPhiUESubClustervsTrack = new TH2F("hConePhiUESubPtSumClustervsTrack",
2202 Form("Track vs Cluster #Sigma #it{p}_{T} UE sub phi band in isolation cone for #it{R} = %2.2f",r),
2203 2*nptsumbins,-ptsummax,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
2204 fhConeSumPtPhiUESubClustervsTrack->SetXTitle("#Sigma #it{p}_{T} cluster");
2205 fhConeSumPtPhiUESubClustervsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2206 outputContainer->Add(fhConeSumPtPhiUESubClustervsTrack) ;
2207
2208 if(fFillCellHistograms)
2209 {
2210
2211 fhConeSumPtEtaUESubCellvsTrack = new TH2F("hConePtSumEtaUESubCellvsTrack",
2212 Form("Track vs Cell #Sigma #it{p}_{T} UE sub eta band in isolation cone for #it{R} = %2.2f",r),
2213 2*nptsumbins,-ptsummax,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
2214 fhConeSumPtEtaUESubCellvsTrack->SetXTitle("#Sigma #it{p}_{T} cell");
2215 fhConeSumPtEtaUESubCellvsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2216 outputContainer->Add(fhConeSumPtEtaUESubCellvsTrack) ;
2217
2218 fhConeSumPtPhiUESubCellvsTrack = new TH2F("hConePhiUESubPtSumCellvsTrack",
2219 Form("Track vs Cell #Sigma #it{p}_{T} UE sub phi band in isolation cone for #it{R} = %2.2f",r),
2220 2*nptsumbins,-ptsummax,ptsummax,2*nptsumbins,-ptsummax,ptsummax);
2221 fhConeSumPtPhiUESubCellvsTrack->SetXTitle("#Sigma #it{p}_{T} cell");
2222 fhConeSumPtPhiUESubCellvsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2223 outputContainer->Add(fhConeSumPtPhiUESubCellvsTrack) ;
2224
2225 fhEtaBandCellvsTrack = new TH2F("hEtaBandCellvsTrack",
7726e3a3 2226 Form("Track vs Cell #Sigma #it{p}_{T} in Eta band in isolation cone for #it{R} = %2.2f",r),
9b01dc66 2227 nptsumbins,ptsummin,ptsummax,nptsumbins,ptsummin,ptsummax);
977564f5 2228 fhEtaBandCellvsTrack->SetXTitle("#Sigma #it{p}_{T} cell");
2229 fhEtaBandCellvsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2230 outputContainer->Add(fhEtaBandCellvsTrack) ;
2231
2232 fhPhiBandCellvsTrack = new TH2F("hPhiBandCellvsTrack",
7726e3a3 2233 Form("Track vs Cell #Sigma #it{p}_{T} in Phi band in isolation cone for #it{R} = %2.2f",r),
977564f5 2234 nptsumbins,ptsummin,ptsummax*4,nptsumbins,ptsummin,ptsummax*8);
2235 fhPhiBandCellvsTrack->SetXTitle("#Sigma #it{p}_{T} cell");
2236 fhPhiBandCellvsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2237 outputContainer->Add(fhPhiBandCellvsTrack) ;
2238
2239 fhEtaBandNormCellvsTrack = new TH2F("hEtaBandNormCellvsTrack",
2240 Form("Track vs Cell #Sigma #it{p}_{T} in Eta band in isolation cone for #it{R} = %2.2f",r),
2241 nptsumbins,ptsummin,ptsummax,nptsumbins,ptsummin,ptsummax);
2242 fhEtaBandNormCellvsTrack->SetXTitle("#Sigma #it{p}_{T} cell");
2243 fhEtaBandNormCellvsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2244 outputContainer->Add(fhEtaBandNormCellvsTrack) ;
2245
2246 fhPhiBandNormCellvsTrack = new TH2F("hPhiBandNormCellvsTrack",
2247 Form("Track vs Cell #Sigma #it{p}_{T} in Phi band in isolation cone for #it{R} = %2.2f",r),
2248 nptsumbins,ptsummin,ptsummax,nptsumbins,ptsummin,ptsummax);
2249 fhPhiBandNormCellvsTrack->SetXTitle("#Sigma #it{p}_{T} cell");
2250 fhPhiBandNormCellvsTrack->SetYTitle("#Sigma #it{p}_{T} track");
2251 outputContainer->Add(fhPhiBandNormCellvsTrack) ;
2252
2253 fhConeSumPtEtaUESubTrackCell = new TH2F("hConeSumPtEtaUESubTrackCell",
2254 Form("Tracks #Sigma #it{p}_{T} after bkg subtraction from eta band in the isolation cone for #it{R} = %2.2f",r),
2255 nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
2256 fhConeSumPtEtaUESubTrackCell->SetYTitle("#Sigma #it{p}_{T}");
2257 fhConeSumPtEtaUESubTrackCell->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2258 outputContainer->Add(fhConeSumPtEtaUESubTrackCell) ;
2259
2260 fhConeSumPtPhiUESubTrackCell = new TH2F("hConeSumPtPhiUESubTrackCell",
2261 Form("Tracks #Sigma #it{p}_{T} after bkg subtraction from phi band in the isolation cone for #it{R} = %2.2f",r),
2262 nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
2263 fhConeSumPtPhiUESubTrackCell->SetYTitle("#Sigma #it{p}_{T}");
2264 fhConeSumPtPhiUESubTrackCell->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2265 outputContainer->Add(fhConeSumPtPhiUESubTrackCell) ;
2266
2267 fhConeSumPtEtaUESubTrackCellTrigEtaPhi = new TH2F("hConeSumPtEtaUESubTrackCellTrigEtaPhi",
2268 Form("Trigger #eta vs #phi, Tracks #Sigma #it{p}_{T} after bkg subtraction from eta band in the isolation cone for #it{R} = %2.2f",r),
2269 netabins,etamin,etamax,nphibins,phimin,phimax);
2270 fhConeSumPtEtaUESubTrackCellTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
2271 fhConeSumPtEtaUESubTrackCellTrigEtaPhi->SetXTitle("#eta_{trigger}");
2272 fhConeSumPtEtaUESubTrackCellTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
2273 outputContainer->Add(fhConeSumPtEtaUESubTrackCellTrigEtaPhi) ;
2274
2275 fhConeSumPtPhiUESubTrackCellTrigEtaPhi = new TH2F("hConeSumPtPhiUESubTrackCellTrigEtaPhi",
2276 Form("Trigger #eta vs #phi, Tracks #Sigma #it{p}_{T} after bkg subtraction from phi band in the isolation cone for #it{R} = %2.2f",r),
2277 netabins,etamin,etamax,nphibins,phimin,phimax);
2278 fhConeSumPtPhiUESubTrackCellTrigEtaPhi->SetZTitle("#Sigma #it{p}_{T}");
2279 fhConeSumPtPhiUESubTrackCellTrigEtaPhi->SetXTitle("#eta_{trigger}");
2280 fhConeSumPtPhiUESubTrackCellTrigEtaPhi->SetYTitle("#phi_{trigger} (rad)");
2281 outputContainer->Add(fhConeSumPtPhiUESubTrackCellTrigEtaPhi) ;
2282 }
2283 }
72433939 2284 }
977564f5 2285
ca134929 2286 for(Int_t iso = 0; iso < 2; iso++)
b5dbb99b 2287 {
ca134929 2288 if(fFillTMHisto)
31ae6d59 2289 {
ca134929 2290 fhTrackMatchedDEta[iso] = new TH2F
7726e3a3 2291 (Form("hTrackMatchedDEta%s",isoName[iso].Data()),
2292 Form("%s - d#eta of cluster-track vs cluster energy, %s",isoTitle[iso].Data(),parTitle.Data()),
72433939 2293 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
ca134929 2294 fhTrackMatchedDEta[iso]->SetYTitle("d#eta");
2295 fhTrackMatchedDEta[iso]->SetXTitle("E_{cluster} (GeV)");
2296
2297 fhTrackMatchedDPhi[iso] = new TH2F
7726e3a3 2298 (Form("hTrackMatchedDPhi%s",isoName[iso].Data()),
2299 Form("%s - d#phi of cluster-track vs cluster energy, %s",isoTitle[iso].Data(),parTitle.Data()),
72433939 2300 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
ca134929 2301 fhTrackMatchedDPhi[iso]->SetYTitle("d#phi (rad)");
2302 fhTrackMatchedDPhi[iso]->SetXTitle("E_{cluster} (GeV)");
2303
2304 fhTrackMatchedDEtaDPhi[iso] = new TH2F
7726e3a3 2305 (Form("hTrackMatchedDEtaDPhi%s",isoName[iso].Data()),
2306 Form("%s - d#eta vs d#phi of cluster-track, %s",isoTitle[iso].Data(),parTitle.Data()),
72433939 2307 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
ca134929 2308 fhTrackMatchedDEtaDPhi[iso]->SetYTitle("d#phi (rad)");
72433939 2309 fhTrackMatchedDEtaDPhi[iso]->SetXTitle("d#eta");
ca134929 2310
72433939 2311 outputContainer->Add(fhTrackMatchedDEta[iso]) ;
ca134929 2312 outputContainer->Add(fhTrackMatchedDPhi[iso]) ;
2313 outputContainer->Add(fhTrackMatchedDEtaDPhi[iso]) ;
31ae6d59 2314
ca134929 2315 fhdEdx[iso] = new TH2F
7726e3a3 2316 (Form("hdEdx%s",isoName[iso].Data()),
2317 Form("%s - Matched track <d#it{E}/d#it{x}> vs cluster #it{E}, %s",isoTitle[iso].Data(),parTitle.Data()),
72433939 2318 nptbins,ptmin,ptmax,ndedxbins, dedxmin, dedxmax);
dc9c6e78 2319 fhdEdx[iso]->SetXTitle("#it{E} (GeV)");
9a97f32f 2320 fhdEdx[iso]->SetYTitle("<d#it{E}/d#it{x}>");
72433939 2321 outputContainer->Add(fhdEdx[iso]);
31ae6d59 2322
ca134929 2323 fhEOverP[iso] = new TH2F
7726e3a3 2324 (Form("hEOverP%s",isoName[iso].Data()),
2325 Form("%s - Matched track #it{E}/#it{p} vs cluster, %s",isoTitle[iso].Data(),parTitle.Data()),
72433939 2326 nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
dc9c6e78 2327 fhEOverP[iso]->SetXTitle("#it{E} (GeV)");
9a97f32f 2328 fhEOverP[iso]->SetYTitle("#it{E}/#it{p}");
72433939 2329 outputContainer->Add(fhEOverP[iso]);
ca134929 2330
2331 if(IsDataMC())
2332 {
2333 fhTrackMatchedMCParticle[iso] = new TH2F
7726e3a3 2334 (Form("hTrackMatchedMCParticle%s",isoName[iso].Data()),
2335 Form("%s - Origin of particle vs cluster #it{E}, %s",isoTitle[iso].Data(),parTitle.Data()),
72433939 2336 nptbins,ptmin,ptmax,8,0,8);
dc9c6e78 2337 fhTrackMatchedMCParticle[iso]->SetXTitle("#it{E} (GeV)");
ca134929 2338 //fhTrackMatchedMCParticle[iso]->SetYTitle("Particle type");
2339
2340 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(1 ,"Photon");
2341 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(2 ,"Electron");
2342 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(3 ,"Meson Merged");
2343 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(4 ,"Rest");
2344 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(5 ,"Conv. Photon");
2345 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(6 ,"Conv. Electron");
2346 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(7 ,"Conv. Merged");
2347 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(8 ,"Conv. Rest");
2348
72433939 2349 outputContainer->Add(fhTrackMatchedMCParticle[iso]);
ca134929 2350 }
31ae6d59 2351 }
b5dbb99b 2352
ca134929 2353 if(fFillSSHisto)
b5dbb99b 2354 {
ca134929 2355 fhELambda0[iso] = new TH2F
7726e3a3 2356 (Form("hELambda0%s",isoName[iso].Data()),
2357 Form("%s cluster : #it{E} vs #lambda_{0}, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
ca134929 2358 fhELambda0[iso]->SetYTitle("#lambda_{0}^{2}");
dc9c6e78 2359 fhELambda0[iso]->SetXTitle("#it{E} (GeV)");
72433939 2360 outputContainer->Add(fhELambda0[iso]) ;
32d244b0 2361
2362 fhPtLambda0[iso] = new TH2F
7726e3a3 2363 (Form("hPtLambda0%s",isoName[iso].Data()),
2364 Form("%s cluster : #it{p}_{T} vs #lambda_{0}, %s",isoTitle[iso].Data(), parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
32d244b0 2365 fhPtLambda0[iso]->SetYTitle("#lambda_{0}^{2}");
dc9c6e78 2366 fhPtLambda0[iso]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
32d244b0 2367 outputContainer->Add(fhPtLambda0[iso]) ;
ca134929 2368
764ab1f4 2369 if(IsDataMC())
2370 {
32d244b0 2371 fhPtLambda0MCPhotonPrompt[iso] = new TH2F
7726e3a3 2372 (Form("hPtLambda0%s_MCPhotonPrompt",isoName[iso].Data()),
2373 Form("%s cluster : #it{p}_{T} vs #lambda_{0}: #gamma_{prompt}, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
32d244b0 2374 fhPtLambda0MCPhotonPrompt[iso]->SetYTitle("#lambda_{0}^{2}");
9a97f32f 2375 fhPtLambda0MCPhotonPrompt[iso]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
32d244b0 2376 outputContainer->Add(fhPtLambda0MCPhotonPrompt[iso]) ;
2377
2378 fhPtLambda0MCPhotonFrag[iso] = new TH2F
7726e3a3 2379 (Form("hPtLambda0%s_MCPhotonFrag",isoName[iso].Data()),
2380 Form("%s cluster : #it{p}_{T} vs #lambda_{0}: #gamma_{fragment}, %s",isoTitle[iso].Data(), parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
32d244b0 2381 fhPtLambda0MCPhotonFrag[iso]->SetYTitle("#lambda_{0}^{2}");
9a97f32f 2382 fhPtLambda0MCPhotonFrag[iso]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
32d244b0 2383 outputContainer->Add(fhPtLambda0MCPhotonFrag[iso]) ;
2384
2385
764ab1f4 2386 fhELambda0MCPhoton[iso] = new TH2F
7726e3a3 2387 (Form("hELambda0%s_MCPhoton",isoName[iso].Data()),
2388 Form("%s cluster : #it{E} vs #lambda_{0}: #gamma_{final state}, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
764ab1f4 2389 fhELambda0MCPhoton[iso]->SetYTitle("#lambda_{0}^{2}");
dc9c6e78 2390 fhELambda0MCPhoton[iso]->SetXTitle("#it{E} (GeV)");
72433939 2391 outputContainer->Add(fhELambda0MCPhoton[iso]) ;
764ab1f4 2392
2393 fhELambda0MCPi0[iso] = new TH2F
7726e3a3 2394 (Form("hELambda0%s_MCPi0",isoName[iso].Data()),
2395 Form("%s cluster : #it{E} vs #lambda_{0}: Merged #pi^{0}_{2 #gamma}, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
764ab1f4 2396 fhELambda0MCPi0[iso]->SetYTitle("#lambda_{0}^{2}");
dc9c6e78 2397 fhELambda0MCPi0[iso]->SetXTitle("#it{E} (GeV)");
72433939 2398 outputContainer->Add(fhELambda0MCPi0[iso]) ;
764ab1f4 2399
2400 fhELambda0MCPi0Decay[iso] = new TH2F
7726e3a3 2401 (Form("hELambda0%s_MCPi0Decay",isoName[iso].Data()),
2402 Form("%s cluster : #it{E} vs #lambda_{0}: #pi^{0}_{1 #gamma}, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
764ab1f4 2403 fhELambda0MCPi0Decay[iso]->SetYTitle("#lambda_{0}^{2}");
dc9c6e78 2404 fhELambda0MCPi0Decay[iso]->SetXTitle("#it{E} (GeV)");
72433939 2405 outputContainer->Add(fhELambda0MCPi0Decay[iso]) ;
764ab1f4 2406
2407 fhELambda0MCEtaDecay[iso] = new TH2F
7726e3a3 2408 (Form("hELambda0%s_MCEtaDecay",isoName[iso].Data()),
2409 Form("%s cluster : #it{E} vs #lambda_{0}: #eta_{1 #gamma}, %s",isoTitle[iso].Data(), parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
764ab1f4 2410 fhELambda0MCEtaDecay[iso]->SetYTitle("#lambda_{0}^{2}");
dc9c6e78 2411 fhELambda0MCEtaDecay[iso]->SetXTitle("#it{E} (GeV)");
72433939 2412 outputContainer->Add(fhELambda0MCEtaDecay[iso]) ;
764ab1f4 2413
2414 fhELambda0MCOtherDecay[iso] = new TH2F
7726e3a3 2415 (Form("hELambda0%s_MCOtherDecay",isoName[iso].Data()),
2416 Form("%s cluster : #it{E} vs #lambda_{0}: #gamma_{other decay}, %s",isoTitle[iso].Data(), parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
764ab1f4 2417 fhELambda0MCOtherDecay[iso]->SetYTitle("#lambda_{0}^{2}");
dc9c6e78 2418 fhELambda0MCOtherDecay[iso]->SetXTitle("#it{E} (GeV)");
72433939 2419 outputContainer->Add(fhELambda0MCOtherDecay[iso]) ;
764ab1f4 2420
2421 fhELambda0MCHadron[iso] = new TH2F
7726e3a3 2422 (Form("hELambda0%s_MCHadron",isoName[iso].Data()),
2423 Form("%s cluster : #it{E} vs #lambda_{0}: hadron, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
764ab1f4 2424 fhELambda0MCHadron[iso]->SetYTitle("#lambda_{0}^{2}");
dc9c6e78 2425 fhELambda0MCHadron[iso]->SetXTitle("#it{E} (GeV)");
72433939 2426 outputContainer->Add(fhELambda0MCHadron[iso]) ;
2427 }
764ab1f4 2428
ca134929 2429 fhELambda1[iso] = new TH2F
7726e3a3 2430 (Form("hELambda1%s",isoName[iso].Data()),
2431 Form("%s cluster: #it{E} vs #lambda_{1}, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
ca134929 2432 fhELambda1[iso]->SetYTitle("#lambda_{1}^{2}");
dc9c6e78 2433 fhELambda1[iso]->SetXTitle("#it{E} (GeV)");
db7b861a 2434 outputContainer->Add(fhELambda1[iso]) ;
ca134929 2435
977564f5 2436 if(fCalorimeter=="EMCAL" && fTRDSMCovered >= 0)
7726e3a3 2437 {
32d244b0 2438 fhPtLambda0TRD[iso] = new TH2F
7726e3a3 2439 (Form("hPtLambda0TRD%s",isoName[iso].Data()),
2440 Form("%s cluster: #it{p}_{T} vs #lambda_{0}, SM behind TRD, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
32d244b0 2441 fhPtLambda0TRD[iso]->SetYTitle("#lambda_{0}^{2}");
dc9c6e78 2442 fhPtLambda0TRD[iso]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
32d244b0 2443 outputContainer->Add(fhPtLambda0TRD[iso]) ;
2444
ca134929 2445 fhELambda0TRD[iso] = new TH2F
7726e3a3 2446 (Form("hELambda0TRD%s",isoName[iso].Data()),
2447 Form("%s cluster: #it{E} vs #lambda_{0}, SM behind TRD, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
ca134929 2448 fhELambda0TRD[iso]->SetYTitle("#lambda_{0}^{2}");
dc9c6e78 2449 fhELambda0TRD[iso]->SetXTitle("#it{E} (GeV)");
72433939 2450 outputContainer->Add(fhELambda0TRD[iso]) ;
ca134929 2451
2452 fhELambda1TRD[iso] = new TH2F
7726e3a3 2453 (Form("hELambda1TRD%s",isoName[iso].Data()),
2454 Form("%s cluster: #it{E} vs #lambda_{1}, SM behind TRD, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
ca134929 2455 fhELambda1TRD[iso]->SetYTitle("#lambda_{1}^{2}");
dc9c6e78 2456 fhELambda1TRD[iso]->SetXTitle("#it{E} (GeV)");
72433939 2457 outputContainer->Add(fhELambda1TRD[iso]) ;
ca134929 2458 }
2459
977564f5 2460 if(fFillNLMHistograms)
2461 {
2462 fhNLocMax[iso] = new TH2F
2463 (Form("hNLocMax%s",isoName[iso].Data()),
2464 Form("%s - Number of local maxima in cluster, %s",isoTitle[iso].Data(),parTitle.Data()),
2465 nptbins,ptmin,ptmax,10,0,10);
2466 fhNLocMax[iso]->SetYTitle("#it{NLM}");
2467 fhNLocMax[iso]->SetXTitle("#it{E} (GeV)");
2468 outputContainer->Add(fhNLocMax[iso]) ;
2469
2470 fhELambda0LocMax1[iso] = new TH2F
2471 (Form("hELambda0LocMax1%s",isoName[iso].Data()),
2472 Form("%s cluster (#eta) pairs: #it{E} vs #lambda_{0}, #it{NLM}=1, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2473 fhELambda0LocMax1[iso]->SetYTitle("#lambda_{0}^{2}");
2474 fhELambda0LocMax1[iso]->SetXTitle("#it{E} (GeV)");
2475 outputContainer->Add(fhELambda0LocMax1[iso]) ;
2476
2477 fhELambda1LocMax1[iso] = new TH2F
2478 (Form("hELambda1LocMax1%s",isoName[iso].Data()),
2479 Form("%s cluster (#eta) pairs: #it{E} vs #lambda_{1}, #it{NLM}=1, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2480 fhELambda1LocMax1[iso]->SetYTitle("#lambda_{1}^{2}");
2481 fhELambda1LocMax1[iso]->SetXTitle("#it{E} (GeV)");
2482 outputContainer->Add(fhELambda1LocMax1[iso]) ;
2483
2484 fhELambda0LocMax2[iso] = new TH2F
2485 (Form("hELambda0LocMax2%s",isoName[iso].Data()),
2486 Form("%s cluster (#eta) pairs: #it{E} vs #lambda_{0}, #it{NLM}=2, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2487 fhELambda0LocMax2[iso]->SetYTitle("#lambda_{0}^{2}");
2488 fhELambda0LocMax2[iso]->SetXTitle("#it{E} (GeV)");
2489 outputContainer->Add(fhELambda0LocMax2[iso]) ;
2490
2491 fhELambda1LocMax2[iso] = new TH2F
2492 (Form("hELambda1LocMax2%s",isoName[iso].Data()),
2493 Form("%s cluster (#eta) pairs: #it{E} vs #lambda_{1}, #it{NLM}=2, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2494 fhELambda1LocMax2[iso]->SetYTitle("#lambda_{1}^{2}");
2495 fhELambda1LocMax2[iso]->SetXTitle("#it{E} (GeV)");
2496 outputContainer->Add(fhELambda1LocMax2[iso]) ;
2497
2498 fhELambda0LocMaxN[iso] = new TH2F
2499 ( Form("hELambda0LocMaxN%s",isoName[iso].Data()),
2500 Form("%s cluster (#eta) pairs: #it{E} vs #lambda_{0}, #it{NLM}>2, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2501 fhELambda0LocMaxN[iso]->SetYTitle("#lambda_{0}^{2}");
2502 fhELambda0LocMaxN[iso]->SetXTitle("#it{E} (GeV)");
2503 outputContainer->Add(fhELambda0LocMaxN[iso]) ;
2504
2505 fhELambda1LocMaxN[iso] = new TH2F
2506 (Form("hELambda1LocMaxN%s",isoName[iso].Data()),
2507 Form("%s cluster (#eta) pairs: #it{E} vs #lambda_{1}, #it{NLM}>2, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2508 fhELambda1LocMaxN[iso]->SetYTitle("#lambda_{1}^{2}");
2509 fhELambda1LocMaxN[iso]->SetXTitle("#it{E} (GeV)");
2510 outputContainer->Add(fhELambda1LocMaxN[iso]) ;
2511 } // NLM
2512 } // SS histo
ca134929 2513 } // control histograms for isolated and non isolated objects
764ab1f4 2514
fedea415 2515
6c80c1bf 2516 if(fFillPileUpHistograms)
2517 {
fedea415 2518 fhPtTrackInConeOtherBC = new TH2F("hPtTrackInConeOtherBC",
9a97f32f 2519 Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC!=0",r),
fedea415 2520 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
9a97f32f 2521 fhPtTrackInConeOtherBC->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
dc9c6e78 2522 fhPtTrackInConeOtherBC->SetXTitle("#it{p}_{T} (GeV/#it{c})");
fedea415 2523 outputContainer->Add(fhPtTrackInConeOtherBC) ;
2524
2525 fhPtTrackInConeOtherBCPileUpSPD = new TH2F("hPtTrackInConeOtherBCPileUpSPD",
9a97f32f 2526 Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC!=0, pile-up from SPD",r),
72433939 2527 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
9a97f32f 2528 fhPtTrackInConeOtherBCPileUpSPD->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
dc9c6e78 2529 fhPtTrackInConeOtherBCPileUpSPD->SetXTitle("#it{p}_{T} (GeV/#it{c})");
fedea415 2530 outputContainer->Add(fhPtTrackInConeOtherBCPileUpSPD) ;
72433939 2531
2a9171b5 2532 fhPtTrackInConeBC0 = new TH2F("hPtTrackInConeBC0",
9a97f32f 2533 Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC==0",r),
72433939 2534 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
9a97f32f 2535 fhPtTrackInConeBC0->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
dc9c6e78 2536 fhPtTrackInConeBC0->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2a9171b5 2537 outputContainer->Add(fhPtTrackInConeBC0) ;
2538
cc944149 2539 fhPtTrackInConeVtxBC0 = new TH2F("hPtTrackInConeVtxBC0",
9a97f32f 2540 Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC==0",r),
72433939 2541 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
9a97f32f 2542 fhPtTrackInConeVtxBC0->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
dc9c6e78 2543 fhPtTrackInConeVtxBC0->SetXTitle("#it{p}_{T} (GeV/#it{c})");
cc944149 2544 outputContainer->Add(fhPtTrackInConeVtxBC0) ;
72433939 2545
cc944149 2546
2a9171b5 2547 fhPtTrackInConeBC0PileUpSPD = new TH2F("hPtTrackInConeBC0PileUpSPD",
9a97f32f 2548 Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC==0, pile-up from SPD",r),
72433939 2549 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
9a97f32f 2550 fhPtTrackInConeBC0PileUpSPD->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
dc9c6e78 2551 fhPtTrackInConeBC0PileUpSPD->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2a9171b5 2552 outputContainer->Add(fhPtTrackInConeBC0PileUpSPD) ;
72433939 2553
fedea415 2554
17af6e24 2555 for (Int_t i = 0; i < 7 ; i++)
2556 {
2557 fhPtInConePileUp[i] = new TH2F(Form("hPtInConePileUp%s",pileUpName[i].Data()),
9a97f32f 2558 Form("#it{p}_{T} in isolation cone for #it{R} = %2.2f, from pile-up (%s)",r,pileUpName[i].Data()),
17af6e24 2559 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
9a97f32f 2560 fhPtInConePileUp[i]->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
dc9c6e78 2561 fhPtInConePileUp[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
17af6e24 2562 outputContainer->Add(fhPtInConePileUp[i]) ;
2563 }
6c80c1bf 2564 }
2565
b5dbb99b 2566 if(IsDataMC())
2567 {
7726e3a3 2568 fhPtIsoPrompt = new TH1F
2569 ("hPtMCPrompt",Form("Number of isolated #gamma_{prompt}, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2570 fhPtIsoPrompt->SetYTitle("#it{counts}");
2571 fhPtIsoPrompt->SetXTitle("#it{p}_{T #gamma}(GeV/#it{c})");
1a31a9ab 2572 outputContainer->Add(fhPtIsoPrompt) ;
2573
2574 fhPhiIsoPrompt = new TH2F
7726e3a3 2575 ("hPhiMCPrompt",Form("Number of isolated #gamma_{prompt}, %s",parTitle.Data()),nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1a31a9ab 2576 fhPhiIsoPrompt->SetYTitle("#phi");
9a97f32f 2577 fhPhiIsoPrompt->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
1a31a9ab 2578 outputContainer->Add(fhPhiIsoPrompt) ;
2579
2580 fhEtaIsoPrompt = new TH2F
7726e3a3 2581 ("hEtaMCPrompt",Form("Number of isolated #gamma_{prompt}, %s",parTitle.Data()),nptbins,ptmin,ptmax,netabins,etamin,etamax);
1a31a9ab 2582 fhEtaIsoPrompt->SetYTitle("#eta");
9a97f32f 2583 fhEtaIsoPrompt->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
1a31a9ab 2584 outputContainer->Add(fhEtaIsoPrompt) ;
2585
7726e3a3 2586 fhPtIsoFragmentation = new TH1F
2587 ("hPtMCFragmentation",Form("Number of isolated #gamma_{fragment}, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2588 fhPtIsoFragmentation->SetYTitle("#it{counts}");
2589 fhPtIsoFragmentation->SetXTitle("#it{p}_{T #gamma}(GeV/#it{c})");
1a31a9ab 2590 outputContainer->Add(fhPtIsoFragmentation) ;
2591
2592 fhPhiIsoFragmentation = new TH2F
7726e3a3 2593 ("hPhiMCFragmentation",Form("Number of isolated #gamma_{fragment}, %s",parTitle.Data()),nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1a31a9ab 2594 fhPhiIsoFragmentation->SetYTitle("#phi");
9a97f32f 2595 fhPhiIsoFragmentation->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
1a31a9ab 2596 outputContainer->Add(fhPhiIsoFragmentation) ;
2597
2598 fhEtaIsoFragmentation = new TH2F
7726e3a3 2599 ("hEtaMCFragmentation",Form("Number of isolated #gamma_{fragment}, %s",parTitle.Data()),nptbins,ptmin,ptmax,netabins,etamin,etamax);
1a31a9ab 2600 fhEtaIsoFragmentation->SetYTitle("#eta");
9a97f32f 2601 fhEtaIsoFragmentation->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
1a31a9ab 2602 outputContainer->Add(fhEtaIsoFragmentation) ;
2603
7726e3a3 2604 fhPtIsoPi0 = new TH1F
2605 ("hPtMCPi0",Form("Number of isolated #gamma from #pi^{0} (2 #gamma), %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2606 fhPtIsoPi0->SetYTitle("#it{counts}");
2607 fhPtIsoPi0->SetXTitle("#it{p}_{T #gamma}(GeV/#it{c})");
764ab1f4 2608 outputContainer->Add(fhPtIsoPi0) ;
2609
2610 fhPhiIsoPi0 = new TH2F
7726e3a3 2611 ("hPhiMCPi0",Form("Number of isolated #gamma from #pi^{0} (2 #gamma), %s",parTitle.Data()),nptbins,ptmin,ptmax,nphibins,phimin,phimax);
764ab1f4 2612 fhPhiIsoPi0->SetYTitle("#phi");
9a97f32f 2613 fhPhiIsoPi0->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
764ab1f4 2614 outputContainer->Add(fhPhiIsoPi0) ;
2615
2616 fhEtaIsoPi0 = new TH2F
7726e3a3 2617 ("hEtaMCPi0",Form("Number of isolated #gamma from #pi^{0} (2 #gamma), %s",parTitle.Data()),nptbins,ptmin,ptmax,netabins,etamin,etamax);
764ab1f4 2618 fhEtaIsoPi0->SetYTitle("#eta");
9a97f32f 2619 fhEtaIsoPi0->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
764ab1f4 2620 outputContainer->Add(fhEtaIsoPi0) ;
2621
7726e3a3 2622 fhPtIsoPi0Decay = new TH1F
2623 ("hPtMCPi0Decay",Form("Number of isolated #gamma from #pi^{0} decay, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2624 fhPtIsoPi0Decay->SetYTitle("#it{counts}");
2625 fhPtIsoPi0Decay->SetXTitle("#it{p}_{T #gamma}(GeV/#it{c})");
1a31a9ab 2626 outputContainer->Add(fhPtIsoPi0Decay) ;
2627
2628 fhPhiIsoPi0Decay = new TH2F
7726e3a3 2629 ("hPhiMCPi0Decay",Form("Number of isolated #gamma from #pi^{0} decay, %s",parTitle.Data()),nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1a31a9ab 2630 fhPhiIsoPi0Decay->SetYTitle("#phi");
9a97f32f 2631 fhPhiIsoPi0Decay->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
1a31a9ab 2632 outputContainer->Add(fhPhiIsoPi0Decay) ;
2633
2634 fhEtaIsoPi0Decay = new TH2F
7726e3a3 2635 ("hEtaMCPi0Decay",Form("Number of isolated #gamma from #pi^{0} decay, %s",parTitle.Data()),nptbins,ptmin,ptmax,netabins,etamin,etamax);
1a31a9ab 2636 fhEtaIsoPi0Decay->SetYTitle("#eta");
9a97f32f 2637 fhEtaIsoPi0Decay->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
1a31a9ab 2638 outputContainer->Add(fhEtaIsoPi0Decay) ;
2639
7726e3a3 2640 fhPtIsoEtaDecay = new TH1F
2641 ("hPtMCEtaDecay",Form("Number of isolated #gamma from #eta decay, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2642 fhPtIsoEtaDecay->SetYTitle("#it{counts}");
2643 fhPtIsoEtaDecay->SetXTitle("#it{p}_{T #gamma}(GeV/#it{c})");
803d06a8 2644 outputContainer->Add(fhPtIsoEtaDecay) ;
2645
2646 fhPhiIsoEtaDecay = new TH2F
7726e3a3 2647 ("hPhiMCEtaDecay",Form("Number of isolated #gamma from #eta decay, %s",parTitle.Data()),nptbins,ptmin,ptmax,nphibins,phimin,phimax);
803d06a8 2648 fhPhiIsoEtaDecay->SetYTitle("#phi");
9a97f32f 2649 fhPhiIsoEtaDecay->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
803d06a8 2650 outputContainer->Add(fhPhiIsoEtaDecay) ;
2651
2652 fhEtaIsoEtaDecay = new TH2F
7726e3a3 2653 ("hEtaMCEtaDecay",Form("Number of isolated #gamma from #eta decay, %s",parTitle.Data()),nptbins,ptmin,ptmax,netabins,etamin,etamax);
803d06a8 2654 fhEtaIsoEtaDecay->SetYTitle("#eta");
9a97f32f 2655 fhEtaIsoEtaDecay->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
803d06a8 2656 outputContainer->Add(fhEtaIsoEtaDecay) ;
2657
7726e3a3 2658 fhPtIsoOtherDecay = new TH1F
2659 ("hPtMCOtherDecay",Form("Number of isolated #gamma from non-#pi^{0} decay, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2660 fhPtIsoOtherDecay->SetYTitle("#it{counts}");
2661 fhPtIsoOtherDecay->SetXTitle("#it{p}_{T #gamma}(GeV/#it{c})");
1a31a9ab 2662 outputContainer->Add(fhPtIsoOtherDecay) ;
2663
2664 fhPhiIsoOtherDecay = new TH2F
7726e3a3 2665 ("hPhiMCOtherDecay",Form("Number of isolated #gamma from non-#pi^{0} decay, %s",parTitle.Data()),nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1a31a9ab 2666 fhPhiIsoOtherDecay->SetYTitle("#phi");
9a97f32f 2667 fhPhiIsoOtherDecay->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
1a31a9ab 2668 outputContainer->Add(fhPhiIsoOtherDecay) ;
2669
2670 fhEtaIsoOtherDecay = new TH2F
7726e3a3 2671 ("hEtaMCOtherDecay",Form("Number of isolated #gamma non-#pi^{0} decay, %s",parTitle.Data()),nptbins,ptmin,ptmax,netabins,etamin,etamax);
1a31a9ab 2672 fhEtaIsoOtherDecay->SetYTitle("#eta");
9a97f32f 2673 fhEtaIsoOtherDecay->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
1a31a9ab 2674 outputContainer->Add(fhEtaIsoOtherDecay) ;
2675
764ab1f4 2676 // fhPtIsoConversion = new TH1F("hPtMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax);
9a97f32f 2677 // fhPtIsoConversion->SetYTitle("#it{counts}");
2678 // fhPtIsoConversion->SetXTitle("#it{p}_{T #gamma}(GeV/#it{c})");
764ab1f4 2679 // outputContainer->Add(fhPtIsoConversion) ;
2680 //
2681 // fhPhiIsoConversion = new TH2F
2682 // ("hPhiMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax,nphibins,phimin,phimax);
2683 // fhPhiIsoConversion->SetYTitle("#phi");
9a97f32f 2684 // fhPhiIsoConversion->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
764ab1f4 2685 // outputContainer->Add(fhPhiIsoConversion) ;
2686 //
2687 // fhEtaIsoConversion = new TH2F
2688 // ("hEtaMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax,netabins,etamin,etamax);
2689 // fhEtaIsoConversion->SetYTitle("#eta");
9a97f32f 2690 // fhEtaIsoConversion->SetXTitle("#it{p}_{T #gamma} (GeV/#it{c})");
764ab1f4 2691 // outputContainer->Add(fhEtaIsoConversion) ;
1a31a9ab 2692
7726e3a3 2693 fhPtIsoHadron = new TH1F
2694 ("hPtMCHadron",Form("Number of isolated non-#gamma particles, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2695 fhPtIsoHadron->SetYTitle("#it{counts}");
dc9c6e78 2696 fhPtIsoHadron->SetXTitle("#it{p}_{T}(GeV/#it{c})");
764ab1f4 2697 outputContainer->Add(fhPtIsoHadron) ;
1a31a9ab 2698
8736d400 2699
764ab1f4 2700 fhPhiIsoHadron = new TH2F
7726e3a3 2701 ("hPhiMCHadron",Form("Number of isolated non-#gamma particles, %s",parTitle.Data()),nptbins,ptmin,ptmax,nphibins,phimin,phimax);
764ab1f4 2702 fhPhiIsoHadron->SetYTitle("#phi");
dc9c6e78 2703 fhPhiIsoHadron->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 2704 outputContainer->Add(fhPhiIsoHadron) ;
1a31a9ab 2705
764ab1f4 2706 fhEtaIsoHadron = new TH2F
7726e3a3 2707 ("hEtaMCHadron",Form("Number of isolated non-#gamma particles, %s",parTitle.Data()),nptbins,ptmin,ptmax,netabins,etamin,etamax);
764ab1f4 2708 fhEtaIsoHadron->SetYTitle("#eta");
dc9c6e78 2709 fhEtaIsoHadron->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 2710 outputContainer->Add(fhEtaIsoHadron) ;
dc9c6e78 2711
2712
2713 TString pptype[] = { "#gamma", "#gamma_{#pi decay}","#gamma_{other decay}","hadron?",
2714 "#gamma_{prompt}","#gamma_{fragmentation}","#gamma_{ISR}"} ;
2715
2716 TString ppname[] = { "Photon","PhotonPi0Decay","PhotonOtherDecay","Hadron",
2717 "PhotonPrompt","PhotonFragmentation","PhotonISR"} ;
2718
2719 for(Int_t i = 0; i < 7; i++)
2720 {
2721 fhEPrimMC[i] = new TH1F(Form("hEPrim_MC%s",ppname[i].Data()),
7726e3a3 2722 Form("primary photon %s : #it{E}, %s",pptype[i].Data(),parTitle.Data()),
dc9c6e78 2723 nptbins,ptmin,ptmax);
2724 fhEPrimMC[i]->SetXTitle("#it{E} (GeV)");
2725 outputContainer->Add(fhEPrimMC[i]) ;
2726
2727 fhPtPrimMCiso[i] = new TH1F(Form("hPtPrim_MCiso%s",ppname[i].Data()),
7726e3a3 2728 Form("primary isolated photon %s : #it{p}_{T}, %s",pptype[i].Data(),parTitle.Data()),
dc9c6e78 2729 nptbins,ptmin,ptmax);
2730 fhPtPrimMCiso[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2731 outputContainer->Add(fhPtPrimMCiso[i]) ;
2732
2733 fhEtaPrimMC[i] = new TH2F(Form("hEtaPrim_MC%s",ppname[i].Data()),
7726e3a3 2734 Form("primary photon %s : #eta vs #it{p}_{T}, %s",pptype[i].Data(),parTitle.Data()),
dc9c6e78 2735 nptbins,ptmin,ptmax,200,-2,2);
2736 fhEtaPrimMC[i]->SetYTitle("#eta");
2737 fhEtaPrimMC[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2738 outputContainer->Add(fhEtaPrimMC[i]) ;
db4ffddf 2739
2740 fhPhiPrimMC[i] = new TH2F(Form("hPhiPrim_MC%s",ppname[i].Data()),
7726e3a3 2741 Form("primary photon %s : #phi vs #it{p}_{T}, %s",pptype[i].Data(),parTitle.Data()),
db4ffddf 2742 nptbins,ptmin,ptmax,200,0.,TMath::TwoPi());
2743 fhPhiPrimMC[i]->SetYTitle("#phi");
2744 fhPhiPrimMC[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2745 outputContainer->Add(fhPhiPrimMC[i]) ;
dc9c6e78 2746 }
1a31a9ab 2747
1a31a9ab 2748 }//Histos with MC
2749
2750 }
2751
db6fb352 2752 // Not Isolated histograms, reference histograms
2753
b1f720a7 2754 fhENoIso = new TH1F("hENoIso",
7726e3a3 2755 Form("Number of not isolated leading particles vs #it{p}_{T}, %s",parTitle.Data()),
b1f720a7 2756 nptbins,ptmin,ptmax);
9a97f32f 2757 fhENoIso->SetYTitle("#it{counts}");
dc9c6e78 2758 fhENoIso->SetXTitle("E (GeV/#it{c})");
b1f720a7 2759 outputContainer->Add(fhENoIso) ;
2760
db6fb352 2761 fhPtNoIso = new TH1F("hPtNoIso",
7726e3a3 2762 Form("Number of not isolated leading particles vs #it{p}_{T}, %s",parTitle.Data()),
db6fb352 2763 nptbins,ptmin,ptmax);
9a97f32f 2764 fhPtNoIso->SetYTitle("#it{counts}");
dc9c6e78 2765 fhPtNoIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
db6fb352 2766 outputContainer->Add(fhPtNoIso) ;
2767
977564f5 2768 if(fFillNLMHistograms)
2769 {
2770 fhPtNLocMaxNoIso = new TH2F("hPtNLocMaxNoIso",
2771 Form("Number of not isolated particles vs #it{p}_{T}, %s",parTitle.Data()),
2772 nptbins,ptmin,ptmax,10,0,10);
2773 fhPtNLocMaxNoIso->SetYTitle("#it{NLM}");
2774 fhPtNLocMaxNoIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2775 outputContainer->Add(fhPtNLocMaxNoIso) ;
2776 }
db6fb352 2777
2778 fhEtaPhiNoIso = new TH2F("hEtaPhiNoIso",
7726e3a3 2779 Form("Number of not isolated leading particles #eta vs #phi, %s",parTitle.Data()),
db6fb352 2780 netabins,etamin,etamax,nphibins,phimin,phimax);
2781 fhEtaPhiNoIso->SetXTitle("#eta");
2782 fhEtaPhiNoIso->SetYTitle("#phi");
2783 outputContainer->Add(fhEtaPhiNoIso) ;
2784
977564f5 2785 if(fFillTaggedDecayHistograms)
2786 {
2787 fhPtDecayNoIso = new TH1F("hPtDecayNoIso",
2788 Form("Number of not isolated leading pi0 decay particles vs #it{p}_{T}, %s",parTitle.Data()),
2789 nptbins,ptmin,ptmax);
2790 fhPtDecayNoIso->SetYTitle("#it{counts}");
2791 fhPtDecayNoIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2792 outputContainer->Add(fhPtDecayNoIso) ;
2793
2794 fhEtaPhiDecayNoIso = new TH2F("hEtaPhiDecayNoIso",
2795 Form("Number of not isolated leading Pi0 decay particles #eta vs #phi, %s",parTitle.Data()),
2796 netabins,etamin,etamax,nphibins,phimin,phimax);
2797 fhEtaPhiDecayNoIso->SetXTitle("#eta");
2798 fhEtaPhiDecayNoIso->SetYTitle("#phi");
2799 outputContainer->Add(fhEtaPhiDecayNoIso) ;
2800 }
44e48e82 2801
db6fb352 2802 if(IsDataMC())
2803 {
764ab1f4 2804 fhPtNoIsoPi0 = new TH1F
7726e3a3 2805 ("hPtNoIsoPi0",Form("Number of not isolated leading #gamma from #pi^{0} (2 #gamma), %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2806 fhPtNoIsoPi0->SetYTitle("#it{counts}");
dc9c6e78 2807 fhPtNoIsoPi0->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 2808 outputContainer->Add(fhPtNoIsoPi0) ;
2809
db6fb352 2810 fhPtNoIsoPi0Decay = new TH1F
7726e3a3 2811 ("hPtNoIsoPi0Decay",Form("Number of not isolated leading #gamma from #pi^{0} decay, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2812 fhPtNoIsoPi0Decay->SetYTitle("#it{counts}");
dc9c6e78 2813 fhPtNoIsoPi0Decay->SetXTitle("#it{p}_{T} (GeV/#it{c})");
db6fb352 2814 outputContainer->Add(fhPtNoIsoPi0Decay) ;
2815
2816 fhPtNoIsoEtaDecay = new TH1F
7726e3a3 2817 ("hPtNoIsoEtaDecay",Form("Number of not isolated leading #gamma from eta decay, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2818 fhPtNoIsoEtaDecay->SetYTitle("#it{counts}");
dc9c6e78 2819 fhPtNoIsoEtaDecay->SetXTitle("#it{p}_{T} (GeV/#it{c})");
db6fb352 2820 outputContainer->Add(fhPtNoIsoEtaDecay) ;
2821
2822 fhPtNoIsoOtherDecay = new TH1F
7726e3a3 2823 ("hPtNoIsoOtherDecay",Form("Number of not isolated leading #gamma from other decay, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2824 fhPtNoIsoOtherDecay->SetYTitle("#it{counts}");
dc9c6e78 2825 fhPtNoIsoOtherDecay->SetXTitle("#it{p}_{T} (GeV/#it{c})");
db6fb352 2826 outputContainer->Add(fhPtNoIsoOtherDecay) ;
2827
2828 fhPtNoIsoPrompt = new TH1F
7726e3a3 2829 ("hPtNoIsoPrompt",Form("Number of not isolated leading prompt #gamma, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2830 fhPtNoIsoPrompt->SetYTitle("#it{counts}");
dc9c6e78 2831 fhPtNoIsoPrompt->SetXTitle("#it{p}_{T} (GeV/#it{c})");
db6fb352 2832 outputContainer->Add(fhPtNoIsoPrompt) ;
2833
2834 fhPtIsoMCPhoton = new TH1F
7726e3a3 2835 ("hPtIsoMCPhoton",Form("Number of isolated leading #gamma, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2836 fhPtIsoMCPhoton->SetYTitle("#it{counts}");
dc9c6e78 2837 fhPtIsoMCPhoton->SetXTitle("#it{p}_{T} (GeV/#it{c})");
db6fb352 2838 outputContainer->Add(fhPtIsoMCPhoton) ;
2839
2840 fhPtNoIsoMCPhoton = new TH1F
7726e3a3 2841 ("hPtNoIsoMCPhoton",Form("Number of not isolated leading #gamma, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2842 fhPtNoIsoMCPhoton->SetYTitle("#it{counts}");
dc9c6e78 2843 fhPtNoIsoMCPhoton->SetXTitle("#it{p}_{T} (GeV/#it{c})");
db6fb352 2844 outputContainer->Add(fhPtNoIsoMCPhoton) ;
2845
764ab1f4 2846// fhPtNoIsoConversion = new TH1F
2847// ("hPtNoIsoConversion","Number of not isolated leading conversion #gamma",nptbins,ptmin,ptmax);
9a97f32f 2848// fhPtNoIsoConversion->SetYTitle("#it{counts}");
dc9c6e78 2849// fhPtNoIsoConversion->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 2850// outputContainer->Add(fhPtNoIsoConversion) ;
db6fb352 2851
2852 fhPtNoIsoFragmentation = new TH1F
7726e3a3 2853 ("hPtNoIsoFragmentation",Form("Number of not isolated leading fragmentation #gamma, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2854 fhPtNoIsoFragmentation->SetYTitle("#it{counts}");
dc9c6e78 2855 fhPtNoIsoFragmentation->SetXTitle("#it{p}_{T} (GeV/#it{c})");
db6fb352 2856 outputContainer->Add(fhPtNoIsoFragmentation) ;
2857
764ab1f4 2858 fhPtNoIsoHadron = new TH1F
7726e3a3 2859 ("hPtNoIsoHadron",Form("Number of not isolated leading hadrons, %s",parTitle.Data()),nptbins,ptmin,ptmax);
9a97f32f 2860 fhPtNoIsoHadron->SetYTitle("#it{counts}");
dc9c6e78 2861 fhPtNoIsoHadron->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 2862 outputContainer->Add(fhPtNoIsoHadron) ;
db6fb352 2863
2864 }//Histos with MC
2865
2866
b5dbb99b 2867 if(fMakeSeveralIC)
2868 {
1a31a9ab 2869 const Int_t buffersize = 255;
e4ef72be 2870 char name[buffersize];
2871 char title[buffersize];
2872 for(Int_t icone = 0; icone<fNCones; icone++)
44e48e82 2873 {
2874 // sum pt in cone vs. pt leading
2875 snprintf(name, buffersize,"hSumPtLeadingPt_Cone_%d",icone);
9a97f32f 2876 snprintf(title, buffersize,"#Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f",fConeSizes[icone]);
44e48e82 2877 fhSumPtLeadingPt[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 2878 fhSumPtLeadingPt[icone] ->SetYTitle("#sum_{cone}#it{p}_{T} (GeV/#it{c})");//#Sigma #it{p}_{T}
2879 fhSumPtLeadingPt[icone] ->SetXTitle("#it{p}_{T}^{leading} (GeV/#it{c})");
44e48e82 2880 outputContainer->Add(fhSumPtLeadingPt[icone]) ;
2881
2882 // pt in cone vs. pt leading
2883 snprintf(name, buffersize,"hPtLeadingPt_Cone_%d",icone);
9a97f32f 2884 snprintf(title, buffersize,"#it{p}_{T} in isolation cone for #it{R} = %2.2f",fConeSizes[icone]);
44e48e82 2885 fhPtLeadingPt[icone] = new TH2F(name, title, nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
dc9c6e78 2886 fhPtLeadingPt[icone] ->SetYTitle("#it{p}_{T}^{cone} (GeV/#it{c})");
2887 fhPtLeadingPt[icone] ->SetXTitle("#it{p}_{T}^{leading} (GeV/#it{c})");
44e48e82 2888 outputContainer->Add(fhPtLeadingPt[icone]) ;
2889
2890 // sum pt in cone vs. pt leading in the forward region (for background subtraction studies)
23130491 2891 snprintf(name, buffersize,"hPerpSumPtLeadingPt_Cone_%d",icone);
9a97f32f 2892 snprintf(title, buffersize,"#Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f",fConeSizes[icone]);
23130491 2893 fhPerpSumPtLeadingPt[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 2894 fhPerpSumPtLeadingPt[icone] ->SetYTitle("#sum_{cone}#it{p}_{T} (GeV/#it{c})");//#Sigma #it{p}_{T}
2895 fhPerpSumPtLeadingPt[icone] ->SetXTitle("#it{p}_{T}^{leading} (GeV/#it{c})");
23130491 2896 outputContainer->Add(fhPerpSumPtLeadingPt[icone]) ;
44e48e82 2897
2898 // pt in cone vs. pt leading in the forward region (for background subtraction studies)
23130491 2899 snprintf(name, buffersize,"hPerpPtLeadingPt_Cone_%d",icone);
9a97f32f 2900 snprintf(title, buffersize,"#it{p}_{T} in isolation cone for #it{R} = %2.2f",fConeSizes[icone]);
23130491 2901 fhPerpPtLeadingPt[icone] = new TH2F(name, title, nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
dc9c6e78 2902 fhPerpPtLeadingPt[icone] ->SetYTitle("#it{p}_{T}^{cone} (GeV/#it{c})");
2903 fhPerpPtLeadingPt[icone] ->SetXTitle("#it{p}_{T}^{leading} (GeV/#it{c})");
23130491 2904 outputContainer->Add(fhPerpPtLeadingPt[icone]) ;
44e48e82 2905
2906
e4ef72be 2907 if(IsDataMC())
db6fb352 2908 {
b0a31c92 2909 snprintf(name, buffersize,"hPtSumPrompt_Cone_%d",icone);
9a97f32f 2910 snprintf(title, buffersize,"Candidate Prompt cone sum #it{p}_{T} for #it{R} = %2.2f vs candidate #it{p}_{T}",fConeSizes[icone]);
b0a31c92 2911 fhPtSumIsolatedPrompt[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 2912 fhPtSumIsolatedPrompt[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2913 fhPtSumIsolatedPrompt[icone]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 2914 outputContainer->Add(fhPtSumIsolatedPrompt[icone]) ;
2915
2916 snprintf(name, buffersize,"hPtSumFragmentation_Cone_%d",icone);
9a97f32f 2917 snprintf(title, buffersize,"Candidate Fragmentation cone sum #it{p}_{T} for #it{R} = %2.2fvs candidate #it{p}_{T}",fConeSizes[icone]);
b0a31c92 2918 fhPtSumIsolatedFragmentation[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 2919 fhPtSumIsolatedFragmentation[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2920 fhPtSumIsolatedFragmentation[icone]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 2921 outputContainer->Add(fhPtSumIsolatedFragmentation[icone]) ;
2922
764ab1f4 2923 snprintf(name, buffersize,"hPtSumPi0_Cone_%d",icone);
9a97f32f 2924 snprintf(title, buffersize,"Candidate Pi0 cone sum #it{p}_{T} for #it{R} = %2.2f vs candidate #it{p}_{T}",fConeSizes[icone]);
764ab1f4 2925 fhPtSumIsolatedPi0[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 2926 fhPtSumIsolatedPi0[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2927 fhPtSumIsolatedPi0[icone]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 2928 outputContainer->Add(fhPtSumIsolatedPi0[icone]) ;
2929
b0a31c92 2930 snprintf(name, buffersize,"hPtSumPi0Decay_Cone_%d",icone);
9a97f32f 2931 snprintf(title, buffersize,"Candidate Pi0Decay cone sum #it{p}_{T} for #it{R} = %2.2f vs candidate #it{p}_{T}",fConeSizes[icone]);
b0a31c92 2932 fhPtSumIsolatedPi0Decay[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 2933 fhPtSumIsolatedPi0Decay[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2934 fhPtSumIsolatedPi0Decay[icone]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 2935 outputContainer->Add(fhPtSumIsolatedPi0Decay[icone]) ;
2936
2937 snprintf(name, buffersize,"hPtSumEtaDecay_Cone_%d",icone);
9a97f32f 2938 snprintf(title, buffersize,"Candidate EtaDecay cone sum #it{p}_{T} for #it{R} = %2.2f vs candidate #it{p}_{T}",fConeSizes[icone]);
b0a31c92 2939 fhPtSumIsolatedEtaDecay[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 2940 fhPtSumIsolatedEtaDecay[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2941 fhPtSumIsolatedEtaDecay[icone]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 2942 outputContainer->Add(fhPtSumIsolatedEtaDecay[icone]) ;
2943
2944 snprintf(name, buffersize,"hPtSumOtherDecay_Cone_%d",icone);
9a97f32f 2945 snprintf(title, buffersize,"Candidate OtherDecay cone sum #it{p}_{T} for #it{R} = %2.2f vs candidate #it{p}_{T}",fConeSizes[icone]);
b0a31c92 2946 fhPtSumIsolatedOtherDecay[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 2947 fhPtSumIsolatedOtherDecay[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2948 fhPtSumIsolatedOtherDecay[icone]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 2949 outputContainer->Add(fhPtSumIsolatedOtherDecay[icone]) ;
2950
764ab1f4 2951// snprintf(name, buffersize,"hPtSumConversion_Cone_%d",icone);
9a97f32f 2952// snprintf(title, buffersize,"Candidate Conversion cone sum #it{p}_{T} for #it{R} = %2.2f vs candidate #it{p}_{T}",fConeSizes[icone]);
764ab1f4 2953// fhPtSumIsolatedConversion[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 2954// fhPtSumIsolatedConversion[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2955// fhPtSumIsolatedConversion[icone]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 2956// outputContainer->Add(fhPtSumIsolatedConversion[icone]) ;
b0a31c92 2957
764ab1f4 2958 snprintf(name, buffersize,"hPtSumHadron_Cone_%d",icone);
9a97f32f 2959 snprintf(title, buffersize,"Candidate Hadron cone sum #it{p}_{T} for #it{R} = %2.2f vs candidate #it{p}_{T}",fConeSizes[icone]);
764ab1f4 2960 fhPtSumIsolatedHadron[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
dc9c6e78 2961 fhPtSumIsolatedHadron[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2962 fhPtSumIsolatedHadron[icone]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 2963 outputContainer->Add(fhPtSumIsolatedHadron[icone]) ;
b0a31c92 2964
e4ef72be 2965 }//Histos with MC
2966
2967 for(Int_t ipt = 0; ipt<fNPtThresFrac;ipt++)
2968 {
44e48e82 2969
b0a31c92 2970 snprintf(name, buffersize,"hPtThres_Cone_%d_Pt%d",icone,ipt);
9a97f32f 2971 snprintf(title, buffersize,"Isolated candidate #it{p}_{T} distribution for #it{R} = %2.2f and #it{p}_{T}^{th} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtThresholds[ipt]);
b0a31c92 2972 fhPtThresIsolated[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 2973 fhPtThresIsolated[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 2974 outputContainer->Add(fhPtThresIsolated[icone][ipt]) ;
2975
2976 snprintf(name, buffersize,"hPtFrac_Cone_%d_Pt%d",icone,ipt);
9a97f32f 2977 snprintf(title, buffersize,"Isolated candidate #it{p}_{T} distribution for #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
b0a31c92 2978 fhPtFracIsolated[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 2979 fhPtFracIsolated[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 2980 outputContainer->Add(fhPtFracIsolated[icone][ipt]) ;
2981
2982
2983 snprintf(name, buffersize,"hPtSum_Cone_%d_Pt%d",icone,ipt);
9a97f32f 2984 snprintf(title, buffersize,"Isolated candidate #it{p}_{T} distribution for #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
b0a31c92 2985 fhPtSumIsolated[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 2986 // fhPtSumIsolated[icone][ipt]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2987 fhPtSumIsolated[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 2988 outputContainer->Add(fhPtSumIsolated[icone][ipt]) ;
2989
2990 snprintf(name, buffersize,"hPtSumDensity_Cone_%d_Pt%d",icone,ipt);
9a97f32f 2991 snprintf(title, buffersize,"Isolated candidate #it{p}_{T} distribution for density in #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
b0a31c92 2992 fhPtSumDensityIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
dc9c6e78 2993 //fhPtSumIsolated[icone][ipt]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2994 fhPtSumDensityIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 2995 outputContainer->Add(fhPtSumDensityIso[icone][ipt]) ;
2996
2997 snprintf(name, buffersize,"hPtFracPtSum_Cone_%d_Pt%d",icone,ipt);
9a97f32f 2998 snprintf(title, buffersize,"Isolated candidate #it{p}_{T} distribution for PtFracPtSum in #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
b0a31c92 2999 fhPtFracPtSumIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
dc9c6e78 3000 //fhPtSumIsolated[icone][ipt]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
3001 fhPtFracPtSumIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3002 outputContainer->Add(fhPtFracPtSumIso[icone][ipt]) ;
3003
3004 // pt decays isolated
3005 snprintf(name, buffersize,"hPtThres_Decay_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3006 snprintf(title, buffersize,"Isolated decay candidate #it{p}_{T} distribution for #it{R} = %2.2f and #it{p}_{T}^{th} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtThresholds[ipt]);
b0a31c92 3007 fhPtPtThresDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3008 fhPtPtThresDecayIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3009 outputContainer->Add(fhPtPtThresDecayIso[icone][ipt]) ;
3010
3011 snprintf(name, buffersize,"hPtFrac_Decay_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3012 snprintf(title, buffersize,"Isolated decay candidate #it{p}_{T} distribution for #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
b0a31c92 3013 fhPtPtFracDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3014 fhPtPtFracDecayIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3015 outputContainer->Add(fhPtPtFracDecayIso[icone][ipt]) ;
3016
3017 snprintf(name, buffersize,"hPtSum_Decay_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3018 snprintf(title, buffersize,"Isolated decay candidate #it{p}_{T} distribution for #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
b0a31c92 3019 fhPtPtSumDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
dc9c6e78 3020 // fhPtPtSumDecayIso[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
3021 fhPtPtSumDecayIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3022 outputContainer->Add(fhPtPtSumDecayIso[icone][ipt]) ;
3023
3024 snprintf(name, buffersize,"hPtSumDensity_Decay_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3025 snprintf(title, buffersize,"Isolated decay candidate #it{p}_{T} distribution for density in #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
b0a31c92 3026 fhPtSumDensityDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
dc9c6e78 3027 // fhPtPtSumDecayIso[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
3028 fhPtSumDensityDecayIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3029 outputContainer->Add(fhPtSumDensityDecayIso[icone][ipt]) ;
3030
3031 snprintf(name, buffersize,"hPtFracPtSum_Decay_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3032 snprintf(title, buffersize,"Isolated decay candidate #it{p}_{T} distribution for PtFracPtSum in #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
b0a31c92 3033 fhPtFracPtSumDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
dc9c6e78 3034 // fhPtPtSumDecayIso[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
3035 fhPtFracPtSumDecayIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3036 outputContainer->Add(fhPtFracPtSumDecayIso[icone][ipt]) ;
3037
3038
3039 // eta:phi
3040 snprintf(name, buffersize,"hEtaPhiPtThres_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3041 snprintf(title, buffersize,"Isolated candidate #eta:#phi distribution for #it{R} = %2.2f and #it{p}_{T}^{th} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtThresholds[ipt]);
b0a31c92 3042 fhEtaPhiPtThresIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
3043 fhEtaPhiPtThresIso[icone][ipt]->SetXTitle("#eta");
3044 fhEtaPhiPtThresIso[icone][ipt]->SetYTitle("#phi");
3045 outputContainer->Add(fhEtaPhiPtThresIso[icone][ipt]) ;
3046
3047 snprintf(name, buffersize,"hEtaPhiPtFrac_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3048 snprintf(title, buffersize,"Isolated candidate #eta:#phi distribution for #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
b0a31c92 3049 fhEtaPhiPtFracIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
3050 fhEtaPhiPtFracIso[icone][ipt]->SetXTitle("#eta");
3051 fhEtaPhiPtFracIso[icone][ipt]->SetYTitle("#phi");
3052 outputContainer->Add(fhEtaPhiPtFracIso[icone][ipt]) ;
3053
3054 snprintf(name, buffersize,"hEtaPhiPtSum_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3055 snprintf(title, buffersize,"Isolated candidate #eta:#phi distribution for #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
b0a31c92 3056 fhEtaPhiPtSumIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
3057 fhEtaPhiPtSumIso[icone][ipt]->SetXTitle("#eta");
3058 fhEtaPhiPtSumIso[icone][ipt]->SetYTitle("#phi");
3059 outputContainer->Add(fhEtaPhiPtSumIso[icone][ipt]) ;
3060
3061 snprintf(name, buffersize,"hEtaPhiSumDensity_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3062 snprintf(title, buffersize,"Isolated candidate #eta:#phi distribution for density #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
b0a31c92 3063 fhEtaPhiSumDensityIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
3064 fhEtaPhiSumDensityIso[icone][ipt]->SetXTitle("#eta");
3065 fhEtaPhiSumDensityIso[icone][ipt]->SetYTitle("#phi");
3066 outputContainer->Add(fhEtaPhiSumDensityIso[icone][ipt]) ;
3067
3068 snprintf(name, buffersize,"hEtaPhiFracPtSum_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3069 snprintf(title, buffersize,"Isolated candidate #eta:#phi distribution for FracPtSum #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
b0a31c92 3070 fhEtaPhiFracPtSumIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
3071 fhEtaPhiFracPtSumIso[icone][ipt]->SetXTitle("#eta");
3072 fhEtaPhiFracPtSumIso[icone][ipt]->SetYTitle("#phi");
3073 outputContainer->Add(fhEtaPhiFracPtSumIso[icone][ipt]) ;
3074
3075 // eta:phi decays
3076 snprintf(name, buffersize,"hEtaPhiPtThres_Decay_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3077 snprintf(title, buffersize,"Isolated decay candidate #eta:#phi distribution for #it{R} = %2.2f and #it{p}_{T}^{th} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtThresholds[ipt]);
b0a31c92 3078 fhEtaPhiPtThresDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
3079 fhEtaPhiPtThresDecayIso[icone][ipt]->SetXTitle("#eta");
3080 fhEtaPhiPtThresDecayIso[icone][ipt]->SetYTitle("#phi");
3081 outputContainer->Add(fhEtaPhiPtThresDecayIso[icone][ipt]) ;
3082
3083 snprintf(name, buffersize,"hEtaPhiPtFrac_Decay_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3084 snprintf(title, buffersize,"Isolated decay candidate #eta:#phi distribution for #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
b0a31c92 3085 fhEtaPhiPtFracDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
3086 fhEtaPhiPtFracDecayIso[icone][ipt]->SetXTitle("#eta");
3087 fhEtaPhiPtFracDecayIso[icone][ipt]->SetYTitle("#phi");
3088 outputContainer->Add(fhEtaPhiPtFracDecayIso[icone][ipt]) ;
3089
3090
3091 snprintf(name, buffersize,"hEtaPhiPtSum_Decay_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3092 snprintf(title, buffersize,"Isolated decay candidate #eta:#phi distribution for #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
b0a31c92 3093 fhEtaPhiPtSumDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
3094 fhEtaPhiPtSumDecayIso[icone][ipt]->SetXTitle("#eta");
3095 fhEtaPhiPtSumDecayIso[icone][ipt]->SetYTitle("#phi");
3096 outputContainer->Add(fhEtaPhiPtSumDecayIso[icone][ipt]) ;
3097
3098 snprintf(name, buffersize,"hEtaPhiSumDensity_Decay_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3099 snprintf(title, buffersize,"Isolated decay candidate #eta:#phi distribution for density #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
b0a31c92 3100 fhEtaPhiSumDensityDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
3101 fhEtaPhiSumDensityDecayIso[icone][ipt]->SetXTitle("#eta");
3102 fhEtaPhiSumDensityDecayIso[icone][ipt]->SetYTitle("#phi");
3103 outputContainer->Add(fhEtaPhiSumDensityDecayIso[icone][ipt]) ;
3104
3105 snprintf(name, buffersize,"hEtaPhiFracPtSum_Decay_Cone_%d_Pt%d",icone,ipt);
9a97f32f 3106 snprintf(title, buffersize,"Isolated decay candidate #eta:#phi distribution for FracPtSum #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
b0a31c92 3107 fhEtaPhiFracPtSumDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
3108 fhEtaPhiFracPtSumDecayIso[icone][ipt]->SetXTitle("#eta");
3109 fhEtaPhiFracPtSumDecayIso[icone][ipt]->SetYTitle("#phi");
3110 outputContainer->Add(fhEtaPhiFracPtSumDecayIso[icone][ipt]) ;
3111
3112
3113 if(IsDataMC())
3114 {
3115 snprintf(name, buffersize,"hPtThresMCPrompt_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3116 snprintf(title, buffersize,"Isolated candidate Prompt #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
b0a31c92 3117 fhPtThresIsolatedPrompt[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3118 fhPtThresIsolatedPrompt[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3119 outputContainer->Add(fhPtThresIsolatedPrompt[icone][ipt]) ;
3120
3121 snprintf(name, buffersize,"hPtFracMCPrompt_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3122 snprintf(title, buffersize,"Isolated candidate Prompt #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
b0a31c92 3123 fhPtFracIsolatedPrompt[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3124 fhPtFracIsolatedPrompt[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3125 outputContainer->Add(fhPtFracIsolatedPrompt[icone][ipt]) ;
3126
3127 snprintf(name, buffersize,"hPtThresMCFragmentation_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3128 snprintf(title, buffersize,"Isolated candidate Fragmentation #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
b0a31c92 3129 fhPtThresIsolatedFragmentation[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3130 fhPtThresIsolatedFragmentation[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3131 outputContainer->Add(fhPtThresIsolatedFragmentation[icone][ipt]) ;
3132
3133 snprintf(name, buffersize,"hPtFracMCFragmentation_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3134 snprintf(title, buffersize,"Isolated candidate Fragmentation #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
b0a31c92 3135 fhPtFracIsolatedFragmentation[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3136 fhPtFracIsolatedFragmentation[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3137 outputContainer->Add(fhPtFracIsolatedFragmentation[icone][ipt]) ;
3138
764ab1f4 3139 snprintf(name, buffersize,"hPtThresMCPi0_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3140 snprintf(title, buffersize,"Isolated candidate Pi0 #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
764ab1f4 3141 fhPtThresIsolatedPi0[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3142 fhPtThresIsolatedPi0[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 3143 outputContainer->Add(fhPtThresIsolatedPi0[icone][ipt]) ;
3144
3145 snprintf(name, buffersize,"hPtFracMCPi0_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3146 snprintf(title, buffersize,"Isolated candidate Pi0 #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
764ab1f4 3147 fhPtFracIsolatedPi0[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3148 fhPtFracIsolatedPi0[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 3149 outputContainer->Add(fhPtFracIsolatedPi0[icone][ipt]) ;
3150
b0a31c92 3151 snprintf(name, buffersize,"hPtThresMCPi0Decay_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3152 snprintf(title, buffersize,"Isolated candidate Pi0Decay #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
b0a31c92 3153 fhPtThresIsolatedPi0Decay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3154 fhPtThresIsolatedPi0Decay[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3155 outputContainer->Add(fhPtThresIsolatedPi0Decay[icone][ipt]) ;
3156
3157 snprintf(name, buffersize,"hPtFracMCPi0Decay_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3158 snprintf(title, buffersize,"Isolated candidate Pi0Decay #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
b0a31c92 3159 fhPtFracIsolatedPi0Decay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3160 fhPtFracIsolatedPi0Decay[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3161 outputContainer->Add(fhPtFracIsolatedPi0Decay[icone][ipt]) ;
3162
3163 snprintf(name, buffersize,"hPtThresMCEtaDecay_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3164 snprintf(title, buffersize,"Isolated candidate EtaDecay #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
b0a31c92 3165 fhPtThresIsolatedEtaDecay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3166 fhPtThresIsolatedEtaDecay[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3167 outputContainer->Add(fhPtThresIsolatedEtaDecay[icone][ipt]) ;
3168
3169 snprintf(name, buffersize,"hPtFracMCEtaDecay_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3170 snprintf(title, buffersize,"Isolated candidate EtaDecay #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
b0a31c92 3171 fhPtFracIsolatedEtaDecay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3172 fhPtFracIsolatedEtaDecay[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3173 outputContainer->Add(fhPtFracIsolatedEtaDecay[icone][ipt]) ;
3174
3175
3176 snprintf(name, buffersize,"hPtThresMCOtherDecay_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3177 snprintf(title, buffersize,"Isolated candidate OtherDecay #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
b0a31c92 3178 fhPtThresIsolatedOtherDecay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3179 fhPtThresIsolatedOtherDecay[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3180 outputContainer->Add(fhPtThresIsolatedOtherDecay[icone][ipt]) ;
3181
3182 snprintf(name, buffersize,"hPtFracMCOtherDecay_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3183 snprintf(title, buffersize,"Isolated candidate OtherDecay #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
b0a31c92 3184 fhPtFracIsolatedOtherDecay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3185 fhPtFracIsolatedOtherDecay[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
b0a31c92 3186 outputContainer->Add(fhPtFracIsolatedOtherDecay[icone][ipt]) ;
3187
764ab1f4 3188// snprintf(name, buffersize,"hPtThresMCConversion_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3189// snprintf(title, buffersize,"Isolated candidate Conversion #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
764ab1f4 3190// fhPtThresIsolatedConversion[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3191// fhPtThresIsolatedConversion[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 3192// outputContainer->Add(fhPtThresIsolatedConversion[icone][ipt]) ;
b0a31c92 3193
764ab1f4 3194// snprintf(name, buffersize,"hPtFracMCConversion_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3195// snprintf(title, buffersize,"Isolated candidate Conversion #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
764ab1f4 3196// fhPtFracIsolatedConversion[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3197// fhPtFracIsolatedConversion[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 3198// outputContainer->Add(fhPtFracIsolatedConversion[icone][ipt]) ;
b0a31c92 3199
764ab1f4 3200 snprintf(name, buffersize,"hPtThresMCHadron_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3201 snprintf(title, buffersize,"Isolated candidate Hadron #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
764ab1f4 3202 fhPtThresIsolatedHadron[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3203 fhPtThresIsolatedHadron[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 3204 outputContainer->Add(fhPtThresIsolatedHadron[icone][ipt]) ;
b0a31c92 3205
764ab1f4 3206 snprintf(name, buffersize,"hPtFracMCHadron_Cone_%d_Pt%d",icone,ipt);
dc9c6e78 3207 snprintf(title, buffersize,"Isolated candidate Hadron #it{p}_{T} distribution for cone size %d and #it{p}_{T}^{th} %d",icone,ipt);
764ab1f4 3208 fhPtFracIsolatedHadron[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
dc9c6e78 3209 fhPtFracIsolatedHadron[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
764ab1f4 3210 outputContainer->Add(fhPtFracIsolatedHadron[icone][ipt]) ;
b0a31c92 3211
e4ef72be 3212 }//Histos with MC
3213 }//icone loop
3214 }//ipt loop
1a31a9ab 3215 }
3216
2ad19c3d 3217 if(fFillPileUpHistograms)
3218 {
17af6e24 3219 for (Int_t i = 0; i < 7 ; i++)
3220 {
3221 fhEIsoPileUp[i] = new TH1F(Form("hEPileUp%s",pileUpName[i].Data()),
7726e3a3 3222 Form("Number of isolated particles vs E, %s, pile-up event by %s",parTitle.Data(),pileUpName[i].Data()),
17af6e24 3223 nptbins,ptmin,ptmax);
03b86424 3224 fhEIsoPileUp[i]->SetYTitle("d#it{N} / d#it{E}");
dc9c6e78 3225 fhEIsoPileUp[i]->SetXTitle("#it{E} (GeV)");
17af6e24 3226 outputContainer->Add(fhEIsoPileUp[i]) ;
3227
3228 fhPtIsoPileUp[i] = new TH1F(Form("hPtPileUp%s",pileUpName[i].Data()),
7726e3a3 3229 Form("Number of isolated particles vs #it{p}_{T}, %s, pile-up event by %s",parTitle.Data(),pileUpName[i].Data()),
17af6e24 3230 nptbins,ptmin,ptmax);
03b86424 3231 fhPtIsoPileUp[i]->SetYTitle("d#it{N} / #it{p}_{T}");
dc9c6e78 3232 fhPtIsoPileUp[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
17af6e24 3233 outputContainer->Add(fhPtIsoPileUp[i]) ;
3234
3235 fhENoIsoPileUp[i] = new TH1F(Form("hENoIsoPileUp%s",pileUpName[i].Data()),
7726e3a3 3236 Form("Number of not isolated particles vs E, %s, pile-up event by %s",parTitle.Data(),pileUpName[i].Data()),
17af6e24 3237 nptbins,ptmin,ptmax);
03b86424 3238 fhENoIsoPileUp[i]->SetYTitle("d#it{N} / dE");
dc9c6e78 3239 fhENoIsoPileUp[i]->SetXTitle("#it{E} (GeV)");
17af6e24 3240 outputContainer->Add(fhENoIsoPileUp[i]) ;
3241
3242 fhPtNoIsoPileUp[i] = new TH1F(Form("hPtNoIsoPileUp%s",pileUpName[i].Data()),
7726e3a3 3243 Form("Number of not isolated particles vs #it{p}_{T}, %s, pile-up event by %s",parTitle.Data(),pileUpName[i].Data()),
17af6e24 3244 nptbins,ptmin,ptmax);
03b86424 3245 fhPtNoIsoPileUp[i]->SetYTitle("d#it{N} / #it{p}_{T}");
dc9c6e78 3246 fhPtNoIsoPileUp[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
17af6e24 3247 outputContainer->Add(fhPtNoIsoPileUp[i]) ;
3248 }
b1f720a7 3249
2ad19c3d 3250 fhTimeENoCut = new TH2F ("hTimeE_NoCut","time of cluster vs E of clusters, no cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
dc9c6e78 3251 fhTimeENoCut->SetXTitle("#it{E} (GeV)");
03b86424 3252 fhTimeENoCut->SetYTitle("#it{time} (ns)");
2ad19c3d 3253 outputContainer->Add(fhTimeENoCut);
3254
3255 fhTimeESPD = new TH2F ("hTimeE_SPD","time of cluster vs E of clusters, SPD cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
dc9c6e78 3256 fhTimeESPD->SetXTitle("#it{E} (GeV)");
03b86424 3257 fhTimeESPD->SetYTitle("#it{time} (ns)");
2ad19c3d 3258 outputContainer->Add(fhTimeESPD);
3259
3260 fhTimeESPDMulti = new TH2F ("hTimeE_SPDMulti","time of cluster vs E of clusters, SPD multi cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
dc9c6e78 3261 fhTimeESPDMulti->SetXTitle("#it{E} (GeV)");
03b86424 3262 fhTimeESPDMulti->SetYTitle("#it{time} (ns)");
2ad19c3d 3263 outputContainer->Add(fhTimeESPDMulti);
3264
3265 fhTimeNPileUpVertSPD = new TH2F ("hTime_NPileUpVertSPD","time of cluster vs N pile-up SPD vertex", ntimebins,timemin,timemax,50,0,50);
3266 fhTimeNPileUpVertSPD->SetYTitle("# vertex ");
03b86424 3267 fhTimeNPileUpVertSPD->SetXTitle("#it{time} (ns)");
2ad19c3d 3268 outputContainer->Add(fhTimeNPileUpVertSPD);
3269
3270 fhTimeNPileUpVertTrack = new TH2F ("hTime_NPileUpVertTracks","time of cluster vs N pile-up Tracks vertex", ntimebins,timemin,timemax, 50,0,50 );
3271 fhTimeNPileUpVertTrack->SetYTitle("# vertex ");
03b86424 3272 fhTimeNPileUpVertTrack->SetXTitle("#it{time} (ns)");
2ad19c3d 3273 outputContainer->Add(fhTimeNPileUpVertTrack);
3274
3275 fhTimeNPileUpVertContributors = new TH2F ("hTime_NPileUpVertContributors","time of cluster vs N constributors to pile-up SPD vertex", ntimebins,timemin,timemax,50,0,50);
3276 fhTimeNPileUpVertContributors->SetYTitle("# vertex ");
03b86424 3277 fhTimeNPileUpVertContributors->SetXTitle("#it{time} (ns)");
2ad19c3d 3278 outputContainer->Add(fhTimeNPileUpVertContributors);
3279
3280 fhTimePileUpMainVertexZDistance = new TH2F ("hTime_PileUpMainVertexZDistance","time of cluster vs distance in Z pile-up SPD vertex - main SPD vertex",ntimebins,timemin,timemax,100,0,50);
03b86424 3281 fhTimePileUpMainVertexZDistance->SetYTitle("distance #it{z} (cm) ");
3282 fhTimePileUpMainVertexZDistance->SetXTitle("#it{time} (ns)");
2ad19c3d 3283 outputContainer->Add(fhTimePileUpMainVertexZDistance);
3284
3285 fhTimePileUpMainVertexZDiamond = new TH2F ("hTime_PileUpMainVertexZDiamond","time of cluster vs distance in Z pile-up SPD vertex - z diamond",ntimebins,timemin,timemax,100,0,50);
03b86424 3286 fhTimePileUpMainVertexZDiamond->SetYTitle("diamond distance #it{z} (cm) ");
3287 fhTimePileUpMainVertexZDiamond->SetXTitle("#it{time} (ns)");
2ad19c3d 3288 outputContainer->Add(fhTimePileUpMainVertexZDiamond);
2ad19c3d 3289 }
3290
1a31a9ab 3291 return outputContainer ;
3292
3293}
3294
03bae431 3295//__________________________________
3296void AliAnaParticleIsolation::Init()
3297{
3298 // Do some checks and init stuff
3299
3300 // In case of several cone and thresholds analysis, open the cuts for the filling of the
3301 // track and cluster reference arrays in cone when done in the MakeAnalysisFillAOD().
3302 // The different cones, thresholds are tested for this list of tracks, clusters.
3303 if(fMakeSeveralIC)
3304 {
3305 printf("AliAnaParticleIsolation::Init() - Open default isolation cuts for multiple Isolation analysis\n");
3306 GetIsolationCut()->SetPtThreshold(100);
3307 GetIsolationCut()->SetPtFraction(100);
3308 GetIsolationCut()->SetConeSize(1);
3309 }
373ffbac 3310
3311 if(!GetReader()->IsCTSSwitchedOn() && GetIsolationCut()->GetParticleTypeInCone()!=AliIsolationCut::kOnlyNeutral)
3312 AliFatal("STOP!: You want to use CTS tracks in analysis but not read!! \n!!Check the configuration file!!\n");
3313
3314
03bae431 3315}
3316
803d06a8 3317//____________________________________________
3318void AliAnaParticleIsolation::InitParameters()
3319{
3320
3321 //Initialize the parameters of the analysis.
3322 SetInputAODName("PWG4Particle");
3323 SetAODObjArrayName("IsolationCone");
3324 AddToHistogramsName("AnaIsolation_");
3325
3326 fCalorimeter = "PHOS" ;
3327 fReMakeIC = kFALSE ;
3328 fMakeSeveralIC = kFALSE ;
3329
3330 //----------- Several IC-----------------
db6fb352 3331 fNCones = 5 ;
3332 fNPtThresFrac = 5 ;
3333 fConeSizes [0] = 0.1; fConeSizes [1] = 0.2; fConeSizes [2] = 0.3; fConeSizes [3] = 0.4; fConeSizes [4] = 0.5;
3334 fPtThresholds [0] = 1.; fPtThresholds [1] = 2.; fPtThresholds [2] = 3.; fPtThresholds [3] = 4.; fPtThresholds [4] = 5.;
3335 fPtFractions [0] = 0.05; fPtFractions [1] = 0.075; fPtFractions [2] = 0.1; fPtFractions [3] = 1.25; fPtFractions [4] = 1.5;
3336 fSumPtThresholds[0] = 1.; fSumPtThresholds[1] = 2.; fSumPtThresholds[2] = 3.; fSumPtThresholds[3] = 4.; fSumPtThresholds[4] = 5.;
803d06a8 3337
3338 //------------- Histograms settings -------
3339 fHistoNPtSumBins = 100 ;
3340 fHistoPtSumMax = 50 ;
3341 fHistoPtSumMin = 0. ;
3342
3343 fHistoNPtInConeBins = 100 ;
3344 fHistoPtInConeMax = 50 ;
3345 fHistoPtInConeMin = 0. ;
3346
3347}
3348
3349//__________________________________________________
1a31a9ab 3350void AliAnaParticleIsolation::MakeAnalysisFillAOD()
3351{
3352 //Do analysis and fill aods
3353 //Search for the isolated photon in fCalorimeter with pt > GetMinPt()
3354
b5dbb99b 3355 if(!GetInputAODBranch())
373ffbac 3356 AliFatal(Form("No input particles in AOD with name branch < %s >, STOP",GetInputAODName().Data()));
3357
1a31a9ab 3358
b5dbb99b 3359 if(strcmp(GetInputAODBranch()->GetClass()->GetName(), "AliAODPWG4ParticleCorrelation"))
373ffbac 3360 AliFatal(Form("Wrong type of AOD object, change AOD class name in input AOD: It should be <AliAODPWG4ParticleCorrelation> and not <%s> \n",GetInputAODBranch()->GetClass()->GetName()));
b0a31c92 3361
1a31a9ab 3362 Int_t n = 0, nfrac = 0;
3363 Bool_t isolated = kFALSE ;
1a31a9ab 3364 Float_t coneptsum = 0 ;
3365 TObjArray * pl = 0x0; ;
3366
3367 //Select the calorimeter for candidate isolation with neutral particles
b5dbb99b 3368 if (fCalorimeter == "PHOS" )
1a31a9ab 3369 pl = GetPHOSClusters();
3370 else if (fCalorimeter == "EMCAL")
3371 pl = GetEMCALClusters();
3372
3373 //Loop on AOD branch, filled previously in AliAnaPhoton, find leading particle to do isolation only with it
3374 Double_t ptLeading = 0. ;
3375 Int_t idLeading = -1 ;
3376 TLorentzVector mom ;
3377 Int_t naod = GetInputAODBranch()->GetEntriesFast();
3378 if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() - Input aod branch entries %d\n", naod);
3379
b5dbb99b 3380 for(Int_t iaod = 0; iaod < naod; iaod++)
3381 {
1a31a9ab 3382 AliAODPWG4ParticleCorrelation * aodinput = (AliAODPWG4ParticleCorrelation*) (GetInputAODBranch()->At(iaod));
81a5e27b 3383
1a31a9ab 3384 //If too small or too large pt, skip
3385 if(aodinput->Pt() < GetMinPt() || aodinput->Pt() > GetMaxPt() ) continue ;
3386
03bae431 3387 //check if it is low pt trigger particle
3388 if((aodinput->Pt() < GetIsolationCut()->GetPtThreshold() ||
3389 aodinput->Pt() < GetIsolationCut()->GetSumPtThreshold()) &&
3390 !fMakeSeveralIC)
b5dbb99b 3391 {
1a31a9ab 3392 continue ; //trigger should not come from underlying event
b5dbb99b 3393 }
1a31a9ab 3394
3395 //vertex cut in case of mixing
04f7a616 3396 Int_t check = CheckMixedEventVertex(aodinput->GetCaloLabel(0), aodinput->GetTrackLabel(0));
3397 if(check == 0) continue;
3398 if(check == -1) return;
1a31a9ab 3399
3400 //find the leading particles with highest momentum
547c2f01 3401 if ( aodinput->Pt() > ptLeading )
b5dbb99b 3402 {
1a31a9ab 3403 ptLeading = aodinput->Pt() ;
226b95ba 3404 idLeading = iaod ;
1a31a9ab 3405 }
b5dbb99b 3406
226b95ba 3407 aodinput->SetLeadingParticle(kFALSE);
b5dbb99b 3408
1a31a9ab 3409 }//finish searching for leading trigger particle
3410
3411 // Check isolation of leading particle
3412 if(idLeading < 0) return;
226b95ba 3413
1a31a9ab 3414 AliAODPWG4ParticleCorrelation * aodinput = (AliAODPWG4ParticleCorrelation*) (GetInputAODBranch()->At(idLeading));
db6fb352 3415 aodinput->SetLeadingParticle(kTRUE);
547c2f01 3416
3417 // Check isolation only of clusters in fiducial region
3418 if(IsFiducialCutOn())
3419 {
050ad675 3420 Bool_t in = GetFiducialCut()->IsInFiducialCut(*aodinput->Momentum(),aodinput->GetDetector()) ;
547c2f01 3421 if(! in ) return ;
3422 }
3423
1a31a9ab 3424 //After cuts, study isolation
3425 n=0; nfrac = 0; isolated = kFALSE; coneptsum = 0;
ac5111f9 3426 GetIsolationCut()->MakeIsolationCut(GetCTSTracks(),pl,
3427 GetReader(), GetCaloPID(),
727a309a 3428 kTRUE, aodinput, GetAODObjArrayName(),
b5dbb99b 3429 n,nfrac,coneptsum, isolated);
3d187b6c 3430
3431 if(!fMakeSeveralIC) aodinput->SetIsolated(isolated);
2ad19c3d 3432
b5dbb99b 3433 if(GetDebug() > 1)
3434 {
1a31a9ab 3435 if(isolated)printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() : Particle %d IS ISOLATED \n",idLeading);
3436 printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() - End fill AODs \n");
3437 }
3438
3439}
3440
803d06a8 3441//_________________________________________________________
1a31a9ab 3442void AliAnaParticleIsolation::MakeAnalysisFillHistograms()
3443{
3444 //Do analysis and fill histograms
dc9c6e78 3445
3446 //In case of simulated data, fill acceptance histograms
3447 if(IsDataMC()) FillAcceptanceHistograms();
3448
db6fb352 3449
23130491 3450 //Loop on stored AOD
1a31a9ab 3451 Int_t naod = GetInputAODBranch()->GetEntriesFast();
3452 if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Histo aod branch entries %d\n", naod);
23130491 3453
b5dbb99b 3454 for(Int_t iaod = 0; iaod < naod ; iaod++)
3455 {
1a31a9ab 3456 AliAODPWG4ParticleCorrelation* aod = (AliAODPWG4ParticleCorrelation*) (GetInputAODBranch()->At(iaod));
3457
3458 if(!aod->IsLeadingParticle()) continue; // Try to isolate only leading cluster or track
3459
547c2f01 3460 // Check isolation only of clusters in fiducial region
3461 if(IsFiducialCutOn())
3462 {
050ad675 3463 Bool_t in = GetFiducialCut()->IsInFiducialCut(*aod->Momentum(),aod->GetDetector()) ;
547c2f01 3464 if(! in ) continue ;
3465 }
3466
23130491 3467 Float_t pt = aod->Pt();
3468 //If too small or too large pt, skip
3469 if(pt < GetMinPt() || pt > GetMaxPt() ) continue ;
3470
3471 Bool_t isolated = aod->IsIsolated();
803d06a8 3472 Bool_t decay = aod->IsTagged();
0fb69ade 3473 Float_t energy = aod->E();
1a31a9ab 3474 Float_t phi = aod->Phi();
3475 Float_t eta = aod->Eta();
23130491 3476
1a31a9ab 3477 // --- In case of redoing isolation from delta AOD ----
db6fb352 3478
23130491 3479 if (fMakeSeveralIC)
03bae431 3480 {
1a31a9ab 3481 //Analysis of multiple IC at same time
3482 MakeSeveralICAnalysis(aod);
03bae431 3483 continue;
1a31a9ab 3484 }
b5dbb99b 3485 else if(fReMakeIC)
3486 {
1a31a9ab 3487 //In case a more strict IC is needed in the produced AOD
23130491 3488 isolated = kFALSE;
3489 Int_t n = 0, nfrac = 0;
3490 Float_t coneptsum = 0 ;
727a309a 3491
23130491 3492 //Recover reference arrays with clusters and tracks
3493 TObjArray * refclusters = aod->GetObjArray(GetAODObjArrayName()+"Clusters");
3494 TObjArray * reftracks = aod->GetObjArray(GetAODObjArrayName()+"Tracks");
3495
ac5111f9 3496 GetIsolationCut()->MakeIsolationCut(reftracks, refclusters,
3497 GetReader(), GetCaloPID(),
b5dbb99b 3498 kFALSE, aod, "",
3499 n,nfrac,coneptsum, isolated);
23130491 3500
3501 fhConeSumPt ->Fill(pt, coneptsum);
3502 fhConeSumPtTrigEtaPhi->Fill(eta,phi,coneptsum);
3503
3504 if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Energy Sum in Isolation Cone %2.2f\n", coneptsum);
1a31a9ab 3505 }
23130491 3506 else
b5dbb99b 3507 {
23130491 3508 if(GetDebug() > 0) printf(" AliAnaParticleIsolation::MakeAnalysisFillHistograms() - pt %1.1f, eta %1.1f, phi %1.1f\n",pt, eta, phi);
b7ce43b4 3509
379f2a79 3510 FillTrackMatchingShowerShapeControlHistograms(aod);
23130491 3511
3512 //Fill pt/sum pT distribution of particles in cone or in UE band
3513 Float_t coneptsumCluster = 0;
3514 Float_t coneptsumTrack = 0;
9b01dc66 3515 Float_t coneptsumCell = 0;
727a309a 3516 Float_t etaBandptsumClusterNorm = 0;
3517 Float_t etaBandptsumTrackNorm = 0;
977564f5 3518
9b01dc66 3519 CalculateTrackSignalInCone (aod,coneptsumTrack );
3520 CalculateCaloSignalInCone (aod,coneptsumCluster);
977564f5 3521 if(fFillCellHistograms)
3522 CalculateCaloCellSignalInCone(aod,coneptsumCell );
0fb69ade 3523
72433939 3524 if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged)
9b01dc66 3525 {
3526 fhConeSumPtClustervsTrack ->Fill(coneptsumCluster,coneptsumTrack);
977564f5 3527 if(fFillCellHistograms)
3528 {
3529 fhConeSumPtCellvsTrack ->Fill(coneptsumCell, coneptsumTrack);
3530 fhConeSumPtCellTrack ->Fill(pt, coneptsumTrack+coneptsumCell);
3531 fhConeSumPtCellTrackTrigEtaPhi->Fill(eta,phi,coneptsumTrack+coneptsumCell);
3532 }
3533 }
3534
72433939 3535 fhConeSumPt ->Fill(pt, coneptsumTrack+coneptsumCluster);
3536 fhConeSumPtTrigEtaPhi ->Fill(eta,phi,coneptsumTrack+coneptsumCluster);
977564f5 3537
23130491 3538 if(GetDebug() > 1)
3539 printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Particle %d Energy Sum in Isolation Cone %2.2f\n", iaod, coneptsumTrack+coneptsumCluster);
3540
3541 //normalize phi/eta band per area unit
977564f5 3542 if(fFillUEBandSubtractHistograms)
3543 CalculateNormalizeUEBandPerUnitArea(aod, coneptsumCluster, coneptsumCell, coneptsumTrack, etaBandptsumTrackNorm, etaBandptsumClusterNorm) ;
727a309a 3544
3545 // printf("Histograms analysis : cluster pt = %f, etaBandTrack = %f, etaBandCluster = %f, isolation = %d\n",aod->Pt(),etaBandptsumTrackNorm,etaBandptsumClusterNorm,aod->IsIsolated());
3546
1a31a9ab 3547 }
6c80c1bf 3548
b5dbb99b 3549 Int_t mcTag = aod->GetTag() ;
23130491 3550
3551 if(isolated)
3552 {
db6fb352 3553 if(GetDebug() > 1) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Particle %d ISOLATED: fill histograms\n", iaod);
6c80c1bf 3554
2ad19c3d 3555 // Fill histograms to undertand pile-up before other cuts applied
3556 // Remember to relax time cuts in the reader
23130491 3557 FillPileUpHistograms(aod->GetCaloLabel(0));
2ad19c3d 3558
b5dbb99b 3559 fhEIso ->Fill(energy);
3560 fhPtIso ->Fill(pt);
3561 fhPhiIso ->Fill(pt,phi);
3562 fhEtaIso ->Fill(pt,eta);
0fb69ade 3563 fhEtaPhiIso ->Fill(eta,phi);
c8710850 3564
977564f5 3565 if(fFillNLMHistograms) fhPtNLocMaxIso ->Fill(pt,aod->GetFiducialArea()) ;
db6fb352 3566
977564f5 3567 if(fFillHighMultHistograms)
3568 {
3569 fhPtCentralityIso ->Fill(pt,GetEventCentrality()) ;
3570 fhPtEventPlaneIso ->Fill(pt,GetEventPlaneAngle() ) ;
3571 }
3572
3573 if(decay && fFillTaggedDecayHistograms)
3f150b4b 3574 {
23130491 3575 fhPtDecayIso ->Fill(pt);
3f150b4b 3576 fhEtaPhiDecayIso->Fill(eta,phi);
3577 }
1a31a9ab 3578
17af6e24 3579 if(fFillPileUpHistograms)
b1f720a7 3580 {
17af6e24 3581 if(GetReader()->IsPileUpFromSPD()) { fhEIsoPileUp[0] ->Fill(energy) ; fhPtIsoPileUp[0]->Fill(pt) ; }
3582 if(GetReader()->IsPileUpFromEMCal()) { fhEIsoPileUp[1] ->Fill(energy) ; fhPtIsoPileUp[1]->Fill(pt) ; }
3583 if(GetReader()->IsPileUpFromSPDOrEMCal()) { fhEIsoPileUp[2] ->Fill(energy) ; fhPtIsoPileUp[2]->Fill(pt) ; }
3584 if(GetReader()->IsPileUpFromSPDAndEMCal()) { fhEIsoPileUp[3] ->Fill(energy) ; fhPtIsoPileUp[3]->Fill(pt) ; }
3585 if(GetReader()->IsPileUpFromSPDAndNotEMCal()) { fhEIsoPileUp[4] ->Fill(energy) ; fhPtIsoPileUp[4]->Fill(pt) ; }
3586 if(GetReader()->IsPileUpFromEMCalAndNotSPD()) { fhEIsoPileUp[5] ->Fill(energy) ; fhPtIsoPileUp[5]->Fill(pt) ; }
3587 if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) { fhEIsoPileUp[6] ->Fill(energy) ; fhPtIsoPileUp[6]->Fill(pt) ; }
3588 }
b1f720a7 3589
b5dbb99b 3590 if(IsDataMC())
3591 {
1a31a9ab 3592
b5dbb99b 3593 if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton))
803d06a8 3594 {
3595 fhPtIsoMCPhoton ->Fill(pt);
3596 }
3597
db6fb352 3598 if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt))
3599 {
1a31a9ab 3600 fhPtIsoPrompt ->Fill(pt);
3601 fhPhiIsoPrompt ->Fill(pt,phi);
3602 fhEtaIsoPrompt ->Fill(pt,eta);
3603 }
b5dbb99b 3604 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation))
1a31a9ab 3605 {
3606 fhPtIsoFragmentation ->Fill(pt);
3607 fhPhiIsoFragmentation ->Fill(pt,phi);
3608 fhEtaIsoFragmentation ->Fill(pt,eta);
3609 }
764ab1f4 3610 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0))
3611 {
3612 fhPtIsoPi0 ->Fill(pt);
3613 fhPhiIsoPi0 ->Fill(pt,phi);
3614 fhEtaIsoPi0 ->Fill(pt,eta);
3615 }
b5dbb99b 3616 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay))
1a31a9ab 3617 {
3618 fhPtIsoPi0Decay ->Fill(pt);
3619 fhPhiIsoPi0Decay ->Fill(pt,phi);
3620 fhEtaIsoPi0Decay ->Fill(pt,eta);
3621 }
b5dbb99b 3622 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay))
803d06a8 3623 {
3624 fhPtIsoEtaDecay ->Fill(pt);
3625 fhPhiIsoEtaDecay ->Fill(pt,phi);
3626 fhEtaIsoEtaDecay ->Fill(pt,eta);
3627 }
b5dbb99b 3628 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay))
1a31a9ab 3629 {
3630 fhPtIsoOtherDecay ->Fill(pt);
3631 fhPhiIsoOtherDecay ->Fill(pt,phi);
3632 fhEtaIsoOtherDecay ->Fill(pt,eta);
3633 }
6c80c1bf 3634 // else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion))
3635 // {
3636 // fhPtIsoConversion ->Fill(pt);
3637 // fhPhiIsoConversion ->Fill(pt,phi);
3638 // fhEtaIsoConversion ->Fill(pt,eta);
3639 // }
764ab1f4 3640 else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron))// anything else but electrons
1a31a9ab 3641 {
764ab1f4 3642 fhPtIsoHadron ->Fill(pt);
3643 fhPhiIsoHadron ->Fill(pt,phi);
3644 fhEtaIsoHadron ->Fill(pt,eta);
1a31a9ab 3645 }
3646 }//Histograms with MC
3647
3648 }//Isolated histograms
ca134929 3649 else // NON isolated
1a31a9ab 3650 {
db6fb352 3651 if(GetDebug() > 1) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Particle %d NOT ISOLATED, fill histograms\n", iaod);
3652
b1f720a7 3653 fhENoIso ->Fill(energy);
3654 fhPtNoIso ->Fill(pt);
3655 fhEtaPhiNoIso ->Fill(eta,phi);
977564f5 3656
3657 if(fFillNLMHistograms) fhPtNLocMaxNoIso->Fill(pt,aod->GetFiducialArea());
23130491 3658
17af6e24 3659 if(fFillPileUpHistograms)
b1f720a7 3660 {
17af6e24 3661 if(GetReader()->IsPileUpFromSPD()) { fhENoIsoPileUp[0] ->Fill(energy) ; fhPtNoIsoPileUp[0]->Fill(pt) ; }
3662 if(GetReader()->IsPileUpFromEMCal()) { fhENoIsoPileUp[1] ->Fill(energy) ; fhPtNoIsoPileUp[1]->Fill(pt) ; }
3663 if(GetReader()->IsPileUpFromSPDOrEMCal()) { fhENoIsoPileUp[2] ->Fill(energy) ; fhPtNoIsoPileUp[2]->Fill(pt) ; }
3664 if(GetReader()->IsPileUpFromSPDAndEMCal()) { fhENoIsoPileUp[3] ->Fill(energy) ; fhPtNoIsoPileUp[3]->Fill(pt) ; }
3665 if(GetReader()->IsPileUpFromSPDAndNotEMCal()) { fhENoIsoPileUp[4] ->Fill(energy) ; fhPtNoIsoPileUp[4]->Fill(pt) ; }
3666 if(GetReader()->IsPileUpFromEMCalAndNotSPD()) { fhENoIsoPileUp[5] ->Fill(energy) ; fhPtNoIsoPileUp[5]->Fill(pt) ; }
3667 if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) { fhENoIsoPileUp[6] ->Fill(energy) ; fhPtNoIsoPileUp[6]->Fill(pt) ; }
b1f720a7 3668 }
3669
977564f5 3670 if(decay && fFillTaggedDecayHistograms)
3f150b4b 3671 {
db6fb352 3672 fhPtDecayNoIso ->Fill(pt);
3f150b4b 3673 fhEtaPhiDecayNoIso->Fill(eta,phi);
3674 }
1a31a9ab 3675
b5dbb99b 3676 if(IsDataMC())
3677 {
db6fb352 3678 if (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton)) fhPtNoIsoMCPhoton ->Fill(pt);
764ab1f4 3679 if (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0)) fhPtNoIsoPi0 ->Fill(pt);
3680 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtNoIsoPi0Decay ->Fill(pt);
db6fb352 3681 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtNoIsoEtaDecay ->Fill(pt);
3682 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtNoIsoOtherDecay ->Fill(pt);
3683 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt)) fhPtNoIsoPrompt ->Fill(pt);
3684 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation)) fhPtNoIsoFragmentation->Fill(pt);
6c80c1bf 3685 // else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion)) fhPtNoIsoConversion ->Fill(pt);
764ab1f4 3686 else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron)) fhPtNoIsoHadron ->Fill(pt);
1a31a9ab 3687 }
3688 }
1a31a9ab 3689 }// aod loop
3690
3691}
3692
dc9c6e78 3693//___________________________________________
3694void AliAnaParticleIsolation::FillAcceptanceHistograms()
3695{
3696 //Fill acceptance histograms if MC data is available
3697
6aac3409 3698 //Double_t photonY = -100 ;
dc9c6e78 3699 Double_t photonE = -1 ;
3700 Double_t photonPt = -1 ;
3701 Double_t photonPhi = 100 ;
3702 Double_t photonEta = -1 ;
3703
3704 Int_t pdg = 0 ;
3705 Int_t tag = 0 ;
3706 Int_t mcIndex = 0 ;
3707 Bool_t inacceptance = kFALSE;
3708
3709 if(GetReader()->ReadStack())
3710 {
3711 AliStack * stack = GetMCStack();
3712 if(stack)
3713 {
3714 for(Int_t i=0 ; i<stack->GetNtrack(); i++)
3715 {
3716 if(GetReader()->AcceptOnlyHIJINGLabels() && !GetReader()->IsHIJINGLabel(i)) continue ;
3717
3718 TParticle * prim = stack->Particle(i) ;
3719 pdg = prim->GetPdgCode();
3720 //printf("i %d, %s %d %s %d \n",i, stack->Particle(i)->GetName(), stack->Particle(i)->GetPdgCode(),
3721 // prim->GetName(), prim->GetPdgCode());
3722
3723 if(pdg == 22)
3724 {
3725 // Get tag of this particle photon from fragmentation, decay, prompt ...
3726 tag = GetMCAnalysisUtils()->CheckOrigin(i,GetReader());
3727
3728 if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton))
3729 {
3730 //A conversion photon from a hadron, skip this kind of photon
3731 // printf("AliAnaPhoton::FillAcceptanceHistograms() - not a photon, weird!\n ");
3732 // GetMCAnalysisUtils()->PrintMCTag(tag);
3733
3734 return;
3735 }
3736
3737 //Get photon kinematics
3738 if(prim->Energy() == TMath::Abs(prim->Pz())) continue ; //Protection against floating point exception
3739
6aac3409 3740 //photonY = 0.5*TMath::Log((prim->Energy()-prim->Pz())/(prim->Energy()+prim->Pz())) ;
dc9c6e78 3741 photonE = prim->Energy() ;
3742 photonPt = prim->Pt() ;
db4ffddf 3743 photonPhi = prim->Phi() ;
dc9c6e78 3744 if(photonPhi < 0) photonPhi+=TMath::TwoPi();
3745 photonEta = prim->Eta() ;
3746
3747 //Check if photons hit the Calorimeter
3748 TLorentzVector lv;
3749 prim->Momentum(lv);
3750 inacceptance = kFALSE;
3751 if (fCalorimeter == "PHOS")
3752 {
3753 if(GetPHOSGeometry() && GetCaloUtils()->IsPHOSGeoMatrixSet())
3754 {
3755 Int_t mod ;
3756 Double_t x,z ;
3757 if(GetPHOSGeometry()->ImpactOnEmc(prim,mod,z,x))
3758 inacceptance = kTRUE;
3759 if(GetDebug() > 2) printf("In %s Real acceptance? %d\n",fCalorimeter.Data(),inacceptance);
3760 }
3761 else
3762 {
3763 if(GetFiducialCut()->IsInFiducialCut(lv,fCalorimeter))
3764 inacceptance = kTRUE ;
3765 if(GetDebug() > 2) printf("In %s fiducial cut acceptance? %d\n",fCalorimeter.Data(),inacceptance);
3766 }
3767 }
3768 else if(fCalorimeter == "EMCAL" /*&& GetCaloUtils()->IsEMCALGeoMatrixSet()*/)
3769 {
3770// if(GetEMCALGeometry())
3771// {
3772// Int_t absID=0;
3773// GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(prim->Eta(),prim->Phi(),absID);
3774//
3775// //if( absID >= 0){
3776// if(GetFiducialCut()->IsInFiducialCut(lv,fCalorimeter))
3777// inacceptance = kTRUE;
3778//
3779// if(GetDebug() > 2) printf("In %s Real acceptance? %d\n",fCalorimeter.Data(),inacceptance);
3780// }
3781// else
3782 {
3783 if(GetFiducialCut()->IsInFiducialCut(lv,fCalorimeter))
3784 inacceptance = kTRUE ;
3785
3786 if(GetDebug() > 2) printf("In %s fiducial cut acceptance? %d\n",fCalorimeter.Data(),inacceptance);
3787 }
3788 } //In EMCAL
3789
3790 if(inacceptance)
3791 {
3792 fhEtaPrimMC[kmcPPhoton]->Fill(photonPt , photonEta) ;
db4ffddf 3793 fhPhiPrimMC[kmcPPhoton]->Fill(photonPt , photonPhi) ;
dc9c6e78 3794 fhEPrimMC [kmcPPhoton]->Fill(photonE) ;
3795 }
3796
3797 //Origin of photon
3798 if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt) )
3799 {
3800 mcIndex = kmcPPrompt;
3801 }
3802 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation) )
3803 {
3804 mcIndex = kmcPFragmentation ;
3805 }
3806 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCISR))
3807 {
3808 mcIndex = kmcPISR;
3809 }
3810 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay))
3811 {
3812 mcIndex = kmcPPi0Decay;
3813 }
3814 else if( (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay) ||
3815 GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)))
3816 {
3817 mcIndex = kmcPOtherDecay;
3818 }
3819 else
3820 {
3821 mcIndex = kmcPOther;
3822 }//Other origin
3823
3824 // ////////////////////ISO MC/////////////////////////
3825 Double_t sumpt = 0; Double_t dR=0. ;
3826 Int_t nprim = stack->GetNtrack();
3827 for(Int_t ip = 0; ip < nprim ; ip++)
3828 {
3829
3830 TParticle *mcisop = static_cast<TParticle*>(stack->Particle(ip));
3831
3832 if(!mcisop)
3833 continue;
3834
3835 if(ip==i)
3836 continue;
3837 if(mcisop->GetStatusCode()!=1)
3838 continue;
3839
3840 if(mcisop->GetMother(0) == i)
3841 continue;
3842
3843 if(mcisop->Pt()<0.2)
3844 continue;
3845
3846 // TVector3 vmcv(mcisop->Px(),mcisop->Py(), mcisop->Pz());
3847 // if(vmcv.Perp()>1)
3848 // continue;
3849
3850 dR = GetIsolationCut()->Radius(photonEta, photonPhi, mcisop->Eta(), mcisop->Phi());
dc9c6e78 3851
3852 if(dR > GetIsolationCut()->GetConeSize())
3853 continue;
3854
3855 sumpt += mcisop->Pt();
3856 }
3857
3858 ///////END ISO MC/////////////////////////
3859
3860 if(inacceptance)
3861 {
3862 fhEtaPrimMC[mcIndex]->Fill(photonPt , photonEta) ;
db4ffddf 3863 fhPhiPrimMC[mcIndex]->Fill(photonPt , photonPhi) ;
dc9c6e78 3864 fhEPrimMC [mcIndex]->Fill(photonE ) ;
3865
3866 if(sumpt < GetIsolationCut()->GetPtThreshold())
3867 {
3868 fhPtPrimMCiso [mcIndex] ->Fill(photonPt) ;
3869 fhPtPrimMCiso [kmcPPhoton]->Fill(photonPt) ;
3870 }
3871 }// end acceptance
3872
3873 }// Primary photon PDG22
3874 }//loop on primaries
3875 }//stack exists and data is MC
3876 }//read stack
3877
3878 else if(GetReader()->ReadAODMCParticles())
3879 {
3880 TClonesArray * mcparticles = GetReader()->GetAODMCParticles();
3881 if(mcparticles)
3882 {
3883 Int_t nprim = mcparticles->GetEntriesFast();
3884
3885 for(Int_t i=0; i < nprim; i++)
3886 {
3887 if(GetReader()->AcceptOnlyHIJINGLabels() && !GetReader()->IsHIJINGLabel(i)) continue ;
3888
3889 AliAODMCParticle * prim = (AliAODMCParticle *) mcparticles->At(i);
3890
3891 pdg = prim->GetPdgCode();
3892
3893 if(pdg == 22)
3894 {
3895 // Get tag of this particle photon from fragmentation, decay, prompt ...
3896 tag = GetMCAnalysisUtils()->CheckOrigin(i,GetReader());
3897
3898 if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton))
3899 {
3900 //A conversion photon from a hadron, skip this kind of photon
3901 // printf("AliAnaPhoton::FillAcceptanceHistograms() - not a photon, weird!\n ");
3902 // GetMCAnalysisUtils()->PrintMCTag(tag);
3903
3904 return;
3905 }
3906
3907 //Get photon kinematics
3908 if(prim->E() == TMath::Abs(prim->Pz())) continue ; //Protection against floating point exception
3909
6aac3409 3910 //photonY = 0.5*TMath::Log((prim->E()-prim->Pz())/(prim->E()+prim->Pz())) ;
dc9c6e78 3911 photonE = prim->E() ;
3912 photonPt = prim->Pt() ;
3913 photonPhi = prim->Phi() ;
3914 if(photonPhi < 0) photonPhi+=TMath::TwoPi();
3915 photonEta = prim->Eta() ;
3916
3917 //Check if photons hit the Calorimeter
3918 TLorentzVector lv;
3919 lv.SetPxPyPzE(prim->Px(),prim->Py(),prim->Pz(),prim->E());
3920 inacceptance = kFALSE;
3921 if (fCalorimeter == "PHOS")
3922 {
3923 if(GetPHOSGeometry() && GetCaloUtils()->IsPHOSGeoMatrixSet())
3924 {
3925 Int_t mod ;
3926 Double_t x,z ;
3927 Double_t vtx[]={prim->Xv(),prim->Yv(),prim->Zv()};
3928 if(GetPHOSGeometry()->ImpactOnEmc(vtx, prim->Theta(),prim->Phi(),mod,z,x))
3929 inacceptance = kTRUE;
3930 if(GetDebug() > 2) printf("In %s Real acceptance? %d\n",fCalorimeter.Data(),inacceptance);
3931 }
3932 else
3933 {
3934 if(GetFiducialCut()->IsInFiducialCut(lv,fCalorimeter))
3935 inacceptance = kTRUE ;
3936 if(GetDebug() > 2) printf("In %s fiducial cut acceptance? %d\n",fCalorimeter.Data(),inacceptance);
3937 }
3938 }
3939 else if(fCalorimeter == "EMCAL" /*&& GetCaloUtils()->IsEMCALGeoMatrixSet()*/)
3940 {
3941// if(GetEMCALGeometry())
3942// {
3943// Int_t absID=0;
3944//
3945// //GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(prim->Eta(),prim->Phi(),absID);
3946//
3947// //if( absID >= 0){
3948// if(GetFiducialCut()->IsInFiducialCut(lv,fCalorimeter))
3949// inacceptance = kTRUE;
3950//
3951// if(GetDebug() > 2) printf("In %s Real acceptance? %d\n",fCalorimeter.Data(),inacceptance);
3952// }
3953// else
3954 {
3955 if(GetFiducialCut()->IsInFiducialCut(lv,fCalorimeter))
3956 inacceptance = kTRUE ;
3957
3958 if(GetDebug() > 2) printf("In %s fiducial cut acceptance? %d\n",fCalorimeter.Data(),inacceptance);
3959 }
3960 } //In EMCAL
3961
3962 //Fill histograms
3963 if(inacceptance)
3964 {
3965 fhEtaPrimMC[kmcPPhoton]->Fill(photonPt, photonEta) ;
db4ffddf 3966 fhPhiPrimMC[kmcPPhoton]->Fill(photonPt, photonPhi) ;
dc9c6e78 3967 fhEPrimMC [kmcPPhoton]->Fill(photonE) ;
3968 }
3969
3970 //Origin of photon
3971 if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt))
3972 {
3973 mcIndex = kmcPPrompt;
3974 }
3975 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation))
3976 {
3977 mcIndex = kmcPFragmentation ;
3978 }
3979 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCISR))
3980 {
3981 mcIndex = kmcPISR;
3982 }
3983 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay))
3984 {
3985 mcIndex = kmcPPi0Decay;
3986 }
3987 else if( (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay) ||
3988 GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)))
3989 {
3990 mcIndex = kmcPOtherDecay;
3991 }
3992 else
3993 {
3994 mcIndex = kmcPOther;
3995 }//Other origin
3996
3997 ////////////////////ISO MC/////////////////////////
3998 Double_t sumpt = 0; Double_t dR=0. ;
3999 for(Int_t ip = 0; ip < nprim ; ip++)
4000 {
4001 AliAODMCParticle * mcisop = (AliAODMCParticle *) mcparticles->At(ip);
4002
4003 if(!mcisop)
4004 continue;
4005
4006 if(ip==i)
4007 continue;
4008
4009 if(mcisop->GetStatus()!=1)
4010 continue;
4011
4012 if(mcisop->GetMother() == i)
4013 continue;
4014
4015 if(mcisop->Pt()<0.2)
4016 continue;
4017
4018 // TVector3 vmcv(mcisop->Px(),mcisop->Py(), mcisop->Pz());
4019 // if(vmcv.Perp()>1)
4020 // continue;
4021
4022 dR = GetIsolationCut()->Radius(photonEta, photonPhi, mcisop->Eta(), mcisop->Phi());
dc9c6e78 4023
4024 if(dR> GetIsolationCut()->GetConeSize())
4025 continue;
4026
4027 sumpt += mcisop->Pt();
4028 }
4029 ///////////////////END ISO MC/////////////////////////
4030
4031 if(inacceptance)
4032 {
4033 fhEtaPrimMC[mcIndex]->Fill(photonPt , photonEta) ;
db4ffddf 4034 fhPhiPrimMC[mcIndex]->Fill(photonPt , photonPhi) ;
dc9c6e78 4035 fhEPrimMC [mcIndex]->Fill(photonE) ;
4036
4037 if(sumpt < GetIsolationCut()->GetPtThreshold())
4038 {
4039 fhPtPrimMCiso [mcIndex] ->Fill(photonPt) ;
4040 fhPtPrimMCiso [kmcPPhoton]->Fill(photonPt) ;
4041 }
4042 }//acceptance
4043
4044 }// Primary photon
4045 }//loop on primaries
4046
4047 }//kmc array exists and data is MC
4048 } // read AOD MC
4049
4050}
4051
4052
803d06a8 4053//_____________________________________________________________________________________
1a31a9ab 4054void AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelation* ph)
4055{
1a31a9ab 4056
db6fb352 4057 //Isolation Cut Analysis for both methods and different pt cuts and cones
4058 Float_t ptC = ph->Pt();
4059 Float_t etaC = ph->Eta();
4060 Float_t phiC = ph->Phi();
4061 Int_t tag = ph->GetTag();
4062 Bool_t decay = ph->IsTagged();
b0a31c92 4063
03bae431 4064 if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeSeveralICAnalysis() - Isolate pT %2.2f\n",ptC);
4065
1a31a9ab 4066 //Keep original setting used when filling AODs, reset at end of analysis
4067 Float_t ptthresorg = GetIsolationCut()->GetPtThreshold();
4068 Float_t ptfracorg = GetIsolationCut()->GetPtFraction();
4069 Float_t rorg = GetIsolationCut()->GetConeSize();
4070
b7ce43b4 4071 Float_t coneptsum = 0 ;
db6fb352 4072 Int_t n [10][10];//[fNCones][fNPtThresFrac];
4073 Int_t nfrac[10][10];//[fNCones][fNPtThresFrac];
ca134929 4074 Bool_t isolated = kFALSE;
4075 Int_t nCone = 0;
4076 Int_t nFracCone = 0;
44e48e82 4077
727a309a 4078 // Fill hist with all particles before isolation criteria
db6fb352 4079 fhPtNoIso ->Fill(ptC);
4080 fhEtaPhiNoIso->Fill(etaC,phiC);
4081
4082 if(IsDataMC())
4083 {
4084 if (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton)) fhPtNoIsoMCPhoton ->Fill(ptC);
764ab1f4 4085 if (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)) fhPtNoIsoPi0 ->Fill(ptC);
4086 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtNoIsoPi0Decay ->Fill(ptC);
db6fb352 4087 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtNoIsoEtaDecay ->Fill(ptC);
4088 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtNoIsoOtherDecay ->Fill(ptC);
4089 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtNoIsoPrompt ->Fill(ptC);
4090 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtNoIsoFragmentation->Fill(ptC);
764ab1f4 4091// else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtNoIsoConversion ->Fill(ptC);
4092 else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)) fhPtNoIsoHadron ->Fill(ptC);
db6fb352 4093 }
4094
4095 if(decay)
4096 {
4097 fhPtDecayNoIso ->Fill(ptC);
4098 fhEtaPhiDecayNoIso->Fill(etaC,phiC);
4099 }
44e48e82 4100 //Get vertex for photon momentum calculation
4101 Double_t vertex[] = {0,0,0} ; //vertex ;
4102 if(GetReader()->GetDataType() != AliCaloTrackReader::kMC)
44e48e82 4103 GetReader()->GetVertex(vertex);
44e48e82 4104
1a31a9ab 4105 //Loop on cone sizes
b5dbb99b 4106 for(Int_t icone = 0; icone<fNCones; icone++)
4107 {
44e48e82 4108 //Recover reference arrays with clusters and tracks
4109 TObjArray * refclusters = ph->GetObjArray(GetAODObjArrayName()+"Clusters");
4110 TObjArray * reftracks = ph->GetObjArray(GetAODObjArrayName()+"Tracks");
4111
4112 //If too small or too large pt, skip
4113 if(ptC < GetMinPt() || ptC > GetMaxPt() ) continue ;
4114
4115 //In case a more strict IC is needed in the produced AOD
4116
b7ce43b4 4117 nCone=0; nFracCone = 0; isolated = kFALSE; coneptsum = 0;
44e48e82 4118
4119 GetIsolationCut()->SetSumPtThreshold(100);
4120 GetIsolationCut()->SetPtThreshold(100);
4121 GetIsolationCut()->SetPtFraction(100);
4122 GetIsolationCut()->SetConeSize(fConeSizes[icone]);
4123 GetIsolationCut()->MakeIsolationCut(reftracks, refclusters,
4124 GetReader(), GetCaloPID(),
727a309a 4125 kFALSE, ph, "",
4126 nCone,nFracCone,coneptsum, isolated);
44e48e82 4127
4128 fhSumPtLeadingPt[icone]->Fill(ptC,coneptsum);
db6fb352 4129
44e48e82 4130 // retreive pt tracks to fill histo vs. pt leading
4131 //Fill pt distribution of particles in cone
23130491 4132 //fhPtLeadingPt(),fhPerpSumPtLeadingPt(),fhPerpPtLeadingPt(),
44e48e82 4133
4134 //Tracks
4135 coneptsum = 0;
23130491 4136 Double_t sumptPerp = 0. ;
44e48e82 4137 TObjArray * trackList = GetCTSTracks() ;
4138 for(Int_t itrack=0; itrack < trackList->GetEntriesFast(); itrack++)
4139 {
4140 AliVTrack* track = (AliVTrack *) trackList->At(itrack);
4141 //fill the histograms at forward range
4142 if(!track)
4143 {
4144 printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Track not available?");
4145 continue;
4146 }
4147
4148 Double_t dPhi = phiC - track->Phi() + TMath::PiOver2();
4149 Double_t dEta = etaC - track->Eta();
4150 Double_t arg = dPhi*dPhi + dEta*dEta;
4151 if(TMath::Sqrt(arg) < fConeSizes[icone])
4152 {
23130491 4153 fhPerpPtLeadingPt[icone]->Fill(ptC,TMath::Sqrt(track->Px()*track->Px()+track->Py()*track->Py()));
4154 sumptPerp+=track->Pt();
44e48e82 4155 }
4156
4157 dPhi = phiC - track->Phi() - TMath::PiOver2();
4158 arg = dPhi*dPhi + dEta*dEta;
4159 if(TMath::Sqrt(arg) < fConeSizes[icone])
4160 {
23130491 4161 fhPerpPtLeadingPt[icone]->Fill(ptC,TMath::Sqrt(track->Px()*track->Px()+track->Py()*track->Py()));
4162 sumptPerp+=track->Pt();
44e48e82 4163 }
4164 }
23130491 4165
4166 fhPerpSumPtLeadingPt[icone]->Fill(ptC,sumptPerp);
4167
44e48e82 4168 if(reftracks)
4169 {
4170 for(Int_t itrack=0; itrack < reftracks->GetEntriesFast(); itrack++)
4171 {
4172 AliVTrack* track = (AliVTrack *) reftracks->At(itrack);
4173 fhPtLeadingPt[icone]->Fill(ptC,TMath::Sqrt(track->Px()*track->Px()+track->Py()*track->Py()));
4174 coneptsum+=track->Pt();
4175 }
23130491 4176 }
4177
44e48e82 4178 //CaloClusters
4179 if(refclusters)
4180 {
4181 TLorentzVector mom ;
4182 for(Int_t icalo=0; icalo < refclusters->GetEntriesFast(); icalo++)
4183 {
4184 AliVCluster* calo = (AliVCluster *) refclusters->At(icalo);
4185 calo->GetMomentum(mom,vertex) ;//Assume that come from vertex in straight line
4186
4187 fhPtLeadingPt[icone]->Fill(ptC, mom.Pt());
4188 coneptsum+=mom.Pt();
4189 }
4190 }
4191 ///////////////////
4192
4193
1a31a9ab 4194 //Loop on ptthresholds
b5dbb99b 4195 for(Int_t ipt = 0; ipt<fNPtThresFrac ;ipt++)
4196 {
db6fb352 4197 n [icone][ipt]=0;
1a31a9ab 4198 nfrac[icone][ipt]=0;
4199 GetIsolationCut()->SetPtThreshold(fPtThresholds[ipt]);
db6fb352 4200 GetIsolationCut()->SetPtFraction(fPtFractions[ipt]) ;
4201 GetIsolationCut()->SetSumPtThreshold(fSumPtThresholds[ipt]);
4202
44e48e82 4203 GetIsolationCut()->MakeIsolationCut(reftracks, refclusters,
ac5111f9 4204 GetReader(), GetCaloPID(),
b5dbb99b 4205 kFALSE, ph, "",
4206 n[icone][ipt],nfrac[icone][ipt],coneptsum, isolated);
1a31a9ab 4207
db6fb352 4208 if(!isolated) continue;
1a31a9ab 4209 //Normal ptThreshold cut
db6fb352 4210
4211 if(GetDebug() > 0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - cone size %1.1f, ptThres %1.1f, sumptThresh %1.1f, n %d, nfrac %d, coneptsum %2.2f, isolated %d\n",
4212 fConeSizes[icone],fPtThresholds[ipt],fSumPtThresholds[ipt],n[icone][ipt],nfrac[icone][ipt],coneptsum, isolated);
4213 if(GetDebug() > 0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - pt %1.1f, eta %1.1f, phi %1.1f\n",ptC, etaC, phiC);
4214
b5dbb99b 4215 if(n[icone][ipt] == 0)
4216 {
db6fb352 4217 if(GetDebug()>0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - filling pt threshold loop\n");
1a31a9ab 4218 fhPtThresIsolated[icone][ipt]->Fill(ptC);
db6fb352 4219 fhEtaPhiPtThresIso[icone][ipt]->Fill(etaC,phiC);
4220
4221 if(decay)
4222 {
4223 fhPtPtThresDecayIso[icone][ipt]->Fill(ptC);
4224 // fhEtaPhiPtThresDecayIso[icone][ipt]->Fill(etaC,phiC);
4225 }
4226
b5dbb99b 4227 if(IsDataMC())
4228 {
803d06a8 4229 if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtThresIsolatedPrompt[icone][ipt] ->Fill(ptC) ;
764ab1f4 4230// else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtThresIsolatedConversion[icone][ipt] ->Fill(ptC) ;
803d06a8 4231 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtThresIsolatedFragmentation[icone][ipt]->Fill(ptC) ;
764ab1f4 4232 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)) fhPtThresIsolatedPi0[icone][ipt] ->Fill(ptC) ;
803d06a8 4233 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtThresIsolatedPi0Decay[icone][ipt] ->Fill(ptC) ;
4234 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtThresIsolatedEtaDecay[icone][ipt] ->Fill(ptC) ;
4235 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtThresIsolatedOtherDecay[icone][ipt] ->Fill(ptC) ;
764ab1f4 4236 else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)) fhPtThresIsolatedHadron[icone][ipt] ->Fill(ptC) ;
1a31a9ab 4237 }
4238 }
4239
db6fb352 4240 // pt in cone fraction
b5dbb99b 4241 if(nfrac[icone][ipt] == 0)
4242 {
db6fb352 4243 if(GetDebug()>0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - filling frac loop\n");
1a31a9ab 4244 fhPtFracIsolated[icone][ipt]->Fill(ptC);
db6fb352 4245 fhEtaPhiPtFracIso[icone][ipt]->Fill(etaC,phiC);
4246
4247 if(decay)
4248 {
4249 fhPtPtFracDecayIso[icone][ipt]->Fill(ptC);
b0a31c92 4250 fhEtaPhiPtFracDecayIso[icone][ipt]->Fill(etaC,phiC);
db6fb352 4251 }
4252
b5dbb99b 4253 if(IsDataMC())
4254 {
803d06a8 4255 if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtFracIsolatedPrompt[icone][ipt] ->Fill(ptC) ;
764ab1f4 4256// else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtFracIsolatedConversion[icone][ipt] ->Fill(ptC) ;
803d06a8 4257 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtFracIsolatedFragmentation[icone][ipt]->Fill(ptC) ;
764ab1f4 4258 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)) fhPtFracIsolatedPi0[icone][ipt] ->Fill(ptC) ;
803d06a8 4259 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtFracIsolatedPi0Decay[icone][ipt] ->Fill(ptC) ;
4260 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtFracIsolatedEtaDecay[icone][ipt] ->Fill(ptC) ;
4261 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtFracIsolatedOtherDecay[icone][ipt] ->Fill(ptC) ;
764ab1f4 4262 else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)) fhPtFracIsolatedHadron[icone][ipt]->Fill(ptC) ;
1a31a9ab 4263 }
4264 }
db6fb352 4265
4266 if(GetDebug()>0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - checking IC method : %i\n",GetIsolationCut()->GetICMethod());
4267
4268 //Pt threshold on pt cand/ sum in cone histograms
4269 if(coneptsum<fSumPtThresholds[ipt])
4270 {// if((GetIsolationCut()->GetICMethod())==1){//kSumPtIC){
4271 if(GetDebug()>0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - filling sum loop\n");
4272 fhPtSumIsolated[icone][ipt]->Fill(ptC) ;
b0a31c92 4273 fhEtaPhiPtSumIso[icone][ipt]->Fill(etaC, phiC) ;
db6fb352 4274 if(decay)
4275 {
4276 fhPtPtSumDecayIso[icone][ipt]->Fill(ptC);
b0a31c92 4277 fhEtaPhiPtSumDecayIso[icone][ipt]->Fill(etaC, phiC) ;
db6fb352 4278 }
4279 }
4280
44e48e82 4281 // pt sum pt frac method
bb5fc123 4282// if( ((fPtFractions[ipt]*ptC < fSumPtThresholds[ipt]) && (coneptsum < fSumPtThresholds[ipt])) || ((fPtFractions[ipt]*ptC > fSumPtThresholds[ipt]) && (coneptsum < fPtFractions[ipt]*ptC)) )
4283
4284 if(coneptsum < fPtFractions[ipt]*ptC)
4285 {
b0a31c92 4286 if(GetDebug()>0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - filling PtFrac PtSum loop\n");
4287 fhPtFracPtSumIso[icone][ipt]->Fill(ptC) ;
4288 fhEtaPhiFracPtSumIso[icone][ipt]->Fill(etaC,phiC) ;
4289
4290 if(decay)
4291 {
4292 fhPtFracPtSumDecayIso[icone][ipt]->Fill(ptC);
4293 fhEtaPhiFracPtSumDecayIso[icone][ipt]->Fill(etaC,phiC);
4294 }
4295 }
4296
4297 // density method
db6fb352 4298 Float_t cellDensity = GetIsolationCut()->GetCellDensity( ph, GetReader());
4299 if(coneptsum<fSumPtThresholds[ipt]*cellDensity)
4300 {//(GetIsolationCut()->GetICMethod())==4){//kSumDensityIC) {
4301 if(GetDebug()>0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - filling density loop\n");
4302 fhPtSumDensityIso[icone][ipt]->Fill(ptC) ;
b0a31c92 4303 fhEtaPhiSumDensityIso[icone][ipt]->Fill(etaC,phiC) ;
4304
db6fb352 4305 if(decay)
4306 {
4307 fhPtSumDensityDecayIso[icone][ipt]->Fill(ptC);
b0a31c92 4308 fhEtaPhiSumDensityDecayIso[icone][ipt]->Fill(etaC, phiC);
db6fb352 4309 }
4310
4311 }
1a31a9ab 4312 }//pt thresh loop
4313
b5dbb99b 4314 if(IsDataMC())
4315 {
803d06a8 4316 if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtSumIsolatedPrompt[icone] ->Fill(ptC,coneptsum) ;
764ab1f4 4317// else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtSumIsolatedConversion[icone] ->Fill(ptC,coneptsum) ;
803d06a8 4318 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtSumIsolatedFragmentation[icone]->Fill(ptC,coneptsum) ;
764ab1f4 4319 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)) fhPtSumIsolatedPi0[icone] ->Fill(ptC,coneptsum) ;
803d06a8 4320 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtSumIsolatedPi0Decay[icone] ->Fill(ptC,coneptsum) ;
4321 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtSumIsolatedEtaDecay[icone] ->Fill(ptC,coneptsum) ;
4322 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtSumIsolatedOtherDecay[icone] ->Fill(ptC,coneptsum) ;
764ab1f4 4323 else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)) fhPtSumIsolatedHadron[icone]->Fill(ptC,coneptsum) ;
1a31a9ab 4324 }
4325
4326 }//cone size loop
4327
4328 //Reset original parameters for AOD analysis
4329 GetIsolationCut()->SetPtThreshold(ptthresorg);
4330 GetIsolationCut()->SetPtFraction(ptfracorg);
4331 GetIsolationCut()->SetConeSize(rorg);
4332
4333}
4334
803d06a8 4335//_____________________________________________________________
1a31a9ab 4336void AliAnaParticleIsolation::Print(const Option_t * opt) const
4337{
4338
4339 //Print some relevant parameters set for the analysis
4340 if(! opt)
4341 return;
4342
4343 printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
745913ae 4344 AliAnaCaloTrackCorrBaseClass::Print(" ");
1a31a9ab 4345
4346 printf("ReMake Isolation = %d \n", fReMakeIC) ;
4347 printf("Make Several Isolation = %d \n", fMakeSeveralIC) ;
4348 printf("Calorimeter for isolation = %s \n", fCalorimeter.Data()) ;
4349
b5dbb99b 4350 if(fMakeSeveralIC)
4351 {
1a31a9ab 4352 printf("N Cone Sizes = %d\n", fNCones) ;
4353 printf("Cone Sizes = \n") ;
4354 for(Int_t i = 0; i < fNCones; i++)
4355 printf(" %1.2f;", fConeSizes[i]) ;
4356 printf(" \n") ;
4357
4358 printf("N pT thresholds/fractions = %d\n", fNPtThresFrac) ;
4359 printf(" pT thresholds = \n") ;
4360 for(Int_t i = 0; i < fNPtThresFrac; i++)
4361 printf(" %2.2f;", fPtThresholds[i]) ;
4362
4363 printf(" \n") ;
4364
4365 printf(" pT fractions = \n") ;
4366 for(Int_t i = 0; i < fNPtThresFrac; i++)
4367 printf(" %2.2f;", fPtFractions[i]) ;
4368
db6fb352 4369 printf(" \n") ;
4370
4371 printf("sum pT thresholds = \n") ;
4372 for(Int_t i = 0; i < fNPtThresFrac; i++)
4373 printf(" %2.2f;", fSumPtThresholds[i]) ;
4374
4375
1a31a9ab 4376 }
4377
b5dbb99b 4378 printf("Histograms: %3.1f < pT sum < %3.1f, Nbin = %d\n", fHistoPtSumMin, fHistoPtSumMax, fHistoNPtSumBins );
1a31a9ab 4379 printf("Histograms: %3.1f < pT in cone < %3.1f, Nbin = %d\n", fHistoPtInConeMin, fHistoPtInConeMax, fHistoNPtInConeBins);
4380
4381 printf(" \n") ;
4382
4383}
4384