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