]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.cxx
changes from fzhou
[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>
35
36// --- Analysis system ---
37#include "AliAnaParticleIsolation.h"
38#include "AliCaloTrackReader.h"
39#include "AliIsolationCut.h"
40#include "AliNeutralMesonSelection.h"
41#include "AliAODPWG4ParticleCorrelation.h"
42#include "AliMCAnalysisUtils.h"
43#include "AliVTrack.h"
44#include "AliVCluster.h"
2ad19c3d 45#include "AliESDEvent.h"
46#include "AliAODEvent.h"
1a31a9ab 47
48ClassImp(AliAnaParticleIsolation)
db6fb352 49
803d06a8 50//______________________________________________________________________________
db6fb352 51AliAnaParticleIsolation::AliAnaParticleIsolation() :
52AliAnaCaloTrackCorrBaseClass(), fCalorimeter(""),
53fReMakeIC(0), fMakeSeveralIC(0),
2ad19c3d 54fFillPileUpHistograms(0),
db6fb352 55fFillTMHisto(0), fFillSSHisto(0),
56// Several IC
57fNCones(0), fNPtThresFrac(0),
58fConeSizes(), fPtThresholds(),
59fPtFractions(), fSumPtThresholds(),
60// Histograms
8736d400 61fhEIso(0), fhPtIso(0), fhPtNLocMaxIso(0),
db6fb352 62fhPhiIso(0), fhEtaIso(0), fhEtaPhiIso(0),
63fhEtaPhiNoIso(0),
b1f720a7 64fhENoIso(0), fhPtNoIso(0), fhPtNLocMaxNoIso(0),
8736d400 65fhPtDecayIso(0), fhPtDecayNoIso(0),
db6fb352 66fhEtaPhiDecayIso(0), fhEtaPhiDecayNoIso(0),
fedea415 67fhConeSumPt(0), fhPtInCone(0),
2a9171b5 68fhPtTrackInCone(0),
69fhPtTrackInConeOtherBC(0), fhPtTrackInConeOtherBCPileUpSPD(0),
70fhPtTrackInConeBC0(0), fhPtTrackInConeBC0PileUpSPD(0),
17af6e24 71fhPtInConePileUp(), fhPtInConeCent(0),
b7ce43b4 72fhFRConeSumPt(0), fhPtInFRCone(0), fhPhiUEConeSumPt(0),
73fhEtaUEConeSumPt(0), fhEtaBand(0), fhPhiBand(0),
74fhConeSumPtEtaUESub(0), fhConeSumPtPhiUESub(0),
db6fb352 75// MC histograms
76fhPtIsoPrompt(0), fhPhiIsoPrompt(0), fhEtaIsoPrompt(0),
77fhPtThresIsolatedPrompt(), fhPtFracIsolatedPrompt(), fhPtSumIsolatedPrompt(),
78fhPtIsoFragmentation(0), fhPhiIsoFragmentation(0), fhEtaIsoFragmentation(0),
79fhPtThresIsolatedFragmentation(), fhPtFracIsolatedFragmentation(), fhPtSumIsolatedFragmentation(),
764ab1f4 80fhPtIsoPi0(0), fhPhiIsoPi0(0), fhEtaIsoPi0(0),
81fhPtThresIsolatedPi0(), fhPtFracIsolatedPi0(), fhPtSumIsolatedPi0(),
db6fb352 82fhPtIsoPi0Decay(0), fhPhiIsoPi0Decay(0), fhEtaIsoPi0Decay(0),
83fhPtThresIsolatedPi0Decay(), fhPtFracIsolatedPi0Decay(), fhPtSumIsolatedPi0Decay(),
84fhPtIsoEtaDecay(0), fhPhiIsoEtaDecay(0), fhEtaIsoEtaDecay(0),
85fhPtThresIsolatedEtaDecay(), fhPtFracIsolatedEtaDecay(), fhPtSumIsolatedEtaDecay(),
86fhPtIsoOtherDecay(0), fhPhiIsoOtherDecay(0), fhEtaIsoOtherDecay(0),
87fhPtThresIsolatedOtherDecay(), fhPtFracIsolatedOtherDecay(), fhPtSumIsolatedOtherDecay(),
764ab1f4 88//fhPtIsoConversion(0), fhPhiIsoConversion(0), fhEtaIsoConversion(0),
89//fhPtThresIsolatedConversion(), fhPtFracIsolatedConversion(), fhPtSumIsolatedConversion(),
90fhPtIsoHadron(0), fhPhiIsoHadron(0), fhEtaIsoHadron(0),
91fhPtThresIsolatedHadron(), fhPtFracIsolatedHadron(), fhPtSumIsolatedHadron(),
92fhPtNoIsoPi0(0), fhPtNoIsoPi0Decay(0),
93fhPtNoIsoEtaDecay(0), fhPtNoIsoOtherDecay(0),
db6fb352 94fhPtNoIsoPrompt(0), fhPtIsoMCPhoton(0), fhPtNoIsoMCPhoton(0),
764ab1f4 95//fhPtNoIsoConversion(0),
96fhPtNoIsoFragmentation(0), fhPtNoIsoHadron(0),
db6fb352 97// Hist several IC
764ab1f4 98fhSumPtLeadingPt(), fhPtLeadingPt(),
99fhFRSumPtLeadingPt(), fhFRPtLeadingPt(),
db6fb352 100fhPtThresIsolated(), fhPtFracIsolated(), fhPtSumIsolated(),
101fhEtaPhiPtThresIso(), fhEtaPhiPtThresDecayIso(), fhPtPtThresDecayIso(),
102fhEtaPhiPtFracIso(), fhEtaPhiPtFracDecayIso(), fhPtPtFracDecayIso(),
b0a31c92 103fhPtPtSumDecayIso(), fhEtaPhiSumDensityIso(), fhEtaPhiSumDensityDecayIso(),
104fhPtSumDensityIso(), fhPtSumDensityDecayIso(),
105fhPtFracPtSumIso(), fhPtFracPtSumDecayIso(),
106fhEtaPhiFracPtSumIso(), fhEtaPhiFracPtSumDecayIso(),
db6fb352 107// Cluster control histograms
ca134929 108fhTrackMatchedDEta(), fhTrackMatchedDPhi(), fhTrackMatchedDEtaDPhi(),
109fhdEdx(), fhEOverP(), fhTrackMatchedMCParticle(),
db7b861a 110fhELambda0() , fhELambda1(), fhELambda0SSBkg(),
ca134929 111fhELambda0TRD(), fhELambda1TRD(),
764ab1f4 112fhELambda0MCPhoton(), fhELambda0MCPi0(), fhELambda0MCPi0Decay(),
113fhELambda0MCEtaDecay(), fhELambda0MCOtherDecay(), fhELambda0MCHadron(),
db6fb352 114// Number of local maxima in cluster
ca134929 115fhNLocMax(),
116fhELambda0LocMax1(), fhELambda1LocMax1(),
117fhELambda0LocMax2(), fhELambda1LocMax2(),
118fhELambda0LocMaxN(), fhELambda1LocMaxN(),
2ad19c3d 119// PileUp
17af6e24 120fhEIsoPileUp(), fhPtIsoPileUp(),
121fhENoIsoPileUp(), fhPtNoIsoPileUp(),
2ad19c3d 122fhTimeENoCut(0), fhTimeESPD(0), fhTimeESPDMulti(0),
123fhTimeNPileUpVertSPD(0), fhTimeNPileUpVertTrack(0),
124fhTimeNPileUpVertContributors(0),
125fhTimePileUpMainVertexZDistance(0), fhTimePileUpMainVertexZDiamond(0),
db6fb352 126// Histograms settings
127fHistoNPtSumBins(0), fHistoPtSumMax(0.), fHistoPtSumMin(0.),
128fHistoNPtInConeBins(0), fHistoPtInConeMax(0.), fHistoPtInConeMin(0.)
1a31a9ab 129{
130 //default ctor
131
132 //Initialize parameters
133 InitParameters();
db6fb352 134
b5dbb99b 135 for(Int_t i = 0; i < 5 ; i++)
136 {
803d06a8 137 fConeSizes[i] = 0 ;
1a31a9ab 138
db6fb352 139 fhPtSumIsolatedPrompt [i] = 0 ;
1a31a9ab 140 fhPtSumIsolatedFragmentation[i] = 0 ;
db6fb352 141 fhPtSumIsolatedPi0Decay [i] = 0 ;
764ab1f4 142 fhPtSumIsolatedPi0 [i] = 0 ;
db6fb352 143 fhPtSumIsolatedEtaDecay [i] = 0 ;
144 fhPtSumIsolatedOtherDecay [i] = 0 ;
764ab1f4 145// fhPtSumIsolatedConversion [i] = 0 ;
146 fhPtSumIsolatedHadron [i] = 0 ;
1a31a9ab 147
b5dbb99b 148 for(Int_t j = 0; j < 5 ; j++)
149 {
db6fb352 150 fhPtThresIsolated [i][j] = 0 ;
151 fhPtFracIsolated [i][j] = 0 ;
152 fhPtSumIsolated [i][j] = 0 ;
153
154 fhEtaPhiPtThresIso [i][j] = 0 ;
155 fhEtaPhiPtThresDecayIso[i][j] = 0 ;
156 fhPtPtThresDecayIso [i][j] = 0 ;
157
158 fhEtaPhiPtFracIso [i][j] = 0 ;
159 fhEtaPhiPtFracDecayIso [i][j] = 0 ;
160 fhPtPtFracDecayIso [i][j] = 0 ;
161 fhPtPtSumDecayIso [i][j] = 0 ;
162 fhPtSumDensityIso [i][j] = 0 ;
163 fhPtSumDensityDecayIso [i][j] = 0 ;
b0a31c92 164 fhEtaPhiSumDensityIso [i][j] = 0 ;
165 fhEtaPhiSumDensityDecayIso [i][j] = 0 ;
ca134929 166 fhPtFracPtSumIso [i][j] = 0 ;
167 fhPtFracPtSumDecayIso [i][j] = 0 ;
b0a31c92 168 fhEtaPhiFracPtSumIso [i][j] = 0 ;
169 fhEtaPhiFracPtSumDecayIso [i][j] = 0 ;
db6fb352 170
171 fhPtThresIsolatedPrompt [i][j] = 0 ;
172 fhPtThresIsolatedFragmentation[i][j] = 0 ;
173 fhPtThresIsolatedPi0Decay [i][j] = 0 ;
764ab1f4 174 fhPtThresIsolatedPi0 [i][j] = 0 ;
175 fhPtThresIsolatedEtaDecay [i][j] = 0 ;
db6fb352 176 fhPtThresIsolatedOtherDecay [i][j] = 0 ;
764ab1f4 177// fhPtThresIsolatedConversion [i][j] = 0 ;
178 fhPtThresIsolatedHadron [i][j] = 0 ;
db6fb352 179
180 fhPtFracIsolatedPrompt [i][j] = 0 ;
181 fhPtFracIsolatedFragmentation [i][j] = 0 ;
764ab1f4 182 fhPtFracIsolatedPi0 [i][j] = 0 ;
db6fb352 183 fhPtFracIsolatedPi0Decay [i][j] = 0 ;
184 fhPtFracIsolatedEtaDecay [i][j] = 0 ;
185 fhPtFracIsolatedOtherDecay [i][j] = 0 ;
764ab1f4 186// fhPtFracIsolatedConversion [i][j] = 0 ;
187 fhPtFracIsolatedHadron [i][j] = 0 ;
db6fb352 188
1a31a9ab 189 }
190 }
191
db6fb352 192 for(Int_t i = 0; i < 5 ; i++)
193 {
194 fPtFractions [i] = 0 ;
195 fPtThresholds [i] = 0 ;
196 fSumPtThresholds[i] = 0 ;
1a31a9ab 197 }
ca134929 198
199
200 for(Int_t i = 0; i < 2 ; i++)
201 {
202 fhTrackMatchedDEta[i] = 0 ; fhTrackMatchedDPhi[i] = 0 ; fhTrackMatchedDEtaDPhi [i] = 0 ;
203 fhdEdx [i] = 0 ; fhEOverP [i] = 0 ; fhTrackMatchedMCParticle[i] = 0 ;
204 fhELambda0 [i] = 0 ; fhELambda1 [i] = 0 ;
205 fhELambda0TRD [i] = 0 ; fhELambda1TRD [i] = 0 ;
206
764ab1f4 207 fhELambda0MCPhoton [i] = 0 ; fhELambda0MCPi0 [i] = 0 ; fhELambda0MCPi0Decay[i] = 0 ;
208 fhELambda0MCEtaDecay[i] = 0 ; fhELambda0MCOtherDecay[i] = 0 ; fhELambda0MCHadron [i] = 0 ;
209
210
ca134929 211 // Number of local maxima in cluster
212 fhNLocMax [i] = 0 ;
213 fhELambda0LocMax1[i] = 0 ; fhELambda1LocMax1[i] = 0 ;
214 fhELambda0LocMax2[i] = 0 ; fhELambda1LocMax2[i] = 0 ;
215 fhELambda0LocMaxN[i] = 0 ; fhELambda1LocMaxN[i] = 0 ;
216
217 }
db6fb352 218
17af6e24 219 // Pile-Up
220
221 for(Int_t i = 0 ; i < 7 ; i++)
222 {
223 fhPtInConePileUp[i] = 0 ;
224 fhEIsoPileUp [i] = 0 ;
225 fhPtIsoPileUp [i] = 0 ;
226 fhENoIsoPileUp [i] = 0 ;
227 fhPtNoIsoPileUp [i] = 0 ;
228 }
229
1a31a9ab 230}
231
2ad19c3d 232//_________________________________________________________________
233void AliAnaParticleIsolation::FillPileUpHistograms(Int_t clusterID)
234{
235 // Fill some histograms to understand pile-up
236 if(!fFillPileUpHistograms) return;
237
238 if(clusterID < 0 )
239 {
240 printf("AliAnaParticleIsolation::FillPileUpHistograms(), ID of cluster = %d, not possible! ", clusterID);
241 return;
242 }
243
244 Int_t iclus = -1;
245 TObjArray* clusters = 0x0;
246 if (fCalorimeter == "EMCAL") clusters = GetEMCALClusters();
247 else if(fCalorimeter == "PHOS" ) clusters = GetPHOSClusters();
248
249 Float_t energy = 0;
250 Float_t time = -1000;
251
252 if(clusters)
253 {
254 AliVCluster *cluster = FindCluster(clusters,clusterID,iclus);
255 energy = cluster->E();
994051fa 256 time = cluster->GetTOF()*1e9;
2ad19c3d 257 }
258
259 //printf("E %f, time %f\n",energy,time);
260 AliVEvent * event = GetReader()->GetInputEvent();
261
262 fhTimeENoCut->Fill(energy,time);
263 if(GetReader()->IsPileUpFromSPD()) fhTimeESPD ->Fill(energy,time);
264 if(event->IsPileupFromSPDInMultBins()) fhTimeESPDMulti->Fill(energy,time);
265
de101942 266 if(energy < 8) return; // Fill time figures for high energy clusters not too close to trigger threshold
2ad19c3d 267
268 AliESDEvent* esdEv = dynamic_cast<AliESDEvent*> (event);
269 AliAODEvent* aodEv = dynamic_cast<AliAODEvent*> (event);
270
271 // N pile up vertices
272 Int_t nVerticesSPD = -1;
273 Int_t nVerticesTracks = -1;
274
275 if (esdEv)
276 {
277 nVerticesSPD = esdEv->GetNumberOfPileupVerticesSPD();
278 nVerticesTracks = esdEv->GetNumberOfPileupVerticesTracks();
279
280 }//ESD
281 else if (aodEv)
282 {
283 nVerticesSPD = aodEv->GetNumberOfPileupVerticesSPD();
284 nVerticesTracks = aodEv->GetNumberOfPileupVerticesTracks();
285 }//AOD
286
287 fhTimeNPileUpVertSPD ->Fill(time,nVerticesSPD);
288 fhTimeNPileUpVertTrack->Fill(time,nVerticesTracks);
289
290 //printf("Is SPD %d, Is SPD Multi %d, n spd %d, n track %d\n",
291 // GetReader()->IsPileUpFromSPD(),event->IsPileupFromSPDInMultBins(),nVerticesSPD,nVerticesTracks);
292
293 Int_t ncont = -1;
5559f30a 294 Float_t z1 = -1, z2 = -1;
2ad19c3d 295 Float_t diamZ = -1;
296 for(Int_t iVert=0; iVert<nVerticesSPD;iVert++)
297 {
298 if (esdEv)
299 {
300 const AliESDVertex* pv=esdEv->GetPileupVertexSPD(iVert);
301 ncont=pv->GetNContributors();
302 z1 = esdEv->GetPrimaryVertexSPD()->GetZ();
303 z2 = pv->GetZ();
304 diamZ = esdEv->GetDiamondZ();
305 }//ESD
306 else if (aodEv)
307 {
308 AliAODVertex *pv=aodEv->GetVertex(iVert);
309 if(pv->GetType()!=AliAODVertex::kPileupSPD) continue;
310 ncont=pv->GetNContributors();
311 z1=aodEv->GetPrimaryVertexSPD()->GetZ();
312 z2=pv->GetZ();
313 diamZ = aodEv->GetDiamondZ();
314 }// AOD
315
316 Double_t distZ = TMath::Abs(z2-z1);
317 diamZ = TMath::Abs(z2-diamZ);
318
319 fhTimeNPileUpVertContributors ->Fill(time,ncont);
320 fhTimePileUpMainVertexZDistance->Fill(time,distZ);
321 fhTimePileUpMainVertexZDiamond ->Fill(time,diamZ);
322
323 }// loop
324}
325
b5dbb99b 326//________________________________________________________________________________________________
ca134929 327void AliAnaParticleIsolation::FillTrackMatchingShowerShapeControlHistograms(const Bool_t isolated,
328 const Int_t clusterID,
329 const Int_t nMaxima,
db7b861a 330 const Int_t mcTag,
764ab1f4 331 const TObjArray * plCTS,
332 const TObjArray * plNe,
333 AliAODPWG4ParticleCorrelation *pCandidate,
334 const AliCaloTrackReader * reader,
db7b861a 335 const AliCaloPID * pid)
b5dbb99b 336{
db7b861a 337 // Fill Track matching and Shower Shape control histograms
b5dbb99b 338 if(!fFillTMHisto && !fFillSSHisto) return;
339
547c2f01 340 if(clusterID < 0 )
341 {
81a5e27b 342 printf("AliAnaParticleIsolation::FillTrackMatchingShowerShapeControlHistograms(), ID of cluster = %d, not possible! \n", clusterID);
547c2f01 343 return;
344 }
345
b5dbb99b 346 Int_t iclus = -1;
347 TObjArray* clusters = 0x0;
348 if (fCalorimeter == "EMCAL") clusters = GetEMCALClusters();
349 else if(fCalorimeter == "PHOS" ) clusters = GetPHOSClusters();
350
351 if(clusters)
352 {
353
354 AliVCluster *cluster = FindCluster(clusters,clusterID,iclus);
355 Float_t energy = cluster->E();
356
357 if(fFillSSHisto)
358 {
ca134929 359 fhELambda0[isolated]->Fill(energy, cluster->GetM02() );
360 fhELambda1[isolated]->Fill(energy, cluster->GetM20() );
b5dbb99b 361
764ab1f4 362 if(IsDataMC())
363 {
364 if (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt) ||
365 GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation)) fhELambda0MCPhoton [isolated]->Fill(energy, cluster->GetM02());
366 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0)) fhELambda0MCPi0 [isolated]->Fill(energy, cluster->GetM02());
367 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay)) fhELambda0MCPi0Decay [isolated]->Fill(energy, cluster->GetM02());
368 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay)) fhELambda0MCEtaDecay [isolated]->Fill(energy, cluster->GetM02());
369 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay)) fhELambda0MCOtherDecay[isolated]->Fill(energy, cluster->GetM02());
370
2dac6a45 371 // else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion)) fhPtNoIsoConversion ->Fill(energy, cluster->GetM02());
372 else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron)) fhELambda0MCHadron [isolated]->Fill(energy, cluster->GetM02());
764ab1f4 373
374 }
375
ca134929 376 if(fCalorimeter == "EMCAL" && GetModuleNumber(cluster) > 5) // TO DO: CHANGE FOR 2012
b5dbb99b 377 {
ca134929 378 fhELambda0TRD[isolated]->Fill(energy, cluster->GetM02() );
379 fhELambda1TRD[isolated]->Fill(energy, cluster->GetM20() );
b5dbb99b 380 }
5c46c992 381
ca134929 382 fhNLocMax[isolated]->Fill(energy,nMaxima);
383 if (nMaxima==1) { fhELambda0LocMax1[isolated]->Fill(energy,cluster->GetM02()); fhELambda1LocMax1[isolated]->Fill(energy,cluster->GetM20()); }
384 else if(nMaxima==2) { fhELambda0LocMax2[isolated]->Fill(energy,cluster->GetM02()); fhELambda1LocMax2[isolated]->Fill(energy,cluster->GetM20()); }
385 else { fhELambda0LocMaxN[isolated]->Fill(energy,cluster->GetM02()); fhELambda1LocMaxN[isolated]->Fill(energy,cluster->GetM20()); }
db7b861a 386
387 if(isolated==0)
388 {
389 //Analyse non-isolated events
390 Int_t n = 0;
391 Int_t nfrac = 0;
392 Bool_t iso = kFALSE ;
393 Float_t coneptsum = 0 ;
394 GetIsolationCut()->SetPtThresholdMax(1.);
395 GetIsolationCut()->MakeIsolationCut(plCTS, plNe,
396 reader, pid,
397 kFALSE, pCandidate, "",
398 n,nfrac,coneptsum, iso);
399 if (!iso) fhELambda0SSBkg->Fill(energy, cluster->GetM02());
400
5c46c992 401
db7b861a 402 if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Energy Sum in Isolation Cone %2.2f\n", coneptsum);
403 }
404 GetIsolationCut()->SetPtThresholdMax(10000.);
405
b5dbb99b 406 } // SS histo fill
407
408
409 if(fFillTMHisto)
410 {
411 Float_t dZ = cluster->GetTrackDz();
412 Float_t dR = cluster->GetTrackDx();
413
414 if(cluster->IsEMCAL() && GetCaloUtils()->IsRecalculationOfClusterTrackMatchingOn())
415 {
416 dR = 2000., dZ = 2000.;
417 GetCaloUtils()->GetEMCALRecoUtils()->GetMatchedResiduals(cluster->GetID(),dZ,dR);
418 }
419
420 //printf("ParticleIsolation: dPhi %f, dEta %f\n",dR,dZ);
ec58c056 421 if(fhTrackMatchedDEta[isolated] && TMath::Abs(dR) < 999)
b5dbb99b 422 {
ca134929 423 fhTrackMatchedDEta[isolated]->Fill(energy,dZ);
424 fhTrackMatchedDPhi[isolated]->Fill(energy,dR);
425 if(energy > 0.5) fhTrackMatchedDEtaDPhi[isolated]->Fill(dZ,dR);
b5dbb99b 426 }
427
428 // Check dEdx and E/p of matched clusters
429
430 if(TMath::Abs(dZ) < 0.05 && TMath::Abs(dR) < 0.05)
431 {
db6fb352 432
4bfeae64 433 AliVTrack *track = GetCaloUtils()->GetMatchedTrack(cluster, GetReader()->GetInputEvent());
b5dbb99b 434
435 if(track)
436 {
437 Float_t dEdx = track->GetTPCsignal();
ca134929 438 fhdEdx[isolated]->Fill(cluster->E(), dEdx);
b5dbb99b 439
440 Float_t eOverp = cluster->E()/track->P();
ca134929 441 fhEOverP[isolated]->Fill(cluster->E(), eOverp);
b5dbb99b 442 }
4bfeae64 443 //else
444 // printf("AliAnaParticleIsolation::FillTrackMatchingShowerShapeHistograms() - Residual OK but (dR, dZ)= (%2.4f,%2.4f) no track associated WHAT? \n", dR,dZ);
b5dbb99b 445
db6fb352 446
447 if(IsDataMC())
448 {
b5dbb99b 449 if ( !GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion) )
450 {
451 if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0) ||
ca134929 452 GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEta) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 2.5 );
453 else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 0.5 );
454 else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 1.5 );
455 else fhTrackMatchedMCParticle[isolated]->Fill(energy, 3.5 );
b5dbb99b 456
457 }
458 else
459 {
460 if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0) ||
ca134929 461 GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEta) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 6.5 );
462 else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 4.5 );
463 else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 5.5 );
464 else fhTrackMatchedMCParticle[isolated]->Fill(energy, 7.5 );
b5dbb99b 465 }
466
467 } // MC
468
469 } // match window
470
471 }// TM histos fill
472
473 } // clusters array available
474
475}
476
803d06a8 477//______________________________________________________
1a31a9ab 478TObjString * AliAnaParticleIsolation::GetAnalysisCuts()
479{
b0a31c92 480 //Save parameters used for analysis
1a31a9ab 481 TString parList ; //this will be list of parameters used for this analysis.
482 const Int_t buffersize = 255;
483 char onePar[buffersize] ;
484
485 snprintf(onePar, buffersize,"--- AliAnaParticleIsolation ---\n") ;
486 parList+=onePar ;
487 snprintf(onePar, buffersize,"Calorimeter: %s\n",fCalorimeter.Data()) ;
488 parList+=onePar ;
489 snprintf(onePar, buffersize,"fReMakeIC =%d (Flag for reisolation during histogram filling) \n",fReMakeIC) ;
490 parList+=onePar ;
491 snprintf(onePar, buffersize,"fMakeSeveralIC=%d (Flag for isolation with several cuts at the same time ) \n",fMakeSeveralIC) ;
09273901 492 parList+=onePar ;
493 snprintf(onePar, buffersize,"fFillTMHisto=%d (Flag for track matching histograms) \n",fFillTMHisto) ;
1a31a9ab 494 parList+=onePar ;
09273901 495 snprintf(onePar, buffersize,"fFillSSHisto=%d (Flag for shower shape histograms) \n",fFillSSHisto) ;
496 parList+=onePar ;
db6fb352 497
b5dbb99b 498 if(fMakeSeveralIC)
499 {
1a31a9ab 500 snprintf(onePar, buffersize,"fNCones =%d (Number of cone sizes) \n",fNCones) ;
501 parList+=onePar ;
502 snprintf(onePar, buffersize,"fNPtThresFrac=%d (Flag for isolation with several cuts at the same time ) \n",fNPtThresFrac) ;
503 parList+=onePar ;
504
b5dbb99b 505 for(Int_t icone = 0; icone < fNCones ; icone++)
506 {
1a31a9ab 507 snprintf(onePar, buffersize,"fConeSizes[%d]=%1.2f (isolation cone size) \n",icone, fConeSizes[icone]) ;
508 parList+=onePar ;
509 }
b5dbb99b 510 for(Int_t ipt = 0; ipt < fNPtThresFrac ; ipt++)
511 {
1a31a9ab 512 snprintf(onePar, buffersize,"fPtThresholds[%d]=%1.2f (isolation pt threshold) \n",ipt, fPtThresholds[ipt]) ;
513 parList+=onePar ;
514 }
b5dbb99b 515 for(Int_t ipt = 0; ipt < fNPtThresFrac ; ipt++)
516 {
1a31a9ab 517 snprintf(onePar, buffersize,"fPtFractions[%d]=%1.2f (isolation pt fraction threshold) \n",ipt, fPtFractions[ipt]) ;
518 parList+=onePar ;
db6fb352 519 }
520 for(Int_t ipt = 0; ipt < fNPtThresFrac ; ipt++)
521 {
522 snprintf(onePar, buffersize,"fSumPtThresholds[%d]=%1.2f (isolation sum pt threshold) \n",ipt, fSumPtThresholds[ipt]) ;
523 parList+=onePar ;
1a31a9ab 524 }
525 }
526
527 //Get parameters set in base class.
528 parList += GetBaseParametersList() ;
529
530 //Get parameters set in IC class.
531 if(!fMakeSeveralIC)parList += GetIsolationCut()->GetICParametersList() ;
532
533 return new TObjString(parList) ;
b0a31c92 534
1a31a9ab 535}
536
803d06a8 537//________________________________________________________
1a31a9ab 538TList * AliAnaParticleIsolation::GetCreateOutputObjects()
539{
540 // Create histograms to be saved in output file and
541 // store them in outputContainer
542 TList * outputContainer = new TList() ;
543 outputContainer->SetName("IsolatedParticleHistos") ;
544
745913ae 545 Int_t nptbins = GetHistogramRanges()->GetHistoPtBins();
546 Int_t nphibins = GetHistogramRanges()->GetHistoPhiBins();
547 Int_t netabins = GetHistogramRanges()->GetHistoEtaBins();
548 Float_t ptmax = GetHistogramRanges()->GetHistoPtMax();
549 Float_t phimax = GetHistogramRanges()->GetHistoPhiMax();
550 Float_t etamax = GetHistogramRanges()->GetHistoEtaMax();
551 Float_t ptmin = GetHistogramRanges()->GetHistoPtMin();
552 Float_t phimin = GetHistogramRanges()->GetHistoPhiMin();
553 Float_t etamin = GetHistogramRanges()->GetHistoEtaMin();
09273901 554 Int_t ssbins = GetHistogramRanges()->GetHistoShowerShapeBins();
555 Float_t ssmax = GetHistogramRanges()->GetHistoShowerShapeMax();
556 Float_t ssmin = GetHistogramRanges()->GetHistoShowerShapeMin();
2ad19c3d 557 Int_t ntimebins= GetHistogramRanges()->GetHistoTimeBins();
558 Float_t timemax = GetHistogramRanges()->GetHistoTimeMax();
559 Float_t timemin = GetHistogramRanges()->GetHistoTimeMin();
560
09273901 561 Int_t nresetabins = GetHistogramRanges()->GetHistoTrackResidualEtaBins();
562 Float_t resetamax = GetHistogramRanges()->GetHistoTrackResidualEtaMax();
563 Float_t resetamin = GetHistogramRanges()->GetHistoTrackResidualEtaMin();
564 Int_t nresphibins = GetHistogramRanges()->GetHistoTrackResidualPhiBins();
565 Float_t resphimax = GetHistogramRanges()->GetHistoTrackResidualPhiMax();
566 Float_t resphimin = GetHistogramRanges()->GetHistoTrackResidualPhiMin();
803d06a8 567
31ae6d59 568 Int_t ndedxbins = GetHistogramRanges()->GetHistodEdxBins();
569 Float_t dedxmax = GetHistogramRanges()->GetHistodEdxMax();
570 Float_t dedxmin = GetHistogramRanges()->GetHistodEdxMin();
571 Int_t nPoverEbins = GetHistogramRanges()->GetHistoPOverEBins();
572 Float_t pOverEmax = GetHistogramRanges()->GetHistoPOverEMax();
573 Float_t pOverEmin = GetHistogramRanges()->GetHistoPOverEMin();
574
803d06a8 575 Int_t nptsumbins = fHistoNPtSumBins;
576 Float_t ptsummax = fHistoPtSumMax;
577 Float_t ptsummin = fHistoPtSumMin;
578 Int_t nptinconebins = fHistoNPtInConeBins;
579 Float_t ptinconemax = fHistoPtInConeMax;
580 Float_t ptinconemin = fHistoPtInConeMin;
1a31a9ab 581
db6fb352 582 Float_t ptthre = GetIsolationCut()->GetPtThreshold();
583 Float_t ptfrac = GetIsolationCut()->GetPtFraction();
584 Float_t r = GetIsolationCut()->GetConeSize();
585
17af6e24 586 TString pileUpName[] = {"SPD","EMCAL","SPDOrEMCAL","SPDAndEMCAL","SPDAndNotEMCAL","EMCALAndNotSPD","NotSPDAndNotEMCAL"} ;
587
b5dbb99b 588 if(!fMakeSeveralIC)
589 {
ca134929 590 TString hName [] = {"NoIso",""};
591 TString hTitle[] = {"Not isolated" ,"isolated"};
764ab1f4 592 if(fFillSSHisto)
593 {
db7b861a 594 fhELambda0SSBkg = new TH2F
764ab1f4 595 ("hELambda0SSBkg","Non isolated clusters : E vs #lambda_{0}",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
596 fhELambda0SSBkg->SetYTitle("#lambda_{0}^{2}");
597 fhELambda0SSBkg->SetXTitle("E (GeV)");
598 outputContainer->Add(fhELambda0SSBkg) ;
599 }
600
ca134929 601 for(Int_t iso = 0; iso < 2; iso++)
b5dbb99b 602 {
ca134929 603 if(fFillTMHisto)
31ae6d59 604 {
ca134929 605 fhTrackMatchedDEta[iso] = new TH2F
606 (Form("hTrackMatchedDEta%s",hName[iso].Data()),
607 Form("%s - d#eta of cluster-track vs cluster energy for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",hTitle[iso].Data(),r,ptthre,ptfrac),
608 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
609 fhTrackMatchedDEta[iso]->SetYTitle("d#eta");
610 fhTrackMatchedDEta[iso]->SetXTitle("E_{cluster} (GeV)");
611
612 fhTrackMatchedDPhi[iso] = new TH2F
613 (Form("hTrackMatchedDPhi%s",hName[iso].Data()),
614 Form("%s - d#phi of cluster-track vs cluster energy for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",hTitle[iso].Data(),r,ptthre,ptfrac),
615 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
616 fhTrackMatchedDPhi[iso]->SetYTitle("d#phi (rad)");
617 fhTrackMatchedDPhi[iso]->SetXTitle("E_{cluster} (GeV)");
618
619 fhTrackMatchedDEtaDPhi[iso] = new TH2F
620 (Form("hTrackMatchedDEtaDPhi%s",hName[iso].Data()),
621 Form("%s - d#eta vs d#phi of cluster-track for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",hTitle[iso].Data(),r,ptthre,ptfrac),
622 nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
623 fhTrackMatchedDEtaDPhi[iso]->SetYTitle("d#phi (rad)");
624 fhTrackMatchedDEtaDPhi[iso]->SetXTitle("d#eta");
625
626 outputContainer->Add(fhTrackMatchedDEta[iso]) ;
627 outputContainer->Add(fhTrackMatchedDPhi[iso]) ;
628 outputContainer->Add(fhTrackMatchedDEtaDPhi[iso]) ;
31ae6d59 629
ca134929 630 fhdEdx[iso] = new TH2F
631 (Form("hdEdx%s",hName[iso].Data()),
632 Form("%s - Matched track <dE/dx> vs cluster E for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",hTitle[iso].Data(),r,ptthre,ptfrac),
633 nptbins,ptmin,ptmax,ndedxbins, dedxmin, dedxmax);
634 fhdEdx[iso]->SetXTitle("E (GeV)");
635 fhdEdx[iso]->SetYTitle("<dE/dx>");
636 outputContainer->Add(fhdEdx[iso]);
31ae6d59 637
ca134929 638 fhEOverP[iso] = new TH2F
639 (Form("hEOverP%s",hName[iso].Data()),
640 Form("%s - Matched track E/p vs cluster E for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",hTitle[iso].Data(),r,ptthre,ptfrac),
641 nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
642 fhEOverP[iso]->SetXTitle("E (GeV)");
643 fhEOverP[iso]->SetYTitle("E/p");
644 outputContainer->Add(fhEOverP[iso]);
645
646 if(IsDataMC())
647 {
648 fhTrackMatchedMCParticle[iso] = new TH2F
649 (Form("hTrackMatchedMCParticle%s",hName[iso].Data()),
650 Form("%s - Origin of particle vs energy vs cluster E for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",hTitle[iso].Data(),r,ptthre,ptfrac),
651 nptbins,ptmin,ptmax,8,0,8);
652 fhTrackMatchedMCParticle[iso]->SetXTitle("E (GeV)");
653 //fhTrackMatchedMCParticle[iso]->SetYTitle("Particle type");
654
655 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(1 ,"Photon");
656 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(2 ,"Electron");
657 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(3 ,"Meson Merged");
658 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(4 ,"Rest");
659 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(5 ,"Conv. Photon");
660 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(6 ,"Conv. Electron");
661 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(7 ,"Conv. Merged");
662 fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(8 ,"Conv. Rest");
663
664 outputContainer->Add(fhTrackMatchedMCParticle[iso]);
665 }
31ae6d59 666 }
b5dbb99b 667
ca134929 668 if(fFillSSHisto)
b5dbb99b 669 {
ca134929 670 fhELambda0[iso] = new TH2F
671 (Form("hELambda0%s",hName[iso].Data()),
672 Form("%s cluster : E vs #lambda_{0}",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
673 fhELambda0[iso]->SetYTitle("#lambda_{0}^{2}");
674 fhELambda0[iso]->SetXTitle("E (GeV)");
675 outputContainer->Add(fhELambda0[iso]) ;
676
764ab1f4 677 if(IsDataMC())
678 {
679 fhELambda0MCPhoton[iso] = new TH2F
680 (Form("hELambda0%s_MCPhoton",hName[iso].Data()),
681 Form("%s cluster : E vs #lambda_{0}: Origin is final state photon",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
682 fhELambda0MCPhoton[iso]->SetYTitle("#lambda_{0}^{2}");
683 fhELambda0MCPhoton[iso]->SetXTitle("E (GeV)");
684 outputContainer->Add(fhELambda0MCPhoton[iso]) ;
685
686 fhELambda0MCPi0[iso] = new TH2F
687 (Form("hELambda0%s_MCPi0",hName[iso].Data()),
688 Form("%s cluster : E vs #lambda_{0}: Origin is pi0 (2 #gamma)",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
689 fhELambda0MCPi0[iso]->SetYTitle("#lambda_{0}^{2}");
690 fhELambda0MCPi0[iso]->SetXTitle("E (GeV)");
691 outputContainer->Add(fhELambda0MCPi0[iso]) ;
692
693 fhELambda0MCPi0Decay[iso] = new TH2F
694 (Form("hELambda0%s_MCPi0Decay",hName[iso].Data()),
695 Form("%s cluster : E vs #lambda_{0}: Origin is pi0 decay",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
696 fhELambda0MCPi0Decay[iso]->SetYTitle("#lambda_{0}^{2}");
697 fhELambda0MCPi0Decay[iso]->SetXTitle("E (GeV)");
698 outputContainer->Add(fhELambda0MCPi0Decay[iso]) ;
699
700 fhELambda0MCEtaDecay[iso] = new TH2F
701 (Form("hELambda0%s_MCEtaDecay",hName[iso].Data()),
702 Form("%s cluster : E vs #lambda_{0}: Origin is eta decay",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
703 fhELambda0MCEtaDecay[iso]->SetYTitle("#lambda_{0}^{2}");
704 fhELambda0MCEtaDecay[iso]->SetXTitle("E (GeV)");
705 outputContainer->Add(fhELambda0MCEtaDecay[iso]) ;
706
707 fhELambda0MCOtherDecay[iso] = new TH2F
708 (Form("hELambda0%s_MCOtherDecay",hName[iso].Data()),
709 Form("%s cluster : E vs #lambda_{0}: Origin is other decay",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
710 fhELambda0MCOtherDecay[iso]->SetYTitle("#lambda_{0}^{2}");
711 fhELambda0MCOtherDecay[iso]->SetXTitle("E (GeV)");
712 outputContainer->Add(fhELambda0MCOtherDecay[iso]) ;
713
714 fhELambda0MCHadron[iso] = new TH2F
715 (Form("hELambda0%s_MCHadron",hName[iso].Data()),
716 Form("%s cluster : E vs #lambda_{0}: Origin is hadron",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
717 fhELambda0MCHadron[iso]->SetYTitle("#lambda_{0}^{2}");
718 fhELambda0MCHadron[iso]->SetXTitle("E (GeV)");
719 outputContainer->Add(fhELambda0MCHadron[iso]) ;
720 }
721
ca134929 722 fhELambda1[iso] = new TH2F
723 (Form("hELambda1%s",hName[iso].Data()),
724 Form("%s cluster: E vs #lambda_{1}",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
725 fhELambda1[iso]->SetYTitle("#lambda_{1}^{2}");
726 fhELambda1[iso]->SetXTitle("E (GeV)");
db7b861a 727 outputContainer->Add(fhELambda1[iso]) ;
ca134929 728
729 if(fCalorimeter=="EMCAL")
730 {
731 fhELambda0TRD[iso] = new TH2F
732 (Form("hELambda0TRD%s",hName[iso].Data()),
733 Form("%s cluster: E vs #lambda_{0}, SM behind TRD",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
734 fhELambda0TRD[iso]->SetYTitle("#lambda_{0}^{2}");
735 fhELambda0TRD[iso]->SetXTitle("E (GeV)");
736 outputContainer->Add(fhELambda0TRD[iso]) ;
737
738 fhELambda1TRD[iso] = new TH2F
739 (Form("hELambda1TRD%s",hName[iso].Data()),
740 Form("%s cluster: E vs #lambda_{1}, SM behind TRD",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
741 fhELambda1TRD[iso]->SetYTitle("#lambda_{1}^{2}");
742 fhELambda1TRD[iso]->SetXTitle("E (GeV)");
743 outputContainer->Add(fhELambda1TRD[iso]) ;
744 }
745
746 fhNLocMax[iso] = new TH2F
747 (Form("hNLocMax%s",hName[iso].Data()),
748 Form("%s - Number of local maxima in cluster",hTitle[iso].Data()),
749 nptbins,ptmin,ptmax,10,0,10);
750 fhNLocMax[iso]->SetYTitle("N maxima");
751 fhNLocMax[iso]->SetXTitle("E (GeV)");
752 outputContainer->Add(fhNLocMax[iso]) ;
753
754 fhELambda0LocMax1[iso] = new TH2F
755 (Form("hELambda0LocMax1%s",hName[iso].Data()),
756 Form("%s cluster (#eta) pairs: E vs #lambda_{0}, 1 Local maxima",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
757 fhELambda0LocMax1[iso]->SetYTitle("#lambda_{0}^{2}");
758 fhELambda0LocMax1[iso]->SetXTitle("E (GeV)");
759 outputContainer->Add(fhELambda0LocMax1[iso]) ;
760
761 fhELambda1LocMax1[iso] = new TH2F
762 (Form("hELambda1LocMax1%s",hName[iso].Data()),
763 Form("%s cluster (#eta) pairs: E vs #lambda_{1}, 1 Local maxima",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
764 fhELambda1LocMax1[iso]->SetYTitle("#lambda_{1}^{2}");
765 fhELambda1LocMax1[iso]->SetXTitle("E (GeV)");
766 outputContainer->Add(fhELambda1LocMax1[iso]) ;
767
768 fhELambda0LocMax2[iso] = new TH2F
769 (Form("hELambda0LocMax2%s",hName[iso].Data()),
770 Form("%s cluster (#eta) pairs: E vs #lambda_{0}, 2 Local maxima",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
771 fhELambda0LocMax2[iso]->SetYTitle("#lambda_{0}^{2}");
772 fhELambda0LocMax2[iso]->SetXTitle("E (GeV)");
773 outputContainer->Add(fhELambda0LocMax2[iso]) ;
774
775 fhELambda1LocMax2[iso] = new TH2F
776 (Form("hELambda1LocMax2%s",hName[iso].Data()),
777 Form("%s cluster (#eta) pairs: E vs #lambda_{1}, 2 Local maxima",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
778 fhELambda1LocMax2[iso]->SetYTitle("#lambda_{1}^{2}");
779 fhELambda1LocMax2[iso]->SetXTitle("E (GeV)");
780 outputContainer->Add(fhELambda1LocMax2[iso]) ;
781
782 fhELambda0LocMaxN[iso] = new TH2F
783 ( Form("hELambda0LocMaxN%s",hName[iso].Data()),
784 Form("%s cluster (#eta) pairs: E vs #lambda_{0}, N>2 Local maxima",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
785 fhELambda0LocMaxN[iso]->SetYTitle("#lambda_{0}^{2}");
786 fhELambda0LocMaxN[iso]->SetXTitle("E (GeV)");
787 outputContainer->Add(fhELambda0LocMaxN[iso]) ;
788
789 fhELambda1LocMaxN[iso] = new TH2F
790 (Form("hELambda1LocMaxN%s",hName[iso].Data()),
791 Form("%s cluster (#eta) pairs: E vs #lambda_{1}, N>2 Local maxima",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
792 fhELambda1LocMaxN[iso]->SetYTitle("#lambda_{1}^{2}");
793 fhELambda1LocMaxN[iso]->SetXTitle("E (GeV)");
794 outputContainer->Add(fhELambda1LocMaxN[iso]) ;
b5dbb99b 795
b5dbb99b 796 }
ca134929 797 } // control histograms for isolated and non isolated objects
764ab1f4 798
db6fb352 799 fhConeSumPt = new TH2F("hConePtSum",
800 Form("#Sigma p_{T} in isolation cone for R = %2.2f",r),
801 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1a31a9ab 802 fhConeSumPt->SetYTitle("#Sigma p_{T}");
803 fhConeSumPt->SetXTitle("p_{T} (GeV/c)");
804 outputContainer->Add(fhConeSumPt) ;
805
db6fb352 806 fhPtInCone = new TH2F("hPtInCone",
fedea415 807 Form("p_{T} of clusters and tracks in isolation cone for R = %2.2f",r),
db6fb352 808 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
1a31a9ab 809 fhPtInCone->SetYTitle("p_{T in cone} (GeV/c)");
810 fhPtInCone->SetXTitle("p_{T} (GeV/c)");
811 outputContainer->Add(fhPtInCone) ;
764ab1f4 812
fedea415 813 fhPtTrackInCone = new TH2F("hPtTrackInCone",
814 Form("p_{T} of tracks in isolation cone for R = %2.2f",r),
815 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
816 fhPtTrackInCone->SetYTitle("p_{T in cone} (GeV/c)");
817 fhPtTrackInCone->SetXTitle("p_{T} (GeV/c)");
818 outputContainer->Add(fhPtTrackInCone) ;
819
6c80c1bf 820 if(fFillPileUpHistograms)
821 {
fedea415 822 fhPtTrackInConeOtherBC = new TH2F("hPtTrackInConeOtherBC",
823 Form("p_{T} of tracks in isolation cone for R = %2.2f, TOF from BC!=0",r),
824 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
825 fhPtTrackInConeOtherBC->SetYTitle("p_{T in cone} (GeV/c)");
826 fhPtTrackInConeOtherBC->SetXTitle("p_{T} (GeV/c)");
827 outputContainer->Add(fhPtTrackInConeOtherBC) ;
828
829 fhPtTrackInConeOtherBCPileUpSPD = new TH2F("hPtTrackInConeOtherBCPileUpSPD",
830 Form("p_{T} of tracks in isolation cone for R = %2.2f, TOF from BC!=0, pile-up from SPD",r),
831 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
832 fhPtTrackInConeOtherBCPileUpSPD->SetYTitle("p_{T in cone} (GeV/c)");
833 fhPtTrackInConeOtherBCPileUpSPD->SetXTitle("p_{T} (GeV/c)");
834 outputContainer->Add(fhPtTrackInConeOtherBCPileUpSPD) ;
835
2a9171b5 836 fhPtTrackInConeBC0 = new TH2F("hPtTrackInConeBC0",
837 Form("p_{T} of tracks in isolation cone for R = %2.2f, TOF from BC==0",r),
838 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
839 fhPtTrackInConeBC0->SetYTitle("p_{T in cone} (GeV/c)");
840 fhPtTrackInConeBC0->SetXTitle("p_{T} (GeV/c)");
841 outputContainer->Add(fhPtTrackInConeBC0) ;
842
843 fhPtTrackInConeBC0PileUpSPD = new TH2F("hPtTrackInConeBC0PileUpSPD",
844 Form("p_{T} of tracks in isolation cone for R = %2.2f, TOF from BC==0, pile-up from SPD",r),
845 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
846 fhPtTrackInConeBC0PileUpSPD->SetYTitle("p_{T in cone} (GeV/c)");
847 fhPtTrackInConeBC0PileUpSPD->SetXTitle("p_{T} (GeV/c)");
848 outputContainer->Add(fhPtTrackInConeBC0PileUpSPD) ;
849
fedea415 850
17af6e24 851 for (Int_t i = 0; i < 7 ; i++)
852 {
853 fhPtInConePileUp[i] = new TH2F(Form("hPtInConePileUp%s",pileUpName[i].Data()),
854 Form("p_{T} in isolation cone for R = %2.2f, from pile-up (%s)",r,pileUpName[i].Data()),
855 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
856 fhPtInConePileUp[i]->SetYTitle("p_{T in cone} (GeV/c)");
857 fhPtInConePileUp[i]->SetXTitle("p_{T} (GeV/c)");
858 outputContainer->Add(fhPtInConePileUp[i]) ;
859 }
6c80c1bf 860 }
861
b7ce43b4 862 fhPtInConeCent = new TH2F("hPtInConeCent",
764ab1f4 863 Form("p_{T} in isolation cone for R = %2.2f",r),
864 100,0,100,nptinconebins,ptinconemin,ptinconemax);
b7ce43b4 865 fhPtInConeCent->SetYTitle("p_{T in cone} (GeV/c)");
866 fhPtInConeCent->SetXTitle("centrality");
867 outputContainer->Add(fhPtInConeCent) ;
1a31a9ab 868
db6fb352 869 fhFRConeSumPt = new TH2F("hFRConePtSum",
870 Form("#Sigma p_{T} in the forward region isolation cone for R = %2.2f",r),
871 nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1a31a9ab 872 fhFRConeSumPt->SetYTitle("#Sigma p_{T}");
873 fhFRConeSumPt->SetXTitle("p_{T} (GeV/c)");
874 outputContainer->Add(fhFRConeSumPt) ;
875
db6fb352 876 fhPtInFRCone = new TH2F("hPtInFRCone",
877 Form("p_{T} in forward region isolation cone for R = %2.2f",r),
878 nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
1a31a9ab 879 fhPtInFRCone->SetYTitle("p_{T in cone} (GeV/c)");
880 fhPtInFRCone->SetXTitle("p_{T} (GeV/c)");
b7ce43b4 881 outputContainer->Add(fhPtInFRCone) ;
764ab1f4 882
b7ce43b4 883 fhPhiUEConeSumPt = new TH2F("hPhiUEConeSumPt",
764ab1f4 884 Form("p_{T} in phi band around isolation cone for R = %2.2f",r),
885 nptbins,ptmin,ptmax,4*nptinconebins,ptinconemin,4*ptinconemax);
b7ce43b4 886 fhPhiUEConeSumPt->SetYTitle("p_{T in band} (GeV/c)");
887 fhPhiUEConeSumPt->SetXTitle("p_{T} (GeV/c)");
888 outputContainer->Add(fhPhiUEConeSumPt) ;
764ab1f4 889
b7ce43b4 890 fhEtaUEConeSumPt = new TH2F("hEtaUEConeSumPt",
764ab1f4 891 Form("p_{T} in eta band around isolation cone for R = %2.2f",r),
892 nptbins,ptmin,ptmax,4*nptinconebins,ptinconemin,4*ptinconemax);
b7ce43b4 893 fhEtaUEConeSumPt->SetYTitle("p_{T in band} (GeV/c)");
894 fhEtaUEConeSumPt->SetXTitle("p_{T} (GeV/c)");
895 outputContainer->Add(fhEtaUEConeSumPt) ;
764ab1f4 896
b7ce43b4 897 fhEtaBand = new TH2F("fhEtaBand",
764ab1f4 898 Form("Eta/Phi of particle in Eta band isolation cone for R = %2.2f",r),
899 netabins,etamin,etamax,nphibins,phimin,phimax);
b7ce43b4 900 fhEtaBand->SetXTitle("#eta");
901 fhEtaBand->SetYTitle("#phi");
902 outputContainer->Add(fhEtaBand) ;
764ab1f4 903
b7ce43b4 904 fhPhiBand = new TH2F("fhPhiBand",
764ab1f4 905 Form("Eta/Phi of particle in Phi band isolation cone for R = %2.2f",r),
906 netabins,etamin,etamax,nphibins,phimin,phimax);
b7ce43b4 907 fhPhiBand->SetXTitle("#eta");
908 fhPhiBand->SetYTitle("#phi");
909 outputContainer->Add(fhPhiBand) ;
764ab1f4 910
b7ce43b4 911 fhConeSumPtEtaUESub = new TH2F("hConeSumPtEtaUESub",
764ab1f4 912 Form("#Sigma p_{T} after bkg subtraction from eta band in the isolation cone for R = %2.2f",r),
913 nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
b7ce43b4 914 fhConeSumPtEtaUESub->SetYTitle("#Sigma p_{T}");
915 fhConeSumPtEtaUESub->SetXTitle("p_{T} (GeV/c)");
916 outputContainer->Add(fhConeSumPtEtaUESub) ;
764ab1f4 917
b7ce43b4 918 fhConeSumPtPhiUESub = new TH2F("hConeSumPtPhiUESub",
764ab1f4 919 Form("#Sigma p_{T} after bkg subtraction from phi band in the isolation cone for R = %2.2f",r),
920 nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
b7ce43b4 921 fhConeSumPtPhiUESub->SetYTitle("#Sigma p_{T}");
922 fhConeSumPtPhiUESub->SetXTitle("p_{T} (GeV/c)");
923 outputContainer->Add(fhConeSumPtPhiUESub) ;
764ab1f4 924
db6fb352 925 fhEIso = new TH1F("hE",
926 Form("Number of isolated particles vs E for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
927 nptbins,ptmin,ptmax);
0fb69ade 928 fhEIso->SetYTitle("dN / dE");
929 fhEIso->SetXTitle("E (GeV/c)");
930 outputContainer->Add(fhEIso) ;
931
db6fb352 932 fhPtIso = new TH1F("hPt",
933 Form("Number of isolated particles vs p_{T} for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
934 nptbins,ptmin,ptmax);
0fb69ade 935 fhPtIso->SetYTitle("dN / p_{T}");
936 fhPtIso->SetXTitle("p_{T} (GeV/c)");
1a31a9ab 937 outputContainer->Add(fhPtIso) ;
938
8736d400 939 fhPtNLocMaxIso = new TH2F("hPtNLocMax",
940 Form("Number of isolated particles vs p_{T} for R = %2.2f, p_{T}^{th} = %2.2f vs NLM, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
941 nptbins,ptmin,ptmax,10,0,10);
942 fhPtNLocMaxIso->SetYTitle("NLM");
943 fhPtNLocMaxIso->SetXTitle("p_{T} (GeV/c)");
944 outputContainer->Add(fhPtNLocMaxIso) ;
945
db6fb352 946 fhPhiIso = new TH2F("hPhi",
947 Form("Number of isolated particles vs #phi for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
948 nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1a31a9ab 949 fhPhiIso->SetYTitle("#phi");
950 fhPhiIso->SetXTitle("p_{T} (GeV/c)");
951 outputContainer->Add(fhPhiIso) ;
952
db6fb352 953 fhEtaIso = new TH2F("hEta",
954 Form("Number of isolated particles vs #eta for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
955 nptbins,ptmin,ptmax,netabins,etamin,etamax);
1a31a9ab 956 fhEtaIso->SetYTitle("#eta");
957 fhEtaIso->SetXTitle("p_{T} (GeV/c)");
958 outputContainer->Add(fhEtaIso) ;
959
db6fb352 960 fhEtaPhiIso = new TH2F("hEtaPhiIso",
961 Form("Number of isolated particles #eta vs #phi for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
962 netabins,etamin,etamax,nphibins,phimin,phimax);
0fb69ade 963 fhEtaPhiIso->SetXTitle("#eta");
964 fhEtaPhiIso->SetYTitle("#phi");
965 outputContainer->Add(fhEtaPhiIso) ;
b0a31c92 966
db6fb352 967 fhPtDecayIso = new TH1F("hPtDecayIso",
968 Form("Number of isolated #pi^{0} decay particles vs p_{T} for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
969 nptbins,ptmin,ptmax);
66e64043 970 fhPtDecayIso->SetYTitle("N");
971 fhPtDecayIso->SetXTitle("p_{T}(GeV/c)");
803d06a8 972 outputContainer->Add(fhPtDecayIso) ;
1a31a9ab 973
db6fb352 974 fhEtaPhiDecayIso = new TH2F("hEtaPhiDecayIso",
975 Form("Number of isolated Pi0 decay particles #eta vs #phi for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
976 netabins,etamin,etamax,nphibins,phimin,phimax);
d0a4f937 977 fhEtaPhiDecayIso->SetXTitle("#eta");
978 fhEtaPhiDecayIso->SetYTitle("#phi");
979 outputContainer->Add(fhEtaPhiDecayIso) ;
b0a31c92 980
b5dbb99b 981 if(IsDataMC())
982 {
732895a6 983 fhPtIsoPrompt = new TH1F("hPtMCPrompt","Number of isolated prompt #gamma",nptbins,ptmin,ptmax);
1a31a9ab 984 fhPtIsoPrompt->SetYTitle("N");
985 fhPtIsoPrompt->SetXTitle("p_{T #gamma}(GeV/c)");
986 outputContainer->Add(fhPtIsoPrompt) ;
987
988 fhPhiIsoPrompt = new TH2F
732895a6 989 ("hPhiMCPrompt","Number of isolated prompt #gamma",nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1a31a9ab 990 fhPhiIsoPrompt->SetYTitle("#phi");
991 fhPhiIsoPrompt->SetXTitle("p_{T #gamma} (GeV/c)");
992 outputContainer->Add(fhPhiIsoPrompt) ;
993
994 fhEtaIsoPrompt = new TH2F
732895a6 995 ("hEtaMCPrompt","Number of isolated prompt #gamma",nptbins,ptmin,ptmax,netabins,etamin,etamax);
1a31a9ab 996 fhEtaIsoPrompt->SetYTitle("#eta");
997 fhEtaIsoPrompt->SetXTitle("p_{T #gamma} (GeV/c)");
998 outputContainer->Add(fhEtaIsoPrompt) ;
999
732895a6 1000 fhPtIsoFragmentation = new TH1F("hPtMCFragmentation","Number of isolated #gamma",nptbins,ptmin,ptmax);
1a31a9ab 1001 fhPtIsoFragmentation->SetYTitle("N");
1002 fhPtIsoFragmentation->SetXTitle("p_{T #gamma}(GeV/c)");
1003 outputContainer->Add(fhPtIsoFragmentation) ;
1004
1005 fhPhiIsoFragmentation = new TH2F
732895a6 1006 ("hPhiMCFragmentation","Number of isolated fragmentation #gamma",nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1a31a9ab 1007 fhPhiIsoFragmentation->SetYTitle("#phi");
1008 fhPhiIsoFragmentation->SetXTitle("p_{T #gamma} (GeV/c)");
1009 outputContainer->Add(fhPhiIsoFragmentation) ;
1010
1011 fhEtaIsoFragmentation = new TH2F
732895a6 1012 ("hEtaMCFragmentation","Number of isolated fragmentation #gamma",nptbins,ptmin,ptmax,netabins,etamin,etamax);
1a31a9ab 1013 fhEtaIsoFragmentation->SetYTitle("#eta");
1014 fhEtaIsoFragmentation->SetXTitle("p_{T #gamma} (GeV/c)");
1015 outputContainer->Add(fhEtaIsoFragmentation) ;
1016
764ab1f4 1017 fhPtIsoPi0 = new TH1F("hPtMCPi0","Number of isolated #gamma from #pi^{0} (2 #gamma)",nptbins,ptmin,ptmax);
1018 fhPtIsoPi0->SetYTitle("N");
1019 fhPtIsoPi0->SetXTitle("p_{T #gamma}(GeV/c)");
1020 outputContainer->Add(fhPtIsoPi0) ;
1021
1022 fhPhiIsoPi0 = new TH2F
1023 ("hPhiMCPi0","Number of isolated #gamma from #pi^{0} (2 #gamma)",nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1024 fhPhiIsoPi0->SetYTitle("#phi");
1025 fhPhiIsoPi0->SetXTitle("p_{T #gamma} (GeV/c)");
1026 outputContainer->Add(fhPhiIsoPi0) ;
1027
1028 fhEtaIsoPi0 = new TH2F
1029 ("hEtaMCPi0","Number of isolated #gamma from #pi^{0} (2 #gamma)",nptbins,ptmin,ptmax,netabins,etamin,etamax);
1030 fhEtaIsoPi0->SetYTitle("#eta");
1031 fhEtaIsoPi0->SetXTitle("p_{T #gamma} (GeV/c)");
1032 outputContainer->Add(fhEtaIsoPi0) ;
1033
732895a6 1034 fhPtIsoPi0Decay = new TH1F("hPtMCPi0Decay","Number of isolated #gamma from #pi^{0} decay",nptbins,ptmin,ptmax);
1a31a9ab 1035 fhPtIsoPi0Decay->SetYTitle("N");
1036 fhPtIsoPi0Decay->SetXTitle("p_{T #gamma}(GeV/c)");
1037 outputContainer->Add(fhPtIsoPi0Decay) ;
1038
1039 fhPhiIsoPi0Decay = new TH2F
732895a6 1040 ("hPhiMCPi0Decay","Number of isolated #gamma from #pi^{0} decay",nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1a31a9ab 1041 fhPhiIsoPi0Decay->SetYTitle("#phi");
1042 fhPhiIsoPi0Decay->SetXTitle("p_{T #gamma} (GeV/c)");
1043 outputContainer->Add(fhPhiIsoPi0Decay) ;
1044
1045 fhEtaIsoPi0Decay = new TH2F
732895a6 1046 ("hEtaMCPi0Decay","Number of isolated #gamma from #pi^{0} decay",nptbins,ptmin,ptmax,netabins,etamin,etamax);
1a31a9ab 1047 fhEtaIsoPi0Decay->SetYTitle("#eta");
1048 fhEtaIsoPi0Decay->SetXTitle("p_{T #gamma} (GeV/c)");
1049 outputContainer->Add(fhEtaIsoPi0Decay) ;
1050
803d06a8 1051 fhPtIsoEtaDecay = new TH1F("hPtMCEtaDecay","Number of isolated #gamma from #eta decay",nptbins,ptmin,ptmax);
1052 fhPtIsoEtaDecay->SetYTitle("N");
1053 fhPtIsoEtaDecay->SetXTitle("p_{T #gamma}(GeV/c)");
1054 outputContainer->Add(fhPtIsoEtaDecay) ;
1055
1056 fhPhiIsoEtaDecay = new TH2F
1057 ("hPhiMCEtaDecay","Number of isolated #gamma from #eta decay",nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1058 fhPhiIsoEtaDecay->SetYTitle("#phi");
1059 fhPhiIsoEtaDecay->SetXTitle("p_{T #gamma} (GeV/c)");
1060 outputContainer->Add(fhPhiIsoEtaDecay) ;
1061
1062 fhEtaIsoEtaDecay = new TH2F
1063 ("hEtaMCEtaDecay","Number of isolated #gamma from #eta decay",nptbins,ptmin,ptmax,netabins,etamin,etamax);
1064 fhEtaIsoEtaDecay->SetYTitle("#eta");
1065 fhEtaIsoEtaDecay->SetXTitle("p_{T #gamma} (GeV/c)");
1066 outputContainer->Add(fhEtaIsoEtaDecay) ;
1067
732895a6 1068 fhPtIsoOtherDecay = new TH1F("hPtMCOtherDecay","Number of isolated #gamma from non-#pi^{0} decay",nptbins,ptmin,ptmax);
1a31a9ab 1069 fhPtIsoOtherDecay->SetYTitle("N");
1070 fhPtIsoOtherDecay->SetXTitle("p_{T #gamma}(GeV/c)");
1071 outputContainer->Add(fhPtIsoOtherDecay) ;
1072
1073 fhPhiIsoOtherDecay = new TH2F
732895a6 1074 ("hPhiMCOtherDecay","Number of isolated #gamma from non-#pi^{0} decay",nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1a31a9ab 1075 fhPhiIsoOtherDecay->SetYTitle("#phi");
1076 fhPhiIsoOtherDecay->SetXTitle("p_{T #gamma} (GeV/c)");
1077 outputContainer->Add(fhPhiIsoOtherDecay) ;
1078
1079 fhEtaIsoOtherDecay = new TH2F
732895a6 1080 ("hEtaMCOtherDecay","Number of isolated #gamma non-#pi^{0} decay",nptbins,ptmin,ptmax,netabins,etamin,etamax);
1a31a9ab 1081 fhEtaIsoOtherDecay->SetYTitle("#eta");
1082 fhEtaIsoOtherDecay->SetXTitle("p_{T #gamma} (GeV/c)");
1083 outputContainer->Add(fhEtaIsoOtherDecay) ;
1084
764ab1f4 1085 // fhPtIsoConversion = new TH1F("hPtMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax);
1086 // fhPtIsoConversion->SetYTitle("N");
1087 // fhPtIsoConversion->SetXTitle("p_{T #gamma}(GeV/c)");
1088 // outputContainer->Add(fhPtIsoConversion) ;
1089 //
1090 // fhPhiIsoConversion = new TH2F
1091 // ("hPhiMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1092 // fhPhiIsoConversion->SetYTitle("#phi");
1093 // fhPhiIsoConversion->SetXTitle("p_{T #gamma} (GeV/c)");
1094 // outputContainer->Add(fhPhiIsoConversion) ;
1095 //
1096 // fhEtaIsoConversion = new TH2F
1097 // ("hEtaMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax,netabins,etamin,etamax);
1098 // fhEtaIsoConversion->SetYTitle("#eta");
1099 // fhEtaIsoConversion->SetXTitle("p_{T #gamma} (GeV/c)");
1100 // outputContainer->Add(fhEtaIsoConversion) ;
1a31a9ab 1101
764ab1f4 1102 fhPtIsoHadron = new TH1F("hPtMCHadron","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax);
1103 fhPtIsoHadron->SetYTitle("N");
1104 fhPtIsoHadron->SetXTitle("p_{T}(GeV/c)");
1105 outputContainer->Add(fhPtIsoHadron) ;
1a31a9ab 1106
8736d400 1107
764ab1f4 1108 fhPhiIsoHadron = new TH2F
1109 ("hPhiMCHadron","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1110 fhPhiIsoHadron->SetYTitle("#phi");
1111 fhPhiIsoHadron->SetXTitle("p_{T} (GeV/c)");
1112 outputContainer->Add(fhPhiIsoHadron) ;
1a31a9ab 1113
764ab1f4 1114 fhEtaIsoHadron = new TH2F
1115 ("hEtaMCHadron","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax,netabins,etamin,etamax);
1116 fhEtaIsoHadron->SetYTitle("#eta");
1117 fhEtaIsoHadron->SetXTitle("p_{T} (GeV/c)");
1118 outputContainer->Add(fhEtaIsoHadron) ;
1a31a9ab 1119
1a31a9ab 1120 }//Histos with MC
1121
1122 }
1123
db6fb352 1124 // Not Isolated histograms, reference histograms
1125
b1f720a7 1126 fhENoIso = new TH1F("hENoIso",
1127 Form("Number of not isolated leading particles vs p_{T} for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
1128 nptbins,ptmin,ptmax);
1129 fhENoIso->SetYTitle("N");
1130 fhENoIso->SetXTitle("p_{T}(GeV/c)");
1131 outputContainer->Add(fhENoIso) ;
1132
db6fb352 1133 fhPtNoIso = new TH1F("hPtNoIso",
1134 Form("Number of not isolated leading particles vs p_{T} for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
1135 nptbins,ptmin,ptmax);
1136 fhPtNoIso->SetYTitle("N");
1137 fhPtNoIso->SetXTitle("p_{T}(GeV/c)");
1138 outputContainer->Add(fhPtNoIso) ;
1139
8736d400 1140 fhPtNLocMaxNoIso = new TH2F("hPtNLocMaxNoIso",
1141 Form("Number of not isolated particles vs p_{T} for R = %2.2f, p_{T}^{th} = %2.2f vs NLM, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
1142 nptbins,ptmin,ptmax,10,0,10);
1143 fhPtNLocMaxNoIso->SetYTitle("NLM");
1144 fhPtNLocMaxNoIso->SetXTitle("p_{T} (GeV/c)");
1145 outputContainer->Add(fhPtNLocMaxNoIso) ;
db6fb352 1146
1147 fhEtaPhiNoIso = new TH2F("hEtaPhiNoIso",
1148 Form("Number of not isolated leading particles #eta vs #phi for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
1149 netabins,etamin,etamax,nphibins,phimin,phimax);
1150 fhEtaPhiNoIso->SetXTitle("#eta");
1151 fhEtaPhiNoIso->SetYTitle("#phi");
1152 outputContainer->Add(fhEtaPhiNoIso) ;
1153
1154 fhPtDecayNoIso = new TH1F("hPtDecayNoIso",
1155 Form("Number of not isolated leading pi0 decay particles vs p_{T} for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
1156 nptbins,ptmin,ptmax);
1157 fhPtDecayNoIso->SetYTitle("N");
1158 fhPtDecayNoIso->SetXTitle("p_{T}(GeV/c)");
1159 outputContainer->Add(fhPtDecayNoIso) ;
1160
1161 fhEtaPhiDecayNoIso = new TH2F("hEtaPhiDecayNoIso",
1162 Form("Number of not isolated leading Pi0 decay particles #eta vs #phi for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
1163 netabins,etamin,etamax,nphibins,phimin,phimax);
1164 fhEtaPhiDecayNoIso->SetXTitle("#eta");
1165 fhEtaPhiDecayNoIso->SetYTitle("#phi");
1166 outputContainer->Add(fhEtaPhiDecayNoIso) ;
1167
44e48e82 1168
1169
db6fb352 1170 if(IsDataMC())
1171 {
764ab1f4 1172 fhPtNoIsoPi0 = new TH1F
1173 ("hPtNoIsoPi0","Number of not isolated leading #gamma from #pi^{0} (2 #gamma)",nptbins,ptmin,ptmax);
1174 fhPtNoIsoPi0->SetYTitle("N");
1175 fhPtNoIsoPi0->SetXTitle("p_{T} (GeV/c)");
1176 outputContainer->Add(fhPtNoIsoPi0) ;
1177
db6fb352 1178 fhPtNoIsoPi0Decay = new TH1F
1179 ("hPtNoIsoPi0Decay","Number of not isolated leading #gamma from #pi^{0} decay",nptbins,ptmin,ptmax);
1180 fhPtNoIsoPi0Decay->SetYTitle("N");
1181 fhPtNoIsoPi0Decay->SetXTitle("p_{T} (GeV/c)");
1182 outputContainer->Add(fhPtNoIsoPi0Decay) ;
1183
1184 fhPtNoIsoEtaDecay = new TH1F
1185 ("hPtNoIsoEtaDecay","Number of not isolated leading #gamma from eta decay",nptbins,ptmin,ptmax);
1186 fhPtNoIsoEtaDecay->SetYTitle("N");
1187 fhPtNoIsoEtaDecay->SetXTitle("p_{T} (GeV/c)");
1188 outputContainer->Add(fhPtNoIsoEtaDecay) ;
1189
1190 fhPtNoIsoOtherDecay = new TH1F
1191 ("hPtNoIsoOtherDecay","Number of not isolated leading #gamma from other decay",nptbins,ptmin,ptmax);
1192 fhPtNoIsoOtherDecay->SetYTitle("N");
1193 fhPtNoIsoOtherDecay->SetXTitle("p_{T} (GeV/c)");
1194 outputContainer->Add(fhPtNoIsoOtherDecay) ;
1195
1196 fhPtNoIsoPrompt = new TH1F
1197 ("hPtNoIsoPrompt","Number of not isolated leading prompt #gamma",nptbins,ptmin,ptmax);
1198 fhPtNoIsoPrompt->SetYTitle("N");
1199 fhPtNoIsoPrompt->SetXTitle("p_{T} (GeV/c)");
1200 outputContainer->Add(fhPtNoIsoPrompt) ;
1201
1202 fhPtIsoMCPhoton = new TH1F
1203 ("hPtIsoMCPhoton","Number of isolated leading #gamma",nptbins,ptmin,ptmax);
1204 fhPtIsoMCPhoton->SetYTitle("N");
1205 fhPtIsoMCPhoton->SetXTitle("p_{T} (GeV/c)");
1206 outputContainer->Add(fhPtIsoMCPhoton) ;
1207
1208 fhPtNoIsoMCPhoton = new TH1F
1209 ("hPtNoIsoMCPhoton","Number of not isolated leading #gamma",nptbins,ptmin,ptmax);
1210 fhPtNoIsoMCPhoton->SetYTitle("N");
1211 fhPtNoIsoMCPhoton->SetXTitle("p_{T} (GeV/c)");
1212 outputContainer->Add(fhPtNoIsoMCPhoton) ;
1213
764ab1f4 1214// fhPtNoIsoConversion = new TH1F
1215// ("hPtNoIsoConversion","Number of not isolated leading conversion #gamma",nptbins,ptmin,ptmax);
1216// fhPtNoIsoConversion->SetYTitle("N");
1217// fhPtNoIsoConversion->SetXTitle("p_{T} (GeV/c)");
1218// outputContainer->Add(fhPtNoIsoConversion) ;
db6fb352 1219
1220 fhPtNoIsoFragmentation = new TH1F
1221 ("hPtNoIsoFragmentation","Number of not isolated leading fragmentation #gamma",nptbins,ptmin,ptmax);
1222 fhPtNoIsoFragmentation->SetYTitle("N");
1223 fhPtNoIsoFragmentation->SetXTitle("p_{T} (GeV/c)");
1224 outputContainer->Add(fhPtNoIsoFragmentation) ;
1225
764ab1f4 1226 fhPtNoIsoHadron = new TH1F
1227 ("hPtNoIsoHadron","Number of not isolated leading hadrons",nptbins,ptmin,ptmax);
1228 fhPtNoIsoHadron->SetYTitle("N");
1229 fhPtNoIsoHadron->SetXTitle("p_{T} (GeV/c)");
1230 outputContainer->Add(fhPtNoIsoHadron) ;
db6fb352 1231
1232 }//Histos with MC
1233
1234
b5dbb99b 1235 if(fMakeSeveralIC)
1236 {
1a31a9ab 1237 const Int_t buffersize = 255;
e4ef72be 1238 char name[buffersize];
1239 char title[buffersize];
1240 for(Int_t icone = 0; icone<fNCones; icone++)
44e48e82 1241 {
1242 // sum pt in cone vs. pt leading
1243 snprintf(name, buffersize,"hSumPtLeadingPt_Cone_%d",icone);
1244 snprintf(title, buffersize,"#Sigma p_{T} in isolation cone for R = %2.2f",fConeSizes[icone]);
1245 fhSumPtLeadingPt[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1246 fhSumPtLeadingPt[icone] ->SetYTitle("#sum_{cone}p_{T} (GeV/c)");//#Sigma p_{T}
1247 fhSumPtLeadingPt[icone] ->SetXTitle("p_{T}^{leading} (GeV/c)");
1248 outputContainer->Add(fhSumPtLeadingPt[icone]) ;
1249
1250 // pt in cone vs. pt leading
1251 snprintf(name, buffersize,"hPtLeadingPt_Cone_%d",icone);
1252 snprintf(title, buffersize,"p_{T} in isolation cone for R = %2.2f",fConeSizes[icone]);
1253 fhPtLeadingPt[icone] = new TH2F(name, title, nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
1254 fhPtLeadingPt[icone] ->SetYTitle("p_{T}^{cone} (GeV/c)");
1255 fhPtLeadingPt[icone] ->SetXTitle("p_{T}^{leading} (GeV/c)");
1256 outputContainer->Add(fhPtLeadingPt[icone]) ;
1257
1258 // sum pt in cone vs. pt leading in the forward region (for background subtraction studies)
1259 snprintf(name, buffersize,"hFRSumPtLeadingPt_Cone_%d",icone);
1260 snprintf(title, buffersize,"#Sigma p_{T} in isolation cone for R = %2.2f",fConeSizes[icone]);
1261 fhFRSumPtLeadingPt[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1262 fhFRSumPtLeadingPt[icone] ->SetYTitle("#sum_{cone}p_{T} (GeV/c)");//#Sigma p_{T}
1263 fhFRSumPtLeadingPt[icone] ->SetXTitle("p_{T}^{leading} (GeV/c)");
1264 outputContainer->Add(fhFRSumPtLeadingPt[icone]) ;
1265
1266 // pt in cone vs. pt leading in the forward region (for background subtraction studies)
1267 snprintf(name, buffersize,"hFRPtLeadingPt_Cone_%d",icone);
1268 snprintf(title, buffersize,"p_{T} in isolation cone for R = %2.2f",fConeSizes[icone]);
1269 fhFRPtLeadingPt[icone] = new TH2F(name, title, nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
1270 fhFRPtLeadingPt[icone] ->SetYTitle("p_{T}^{cone} (GeV/c)");
1271 fhFRPtLeadingPt[icone] ->SetXTitle("p_{T}^{leading} (GeV/c)");
1272 outputContainer->Add(fhFRPtLeadingPt[icone]) ;
1273
1274
e4ef72be 1275 if(IsDataMC())
db6fb352 1276 {
b0a31c92 1277 snprintf(name, buffersize,"hPtSumPrompt_Cone_%d",icone);
1278 snprintf(title, buffersize,"Candidate Prompt cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]);
1279 fhPtSumIsolatedPrompt[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1280 fhPtSumIsolatedPrompt[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
1281 fhPtSumIsolatedPrompt[icone]->SetXTitle("p_{T} (GeV/c)");
1282 outputContainer->Add(fhPtSumIsolatedPrompt[icone]) ;
1283
1284 snprintf(name, buffersize,"hPtSumFragmentation_Cone_%d",icone);
1285 snprintf(title, buffersize,"Candidate Fragmentation cone sum p_{T} for R = %2.2fvs candidate p_{T}",fConeSizes[icone]);
1286 fhPtSumIsolatedFragmentation[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1287 fhPtSumIsolatedFragmentation[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
1288 fhPtSumIsolatedFragmentation[icone]->SetXTitle("p_{T} (GeV/c)");
1289 outputContainer->Add(fhPtSumIsolatedFragmentation[icone]) ;
1290
764ab1f4 1291 snprintf(name, buffersize,"hPtSumPi0_Cone_%d",icone);
1292 snprintf(title, buffersize,"Candidate Pi0 cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]);
1293 fhPtSumIsolatedPi0[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1294 fhPtSumIsolatedPi0[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
1295 fhPtSumIsolatedPi0[icone]->SetXTitle("p_{T} (GeV/c)");
1296 outputContainer->Add(fhPtSumIsolatedPi0[icone]) ;
1297
b0a31c92 1298 snprintf(name, buffersize,"hPtSumPi0Decay_Cone_%d",icone);
1299 snprintf(title, buffersize,"Candidate Pi0Decay cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]);
1300 fhPtSumIsolatedPi0Decay[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1301 fhPtSumIsolatedPi0Decay[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
1302 fhPtSumIsolatedPi0Decay[icone]->SetXTitle("p_{T} (GeV/c)");
1303 outputContainer->Add(fhPtSumIsolatedPi0Decay[icone]) ;
1304
1305 snprintf(name, buffersize,"hPtSumEtaDecay_Cone_%d",icone);
1306 snprintf(title, buffersize,"Candidate EtaDecay cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]);
1307 fhPtSumIsolatedEtaDecay[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1308 fhPtSumIsolatedEtaDecay[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
1309 fhPtSumIsolatedEtaDecay[icone]->SetXTitle("p_{T} (GeV/c)");
1310 outputContainer->Add(fhPtSumIsolatedEtaDecay[icone]) ;
1311
1312 snprintf(name, buffersize,"hPtSumOtherDecay_Cone_%d",icone);
1313 snprintf(title, buffersize,"Candidate OtherDecay cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]);
1314 fhPtSumIsolatedOtherDecay[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1315 fhPtSumIsolatedOtherDecay[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
1316 fhPtSumIsolatedOtherDecay[icone]->SetXTitle("p_{T} (GeV/c)");
1317 outputContainer->Add(fhPtSumIsolatedOtherDecay[icone]) ;
1318
764ab1f4 1319// snprintf(name, buffersize,"hPtSumConversion_Cone_%d",icone);
1320// snprintf(title, buffersize,"Candidate Conversion cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]);
1321// fhPtSumIsolatedConversion[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1322// fhPtSumIsolatedConversion[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
1323// fhPtSumIsolatedConversion[icone]->SetXTitle("p_{T} (GeV/c)");
1324// outputContainer->Add(fhPtSumIsolatedConversion[icone]) ;
b0a31c92 1325
764ab1f4 1326 snprintf(name, buffersize,"hPtSumHadron_Cone_%d",icone);
1327 snprintf(title, buffersize,"Candidate Hadron cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]);
1328 fhPtSumIsolatedHadron[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1329 fhPtSumIsolatedHadron[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
1330 fhPtSumIsolatedHadron[icone]->SetXTitle("p_{T} (GeV/c)");
1331 outputContainer->Add(fhPtSumIsolatedHadron[icone]) ;
b0a31c92 1332
e4ef72be 1333 }//Histos with MC
1334
1335 for(Int_t ipt = 0; ipt<fNPtThresFrac;ipt++)
1336 {
44e48e82 1337
b0a31c92 1338 snprintf(name, buffersize,"hPtThres_Cone_%d_Pt%d",icone,ipt);
1339 snprintf(title, buffersize,"Isolated candidate p_{T} distribution for R = %2.2f and p_{T}^{th} = %2.2f GeV/c",fConeSizes[icone],fPtThresholds[ipt]);
1340 fhPtThresIsolated[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1341 fhPtThresIsolated[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1342 outputContainer->Add(fhPtThresIsolated[icone][ipt]) ;
1343
1344 snprintf(name, buffersize,"hPtFrac_Cone_%d_Pt%d",icone,ipt);
1345 snprintf(title, buffersize,"Isolated candidate p_{T} distribution for R = %2.2f and p_{T}^{fr} = %2.2f GeV/c",fConeSizes[icone],fPtFractions[ipt]);
1346 fhPtFracIsolated[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1347 fhPtFracIsolated[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1348 outputContainer->Add(fhPtFracIsolated[icone][ipt]) ;
1349
1350
1351 snprintf(name, buffersize,"hPtSum_Cone_%d_Pt%d",icone,ipt);
1352 snprintf(title, buffersize,"Isolated candidate p_{T} distribution for R = %2.2f and p_{T}^{sum} = %2.2f GeV/c",fConeSizes[icone],fSumPtThresholds[ipt]);
1353 fhPtSumIsolated[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1354 // fhPtSumIsolated[icone][ipt]->SetYTitle("#Sigma p_{T} (GeV/c)");
1355 fhPtSumIsolated[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1356 outputContainer->Add(fhPtSumIsolated[icone][ipt]) ;
1357
1358 snprintf(name, buffersize,"hPtSumDensity_Cone_%d_Pt%d",icone,ipt);
1359 snprintf(title, buffersize,"Isolated candidate p_{T} distribution for density in R = %2.2f and p_{T}^{sum} = %2.2f GeV/c",fConeSizes[icone],fSumPtThresholds[ipt]);
1360 fhPtSumDensityIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
1361 //fhPtSumIsolated[icone][ipt]->SetYTitle("#Sigma p_{T} (GeV/c)");
1362 fhPtSumDensityIso[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1363 outputContainer->Add(fhPtSumDensityIso[icone][ipt]) ;
1364
1365 snprintf(name, buffersize,"hPtFracPtSum_Cone_%d_Pt%d",icone,ipt);
1366 snprintf(title, buffersize,"Isolated candidate p_{T} distribution for PtFracPtSum in R = %2.2f and p_{T}^{fr} = %2.2f GeV/c",fConeSizes[icone],fPtFractions[ipt]);
1367 fhPtFracPtSumIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
1368 //fhPtSumIsolated[icone][ipt]->SetYTitle("#Sigma p_{T} (GeV/c)");
1369 fhPtFracPtSumIso[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1370 outputContainer->Add(fhPtFracPtSumIso[icone][ipt]) ;
1371
1372 // pt decays isolated
1373 snprintf(name, buffersize,"hPtThres_Decay_Cone_%d_Pt%d",icone,ipt);
1374 snprintf(title, buffersize,"Isolated decay candidate p_{T} distribution for R = %2.2f and p_{T}^{th} = %2.2f GeV/c",fConeSizes[icone],fPtThresholds[ipt]);
1375 fhPtPtThresDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1376 fhPtPtThresDecayIso[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1377 outputContainer->Add(fhPtPtThresDecayIso[icone][ipt]) ;
1378
1379 snprintf(name, buffersize,"hPtFrac_Decay_Cone_%d_Pt%d",icone,ipt);
1380 snprintf(title, buffersize,"Isolated decay candidate p_{T} distribution for R = %2.2f and p_{T}^{fr} = %2.2f GeV/c",fConeSizes[icone],fPtFractions[ipt]);
1381 fhPtPtFracDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1382 fhPtPtFracDecayIso[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1383 outputContainer->Add(fhPtPtFracDecayIso[icone][ipt]) ;
1384
1385 snprintf(name, buffersize,"hPtSum_Decay_Cone_%d_Pt%d",icone,ipt);
1386 snprintf(title, buffersize,"Isolated decay candidate p_{T} distribution for R = %2.2f and p_{T}^{sum} = %2.2f GeV/c",fConeSizes[icone],fSumPtThresholds[ipt]);
1387 fhPtPtSumDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
1388 // fhPtPtSumDecayIso[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
1389 fhPtPtSumDecayIso[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1390 outputContainer->Add(fhPtPtSumDecayIso[icone][ipt]) ;
1391
1392 snprintf(name, buffersize,"hPtSumDensity_Decay_Cone_%d_Pt%d",icone,ipt);
1393 snprintf(title, buffersize,"Isolated decay candidate p_{T} distribution for density in R = %2.2f and p_{T}^{sum} = %2.2f GeV/c",fConeSizes[icone],fSumPtThresholds[ipt]);
1394 fhPtSumDensityDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
1395 // fhPtPtSumDecayIso[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
1396 fhPtSumDensityDecayIso[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1397 outputContainer->Add(fhPtSumDensityDecayIso[icone][ipt]) ;
1398
1399 snprintf(name, buffersize,"hPtFracPtSum_Decay_Cone_%d_Pt%d",icone,ipt);
1400 snprintf(title, buffersize,"Isolated decay candidate p_{T} distribution for PtFracPtSum in R = %2.2f and p_{T}^{fr} = %2.2f GeV/c",fConeSizes[icone],fPtFractions[ipt]);
1401 fhPtFracPtSumDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
1402 // fhPtPtSumDecayIso[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
1403 fhPtFracPtSumDecayIso[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1404 outputContainer->Add(fhPtFracPtSumDecayIso[icone][ipt]) ;
1405
1406
1407 // eta:phi
1408 snprintf(name, buffersize,"hEtaPhiPtThres_Cone_%d_Pt%d",icone,ipt);
1409 snprintf(title, buffersize,"Isolated candidate #eta:#phi distribution for R = %2.2f and p_{T}^{th} = %2.2f GeV/c",fConeSizes[icone],fPtThresholds[ipt]);
1410 fhEtaPhiPtThresIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
1411 fhEtaPhiPtThresIso[icone][ipt]->SetXTitle("#eta");
1412 fhEtaPhiPtThresIso[icone][ipt]->SetYTitle("#phi");
1413 outputContainer->Add(fhEtaPhiPtThresIso[icone][ipt]) ;
1414
1415 snprintf(name, buffersize,"hEtaPhiPtFrac_Cone_%d_Pt%d",icone,ipt);
1416 snprintf(title, buffersize,"Isolated candidate #eta:#phi distribution for R = %2.2f and p_{T}^{fr} = %2.2f GeV/c",fConeSizes[icone],fPtFractions[ipt]);
1417 fhEtaPhiPtFracIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
1418 fhEtaPhiPtFracIso[icone][ipt]->SetXTitle("#eta");
1419 fhEtaPhiPtFracIso[icone][ipt]->SetYTitle("#phi");
1420 outputContainer->Add(fhEtaPhiPtFracIso[icone][ipt]) ;
1421
1422 snprintf(name, buffersize,"hEtaPhiPtSum_Cone_%d_Pt%d",icone,ipt);
1423 snprintf(title, buffersize,"Isolated candidate #eta:#phi distribution for R = %2.2f and p_{T}^{sum} = %2.2f GeV/c",fConeSizes[icone],fSumPtThresholds[ipt]);
1424 fhEtaPhiPtSumIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
1425 fhEtaPhiPtSumIso[icone][ipt]->SetXTitle("#eta");
1426 fhEtaPhiPtSumIso[icone][ipt]->SetYTitle("#phi");
1427 outputContainer->Add(fhEtaPhiPtSumIso[icone][ipt]) ;
1428
1429 snprintf(name, buffersize,"hEtaPhiSumDensity_Cone_%d_Pt%d",icone,ipt);
1430 snprintf(title, buffersize,"Isolated candidate #eta:#phi distribution for density R = %2.2f and p_{T}^{sum} = %2.2f GeV/c",fConeSizes[icone],fSumPtThresholds[ipt]);
1431 fhEtaPhiSumDensityIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
1432 fhEtaPhiSumDensityIso[icone][ipt]->SetXTitle("#eta");
1433 fhEtaPhiSumDensityIso[icone][ipt]->SetYTitle("#phi");
1434 outputContainer->Add(fhEtaPhiSumDensityIso[icone][ipt]) ;
1435
1436 snprintf(name, buffersize,"hEtaPhiFracPtSum_Cone_%d_Pt%d",icone,ipt);
1437 snprintf(title, buffersize,"Isolated candidate #eta:#phi distribution for FracPtSum R = %2.2f and p_{T}^{fr} = %2.2f GeV/c",fConeSizes[icone],fPtFractions[ipt]);
1438 fhEtaPhiFracPtSumIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
1439 fhEtaPhiFracPtSumIso[icone][ipt]->SetXTitle("#eta");
1440 fhEtaPhiFracPtSumIso[icone][ipt]->SetYTitle("#phi");
1441 outputContainer->Add(fhEtaPhiFracPtSumIso[icone][ipt]) ;
1442
1443 // eta:phi decays
1444 snprintf(name, buffersize,"hEtaPhiPtThres_Decay_Cone_%d_Pt%d",icone,ipt);
1445 snprintf(title, buffersize,"Isolated decay candidate #eta:#phi distribution for R = %2.2f and p_{T}^{th} = %2.2f GeV/c",fConeSizes[icone],fPtThresholds[ipt]);
1446 fhEtaPhiPtThresDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
1447 fhEtaPhiPtThresDecayIso[icone][ipt]->SetXTitle("#eta");
1448 fhEtaPhiPtThresDecayIso[icone][ipt]->SetYTitle("#phi");
1449 outputContainer->Add(fhEtaPhiPtThresDecayIso[icone][ipt]) ;
1450
1451 snprintf(name, buffersize,"hEtaPhiPtFrac_Decay_Cone_%d_Pt%d",icone,ipt);
1452 snprintf(title, buffersize,"Isolated decay candidate #eta:#phi distribution for R = %2.2f and p_{T}^{fr} = %2.2f GeV/c",fConeSizes[icone],fPtFractions[ipt]);
1453 fhEtaPhiPtFracDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
1454 fhEtaPhiPtFracDecayIso[icone][ipt]->SetXTitle("#eta");
1455 fhEtaPhiPtFracDecayIso[icone][ipt]->SetYTitle("#phi");
1456 outputContainer->Add(fhEtaPhiPtFracDecayIso[icone][ipt]) ;
1457
1458
1459 snprintf(name, buffersize,"hEtaPhiPtSum_Decay_Cone_%d_Pt%d",icone,ipt);
1460 snprintf(title, buffersize,"Isolated decay candidate #eta:#phi distribution for R = %2.2f and p_{T}^{sum} = %2.2f GeV/c",fConeSizes[icone],fSumPtThresholds[ipt]);
1461 fhEtaPhiPtSumDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
1462 fhEtaPhiPtSumDecayIso[icone][ipt]->SetXTitle("#eta");
1463 fhEtaPhiPtSumDecayIso[icone][ipt]->SetYTitle("#phi");
1464 outputContainer->Add(fhEtaPhiPtSumDecayIso[icone][ipt]) ;
1465
1466 snprintf(name, buffersize,"hEtaPhiSumDensity_Decay_Cone_%d_Pt%d",icone,ipt);
1467 snprintf(title, buffersize,"Isolated decay candidate #eta:#phi distribution for density R = %2.2f and p_{T}^{sum} = %2.2f GeV/c",fConeSizes[icone],fSumPtThresholds[ipt]);
1468 fhEtaPhiSumDensityDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
1469 fhEtaPhiSumDensityDecayIso[icone][ipt]->SetXTitle("#eta");
1470 fhEtaPhiSumDensityDecayIso[icone][ipt]->SetYTitle("#phi");
1471 outputContainer->Add(fhEtaPhiSumDensityDecayIso[icone][ipt]) ;
1472
1473 snprintf(name, buffersize,"hEtaPhiFracPtSum_Decay_Cone_%d_Pt%d",icone,ipt);
1474 snprintf(title, buffersize,"Isolated decay candidate #eta:#phi distribution for FracPtSum R = %2.2f and p_{T}^{fr} = %2.2f GeV/c",fConeSizes[icone],fPtFractions[ipt]);
1475 fhEtaPhiFracPtSumDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
1476 fhEtaPhiFracPtSumDecayIso[icone][ipt]->SetXTitle("#eta");
1477 fhEtaPhiFracPtSumDecayIso[icone][ipt]->SetYTitle("#phi");
1478 outputContainer->Add(fhEtaPhiFracPtSumDecayIso[icone][ipt]) ;
1479
1480
1481 if(IsDataMC())
1482 {
1483 snprintf(name, buffersize,"hPtThresMCPrompt_Cone_%d_Pt%d",icone,ipt);
1484 snprintf(title, buffersize,"Isolated candidate Prompt p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1485 fhPtThresIsolatedPrompt[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1486 fhPtThresIsolatedPrompt[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1487 outputContainer->Add(fhPtThresIsolatedPrompt[icone][ipt]) ;
1488
1489 snprintf(name, buffersize,"hPtFracMCPrompt_Cone_%d_Pt%d",icone,ipt);
1490 snprintf(title, buffersize,"Isolated candidate Prompt p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1491 fhPtFracIsolatedPrompt[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1492 fhPtFracIsolatedPrompt[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1493 outputContainer->Add(fhPtFracIsolatedPrompt[icone][ipt]) ;
1494
1495 snprintf(name, buffersize,"hPtThresMCFragmentation_Cone_%d_Pt%d",icone,ipt);
1496 snprintf(title, buffersize,"Isolated candidate Fragmentation p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1497 fhPtThresIsolatedFragmentation[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1498 fhPtThresIsolatedFragmentation[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1499 outputContainer->Add(fhPtThresIsolatedFragmentation[icone][ipt]) ;
1500
1501 snprintf(name, buffersize,"hPtFracMCFragmentation_Cone_%d_Pt%d",icone,ipt);
1502 snprintf(title, buffersize,"Isolated candidate Fragmentation p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1503 fhPtFracIsolatedFragmentation[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1504 fhPtFracIsolatedFragmentation[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1505 outputContainer->Add(fhPtFracIsolatedFragmentation[icone][ipt]) ;
1506
764ab1f4 1507 snprintf(name, buffersize,"hPtThresMCPi0_Cone_%d_Pt%d",icone,ipt);
1508 snprintf(title, buffersize,"Isolated candidate Pi0 p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1509 fhPtThresIsolatedPi0[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1510 fhPtThresIsolatedPi0[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1511 outputContainer->Add(fhPtThresIsolatedPi0[icone][ipt]) ;
1512
1513 snprintf(name, buffersize,"hPtFracMCPi0_Cone_%d_Pt%d",icone,ipt);
1514 snprintf(title, buffersize,"Isolated candidate Pi0 p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1515 fhPtFracIsolatedPi0[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1516 fhPtFracIsolatedPi0[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1517 outputContainer->Add(fhPtFracIsolatedPi0[icone][ipt]) ;
1518
b0a31c92 1519 snprintf(name, buffersize,"hPtThresMCPi0Decay_Cone_%d_Pt%d",icone,ipt);
1520 snprintf(title, buffersize,"Isolated candidate Pi0Decay p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1521 fhPtThresIsolatedPi0Decay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1522 fhPtThresIsolatedPi0Decay[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1523 outputContainer->Add(fhPtThresIsolatedPi0Decay[icone][ipt]) ;
1524
1525 snprintf(name, buffersize,"hPtFracMCPi0Decay_Cone_%d_Pt%d",icone,ipt);
1526 snprintf(title, buffersize,"Isolated candidate Pi0Decay p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1527 fhPtFracIsolatedPi0Decay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1528 fhPtFracIsolatedPi0Decay[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1529 outputContainer->Add(fhPtFracIsolatedPi0Decay[icone][ipt]) ;
1530
1531 snprintf(name, buffersize,"hPtThresMCEtaDecay_Cone_%d_Pt%d",icone,ipt);
1532 snprintf(title, buffersize,"Isolated candidate EtaDecay p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1533 fhPtThresIsolatedEtaDecay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1534 fhPtThresIsolatedEtaDecay[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1535 outputContainer->Add(fhPtThresIsolatedEtaDecay[icone][ipt]) ;
1536
1537 snprintf(name, buffersize,"hPtFracMCEtaDecay_Cone_%d_Pt%d",icone,ipt);
1538 snprintf(title, buffersize,"Isolated candidate EtaDecay p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1539 fhPtFracIsolatedEtaDecay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1540 fhPtFracIsolatedEtaDecay[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1541 outputContainer->Add(fhPtFracIsolatedEtaDecay[icone][ipt]) ;
1542
1543
1544 snprintf(name, buffersize,"hPtThresMCOtherDecay_Cone_%d_Pt%d",icone,ipt);
1545 snprintf(title, buffersize,"Isolated candidate OtherDecay p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1546 fhPtThresIsolatedOtherDecay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1547 fhPtThresIsolatedOtherDecay[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1548 outputContainer->Add(fhPtThresIsolatedOtherDecay[icone][ipt]) ;
1549
1550 snprintf(name, buffersize,"hPtFracMCOtherDecay_Cone_%d_Pt%d",icone,ipt);
1551 snprintf(title, buffersize,"Isolated candidate OtherDecay p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1552 fhPtFracIsolatedOtherDecay[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1553 fhPtFracIsolatedOtherDecay[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1554 outputContainer->Add(fhPtFracIsolatedOtherDecay[icone][ipt]) ;
1555
764ab1f4 1556// snprintf(name, buffersize,"hPtThresMCConversion_Cone_%d_Pt%d",icone,ipt);
1557// snprintf(title, buffersize,"Isolated candidate Conversion p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1558// fhPtThresIsolatedConversion[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1559// fhPtThresIsolatedConversion[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1560// outputContainer->Add(fhPtThresIsolatedConversion[icone][ipt]) ;
b0a31c92 1561
764ab1f4 1562// snprintf(name, buffersize,"hPtFracMCConversion_Cone_%d_Pt%d",icone,ipt);
1563// snprintf(title, buffersize,"Isolated candidate Conversion p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1564// fhPtFracIsolatedConversion[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1565// fhPtFracIsolatedConversion[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1566// outputContainer->Add(fhPtFracIsolatedConversion[icone][ipt]) ;
b0a31c92 1567
764ab1f4 1568 snprintf(name, buffersize,"hPtThresMCHadron_Cone_%d_Pt%d",icone,ipt);
1569 snprintf(title, buffersize,"Isolated candidate Hadron p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1570 fhPtThresIsolatedHadron[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1571 fhPtThresIsolatedHadron[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1572 outputContainer->Add(fhPtThresIsolatedHadron[icone][ipt]) ;
b0a31c92 1573
764ab1f4 1574 snprintf(name, buffersize,"hPtFracMCHadron_Cone_%d_Pt%d",icone,ipt);
1575 snprintf(title, buffersize,"Isolated candidate Hadron p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
1576 fhPtFracIsolatedHadron[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
1577 fhPtFracIsolatedHadron[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
1578 outputContainer->Add(fhPtFracIsolatedHadron[icone][ipt]) ;
b0a31c92 1579
e4ef72be 1580 }//Histos with MC
1581 }//icone loop
1582 }//ipt loop
1a31a9ab 1583 }
1584
2ad19c3d 1585 if(fFillPileUpHistograms)
1586 {
17af6e24 1587 for (Int_t i = 0; i < 7 ; i++)
1588 {
1589 fhEIsoPileUp[i] = new TH1F(Form("hEPileUp%s",pileUpName[i].Data()),
1590 Form("Number of isolated particles vs E for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f, pile-up event by %s",r,ptthre,ptfrac,pileUpName[i].Data()),
1591 nptbins,ptmin,ptmax);
1592 fhEIsoPileUp[i]->SetYTitle("dN / dE");
1593 fhEIsoPileUp[i]->SetXTitle("E (GeV/c)");
1594 outputContainer->Add(fhEIsoPileUp[i]) ;
1595
1596 fhPtIsoPileUp[i] = new TH1F(Form("hPtPileUp%s",pileUpName[i].Data()),
1597 Form("Number of isolated particles vs p_{T} for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr}= %2.2f, pile-up event by %s ",r,ptthre,ptfrac,pileUpName[i].Data()),
1598 nptbins,ptmin,ptmax);
1599 fhPtIsoPileUp[i]->SetYTitle("dN / p_{T}");
1600 fhPtIsoPileUp[i]->SetXTitle("p_{T} (GeV/c)");
1601 outputContainer->Add(fhPtIsoPileUp[i]) ;
1602
1603 fhENoIsoPileUp[i] = new TH1F(Form("hENoIsoPileUp%s",pileUpName[i].Data()),
1604 Form("Number of not isolated particles vs E for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f, pile-up event by %s",r,ptthre,ptfrac,pileUpName[i].Data()),
1605 nptbins,ptmin,ptmax);
1606 fhENoIsoPileUp[i]->SetYTitle("dN / dE");
1607 fhENoIsoPileUp[i]->SetXTitle("E (GeV/c)");
1608 outputContainer->Add(fhENoIsoPileUp[i]) ;
1609
1610 fhPtNoIsoPileUp[i] = new TH1F(Form("hPtNoIsoPileUp%s",pileUpName[i].Data()),
1611 Form("Number of not isolated particles vs p_{T} for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr}= %2.2f, pile-up event by %s ",r,ptthre,ptfrac,pileUpName[i].Data()),
1612 nptbins,ptmin,ptmax);
1613 fhPtNoIsoPileUp[i]->SetYTitle("dN / p_{T}");
1614 fhPtNoIsoPileUp[i]->SetXTitle("p_{T} (GeV/c)");
1615 outputContainer->Add(fhPtNoIsoPileUp[i]) ;
1616 }
b1f720a7 1617
2ad19c3d 1618 fhTimeENoCut = new TH2F ("hTimeE_NoCut","time of cluster vs E of clusters, no cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
1619 fhTimeENoCut->SetXTitle("E (GeV)");
1620 fhTimeENoCut->SetYTitle("time (ns)");
1621 outputContainer->Add(fhTimeENoCut);
1622
1623 fhTimeESPD = new TH2F ("hTimeE_SPD","time of cluster vs E of clusters, SPD cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
1624 fhTimeESPD->SetXTitle("E (GeV)");
1625 fhTimeESPD->SetYTitle("time (ns)");
1626 outputContainer->Add(fhTimeESPD);
1627
1628 fhTimeESPDMulti = new TH2F ("hTimeE_SPDMulti","time of cluster vs E of clusters, SPD multi cut", nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
1629 fhTimeESPDMulti->SetXTitle("E (GeV)");
1630 fhTimeESPDMulti->SetYTitle("time (ns)");
1631 outputContainer->Add(fhTimeESPDMulti);
1632
1633 fhTimeNPileUpVertSPD = new TH2F ("hTime_NPileUpVertSPD","time of cluster vs N pile-up SPD vertex", ntimebins,timemin,timemax,50,0,50);
1634 fhTimeNPileUpVertSPD->SetYTitle("# vertex ");
1635 fhTimeNPileUpVertSPD->SetXTitle("time (ns)");
1636 outputContainer->Add(fhTimeNPileUpVertSPD);
1637
1638 fhTimeNPileUpVertTrack = new TH2F ("hTime_NPileUpVertTracks","time of cluster vs N pile-up Tracks vertex", ntimebins,timemin,timemax, 50,0,50 );
1639 fhTimeNPileUpVertTrack->SetYTitle("# vertex ");
1640 fhTimeNPileUpVertTrack->SetXTitle("time (ns)");
1641 outputContainer->Add(fhTimeNPileUpVertTrack);
1642
1643 fhTimeNPileUpVertContributors = new TH2F ("hTime_NPileUpVertContributors","time of cluster vs N constributors to pile-up SPD vertex", ntimebins,timemin,timemax,50,0,50);
1644 fhTimeNPileUpVertContributors->SetYTitle("# vertex ");
1645 fhTimeNPileUpVertContributors->SetXTitle("time (ns)");
1646 outputContainer->Add(fhTimeNPileUpVertContributors);
1647
1648 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);
1649 fhTimePileUpMainVertexZDistance->SetYTitle("distance Z (cm) ");
1650 fhTimePileUpMainVertexZDistance->SetXTitle("time (ns)");
1651 outputContainer->Add(fhTimePileUpMainVertexZDistance);
1652
1653 fhTimePileUpMainVertexZDiamond = new TH2F ("hTime_PileUpMainVertexZDiamond","time of cluster vs distance in Z pile-up SPD vertex - z diamond",ntimebins,timemin,timemax,100,0,50);
1654 fhTimePileUpMainVertexZDiamond->SetYTitle("diamond distance Z (cm) ");
1655 fhTimePileUpMainVertexZDiamond->SetXTitle("time (ns)");
1656 outputContainer->Add(fhTimePileUpMainVertexZDiamond);
2ad19c3d 1657 }
1658
1a31a9ab 1659 return outputContainer ;
1660
1661}
1662
03bae431 1663//__________________________________
1664void AliAnaParticleIsolation::Init()
1665{
1666 // Do some checks and init stuff
1667
1668 // In case of several cone and thresholds analysis, open the cuts for the filling of the
1669 // track and cluster reference arrays in cone when done in the MakeAnalysisFillAOD().
1670 // The different cones, thresholds are tested for this list of tracks, clusters.
1671 if(fMakeSeveralIC)
1672 {
1673 printf("AliAnaParticleIsolation::Init() - Open default isolation cuts for multiple Isolation analysis\n");
1674 GetIsolationCut()->SetPtThreshold(100);
1675 GetIsolationCut()->SetPtFraction(100);
1676 GetIsolationCut()->SetConeSize(1);
1677 }
1678}
1679
803d06a8 1680//____________________________________________
1681void AliAnaParticleIsolation::InitParameters()
1682{
1683
1684 //Initialize the parameters of the analysis.
1685 SetInputAODName("PWG4Particle");
1686 SetAODObjArrayName("IsolationCone");
1687 AddToHistogramsName("AnaIsolation_");
1688
1689 fCalorimeter = "PHOS" ;
1690 fReMakeIC = kFALSE ;
1691 fMakeSeveralIC = kFALSE ;
1692
1693 //----------- Several IC-----------------
db6fb352 1694 fNCones = 5 ;
1695 fNPtThresFrac = 5 ;
1696 fConeSizes [0] = 0.1; fConeSizes [1] = 0.2; fConeSizes [2] = 0.3; fConeSizes [3] = 0.4; fConeSizes [4] = 0.5;
1697 fPtThresholds [0] = 1.; fPtThresholds [1] = 2.; fPtThresholds [2] = 3.; fPtThresholds [3] = 4.; fPtThresholds [4] = 5.;
1698 fPtFractions [0] = 0.05; fPtFractions [1] = 0.075; fPtFractions [2] = 0.1; fPtFractions [3] = 1.25; fPtFractions [4] = 1.5;
1699 fSumPtThresholds[0] = 1.; fSumPtThresholds[1] = 2.; fSumPtThresholds[2] = 3.; fSumPtThresholds[3] = 4.; fSumPtThresholds[4] = 5.;
803d06a8 1700
1701 //------------- Histograms settings -------
1702 fHistoNPtSumBins = 100 ;
1703 fHistoPtSumMax = 50 ;
1704 fHistoPtSumMin = 0. ;
1705
1706 fHistoNPtInConeBins = 100 ;
1707 fHistoPtInConeMax = 50 ;
1708 fHistoPtInConeMin = 0. ;
1709
1710}
1711
1712//__________________________________________________
1a31a9ab 1713void AliAnaParticleIsolation::MakeAnalysisFillAOD()
1714{
1715 //Do analysis and fill aods
1716 //Search for the isolated photon in fCalorimeter with pt > GetMinPt()
1717
b5dbb99b 1718 if(!GetInputAODBranch())
1719 {
1a31a9ab 1720 printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() - No input particles in AOD with name branch < %s >, STOP \n",GetInputAODName().Data());
1721 abort();
1722 }
1723
b5dbb99b 1724 if(strcmp(GetInputAODBranch()->GetClass()->GetName(), "AliAODPWG4ParticleCorrelation"))
1725 {
1a31a9ab 1726 printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() - Wrong type of AOD object, change AOD class name in input AOD: It should be <AliAODPWG4ParticleCorrelation> and not <%s> \n",GetInputAODBranch()->GetClass()->GetName());
1727 abort();
1728 }
b0a31c92 1729
1a31a9ab 1730 Int_t n = 0, nfrac = 0;
1731 Bool_t isolated = kFALSE ;
1a31a9ab 1732 Float_t coneptsum = 0 ;
1733 TObjArray * pl = 0x0; ;
1734
1735 //Select the calorimeter for candidate isolation with neutral particles
b5dbb99b 1736 if (fCalorimeter == "PHOS" )
1a31a9ab 1737 pl = GetPHOSClusters();
1738 else if (fCalorimeter == "EMCAL")
1739 pl = GetEMCALClusters();
1740
1741 //Loop on AOD branch, filled previously in AliAnaPhoton, find leading particle to do isolation only with it
1742 Double_t ptLeading = 0. ;
1743 Int_t idLeading = -1 ;
1744 TLorentzVector mom ;
1745 Int_t naod = GetInputAODBranch()->GetEntriesFast();
1746 if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() - Input aod branch entries %d\n", naod);
1747
b5dbb99b 1748 for(Int_t iaod = 0; iaod < naod; iaod++)
1749 {
1a31a9ab 1750 AliAODPWG4ParticleCorrelation * aodinput = (AliAODPWG4ParticleCorrelation*) (GetInputAODBranch()->At(iaod));
81a5e27b 1751
1a31a9ab 1752 //If too small or too large pt, skip
1753 if(aodinput->Pt() < GetMinPt() || aodinput->Pt() > GetMaxPt() ) continue ;
1754
03bae431 1755 //check if it is low pt trigger particle
1756 if((aodinput->Pt() < GetIsolationCut()->GetPtThreshold() ||
1757 aodinput->Pt() < GetIsolationCut()->GetSumPtThreshold()) &&
1758 !fMakeSeveralIC)
b5dbb99b 1759 {
1a31a9ab 1760 continue ; //trigger should not come from underlying event
b5dbb99b 1761 }
1a31a9ab 1762
1763 //vertex cut in case of mixing
04f7a616 1764 Int_t check = CheckMixedEventVertex(aodinput->GetCaloLabel(0), aodinput->GetTrackLabel(0));
1765 if(check == 0) continue;
1766 if(check == -1) return;
1a31a9ab 1767
1768 //find the leading particles with highest momentum
547c2f01 1769 if ( aodinput->Pt() > ptLeading )
b5dbb99b 1770 {
1a31a9ab 1771 ptLeading = aodinput->Pt() ;
226b95ba 1772 idLeading = iaod ;
1a31a9ab 1773 }
b5dbb99b 1774
226b95ba 1775 aodinput->SetLeadingParticle(kFALSE);
b5dbb99b 1776
1a31a9ab 1777 }//finish searching for leading trigger particle
1778
1779 // Check isolation of leading particle
1780 if(idLeading < 0) return;
226b95ba 1781
1a31a9ab 1782 AliAODPWG4ParticleCorrelation * aodinput = (AliAODPWG4ParticleCorrelation*) (GetInputAODBranch()->At(idLeading));
db6fb352 1783 aodinput->SetLeadingParticle(kTRUE);
547c2f01 1784
1785 // Check isolation only of clusters in fiducial region
1786 if(IsFiducialCutOn())
1787 {
050ad675 1788 Bool_t in = GetFiducialCut()->IsInFiducialCut(*aodinput->Momentum(),aodinput->GetDetector()) ;
547c2f01 1789 if(! in ) return ;
1790 }
1791
1a31a9ab 1792 //After cuts, study isolation
1793 n=0; nfrac = 0; isolated = kFALSE; coneptsum = 0;
ac5111f9 1794 GetIsolationCut()->MakeIsolationCut(GetCTSTracks(),pl,
1795 GetReader(), GetCaloPID(),
b5dbb99b 1796 kTRUE, aodinput, GetAODObjArrayName(),
1797 n,nfrac,coneptsum, isolated);
3d187b6c 1798
1799 if(!fMakeSeveralIC) aodinput->SetIsolated(isolated);
2ad19c3d 1800
b5dbb99b 1801 if(GetDebug() > 1)
1802 {
1a31a9ab 1803 if(isolated)printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() : Particle %d IS ISOLATED \n",idLeading);
1804 printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() - End fill AODs \n");
1805 }
1806
1807}
1808
803d06a8 1809//_________________________________________________________
1a31a9ab 1810void AliAnaParticleIsolation::MakeAnalysisFillHistograms()
1811{
1812 //Do analysis and fill histograms
db6fb352 1813
803d06a8 1814 Int_t n = 0, nfrac = 0;
1815 Bool_t isolated = kFALSE ;
1a31a9ab 1816 Float_t coneptsum = 0 ;
b7ce43b4 1817 Float_t etaUEptsum = 0 ;
1818 Float_t phiUEptsum = 0 ;
803d06a8 1819
fedea415 1820 Double_t bz = GetReader()->GetInputEvent()->GetMagneticField();
1821
1a31a9ab 1822 //Loop on stored AOD
1823 Int_t naod = GetInputAODBranch()->GetEntriesFast();
1824 if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Histo aod branch entries %d\n", naod);
1825
1826 //Get vertex for photon momentum calculation
3d187b6c 1827 Double_t vertex[] = {0,0,0} ; //vertex ;
b5dbb99b 1828 if(GetReader()->GetDataType() != AliCaloTrackReader::kMC)
1829 {
b0a31c92 1830 GetReader()->GetVertex(vertex);
1a31a9ab 1831 }
b0a31c92 1832
b5dbb99b 1833 for(Int_t iaod = 0; iaod < naod ; iaod++)
1834 {
1a31a9ab 1835 AliAODPWG4ParticleCorrelation* aod = (AliAODPWG4ParticleCorrelation*) (GetInputAODBranch()->At(iaod));
1836
1837 if(!aod->IsLeadingParticle()) continue; // Try to isolate only leading cluster or track
1838
547c2f01 1839 // Check isolation only of clusters in fiducial region
1840 if(IsFiducialCutOn())
1841 {
050ad675 1842 Bool_t in = GetFiducialCut()->IsInFiducialCut(*aod->Momentum(),aod->GetDetector()) ;
547c2f01 1843 if(! in ) continue ;
1844 }
1845
1a31a9ab 1846 Bool_t isolation = aod->IsIsolated();
803d06a8 1847 Bool_t decay = aod->IsTagged();
0fb69ade 1848 Float_t energy = aod->E();
1a31a9ab 1849 Float_t pt = aod->Pt();
1850 Float_t phi = aod->Phi();
1851 Float_t eta = aod->Eta();
1852 Float_t conesize = GetIsolationCut()->GetConeSize();
1853
1854 //Recover reference arrays with clusters and tracks
1855 TObjArray * refclusters = aod->GetObjArray(GetAODObjArrayName()+"Clusters");
1856 TObjArray * reftracks = aod->GetObjArray(GetAODObjArrayName()+"Tracks");
0fb69ade 1857
1a31a9ab 1858 //If too small or too large pt, skip
1859 if(pt < GetMinPt() || pt > GetMaxPt() ) continue ;
b0a31c92 1860
1a31a9ab 1861 // --- In case of redoing isolation from delta AOD ----
db6fb352 1862
03bae431 1863 if(fMakeSeveralIC)
1864 {
1a31a9ab 1865 //Analysis of multiple IC at same time
1866 MakeSeveralICAnalysis(aod);
03bae431 1867 continue;
1a31a9ab 1868 }
b5dbb99b 1869 else if(fReMakeIC)
1870 {
1a31a9ab 1871 //In case a more strict IC is needed in the produced AOD
1872 n=0; nfrac = 0; isolated = kFALSE; coneptsum = 0;
ac5111f9 1873 GetIsolationCut()->MakeIsolationCut(reftracks, refclusters,
1874 GetReader(), GetCaloPID(),
b5dbb99b 1875 kFALSE, aod, "",
1876 n,nfrac,coneptsum, isolated);
1a31a9ab 1877 fhConeSumPt->Fill(pt,coneptsum);
1878 if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Energy Sum in Isolation Cone %2.2f\n", coneptsum);
1879 }
db6fb352 1880
547c2f01 1881 // ---------------------------------------------------
1a31a9ab 1882
1883 //Fill pt distribution of particles in cone
1884 //Tracks
1885 coneptsum = 0;
1886 Double_t sumptFR = 0. ;
1887 TObjArray * trackList = GetCTSTracks() ;
b5dbb99b 1888 for(Int_t itrack=0; itrack < trackList->GetEntriesFast(); itrack++)
1889 {
1a31a9ab 1890 AliVTrack* track = (AliVTrack *) trackList->At(itrack);
b7ce43b4 1891
3f150b4b 1892 if(!track)
1893 {
1a31a9ab 1894 printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Track not available?");
1895 continue;
1896 }
0fb69ade 1897
b7ce43b4 1898 //fill histogram for UE in phi band
1899 if(track->Eta() > (eta-conesize) && track->Eta() < (eta+conesize))
6c80c1bf 1900 {
1901 phiUEptsum+=track->Pt();
1902 fhPhiBand->Fill(track->Eta(),track->Phi());
1903 }
b7ce43b4 1904 //fill histogram for UE in eta band in EMCal acceptance
1905 if(track->Phi() > (phi-conesize) && track->Phi() < (phi+conesize) && track->Eta() > -0.6 && track->Eta() < 0.6)
6c80c1bf 1906 {
1907 etaUEptsum+=track->Pt();
1908 fhEtaBand->Fill(track->Eta(),track->Phi());
1909 }
1910
b7ce43b4 1911 //fill the histograms at forward range
1a31a9ab 1912 Double_t dPhi = phi - track->Phi() + TMath::PiOver2();
1913 Double_t dEta = eta - track->Eta();
1914 Double_t arg = dPhi*dPhi + dEta*dEta;
b5dbb99b 1915 if(TMath::Sqrt(arg) < conesize)
1916 {
1a31a9ab 1917 fhPtInFRCone->Fill(pt,TMath::Sqrt(track->Px()*track->Px()+track->Py()*track->Py()));
1918 sumptFR+=track->Pt();
0fb69ade 1919 }
1920
1a31a9ab 1921 dPhi = phi - track->Phi() - TMath::PiOver2();
1922 arg = dPhi*dPhi + dEta*dEta;
b5dbb99b 1923 if(TMath::Sqrt(arg) < conesize)
1924 {
1a31a9ab 1925 fhPtInFRCone->Fill(pt,TMath::Sqrt(track->Px()*track->Px()+track->Py()*track->Py()));
1926 sumptFR+=track->Pt();
1927 }
1928 }
0fb69ade 1929
1a31a9ab 1930 fhFRConeSumPt->Fill(pt,sumptFR);
b5dbb99b 1931 if(reftracks)
1932 {
1933 for(Int_t itrack=0; itrack < reftracks->GetEntriesFast(); itrack++)
1934 {
1a31a9ab 1935 AliVTrack* track = (AliVTrack *) reftracks->At(itrack);
6c80c1bf 1936 Float_t pTtrack = track->Pt();
fedea415 1937 fhPtInCone ->Fill(pt,pTtrack);
1938 fhPtTrackInCone->Fill(pt,pTtrack);
17af6e24 1939 if(fFillPileUpHistograms)
1940 {
fedea415 1941 ULong_t status = track->GetStatus();
1942 Bool_t okTOF = ( (status & AliVTrack::kTOFout) == AliVTrack::kTOFout ) ;
1943 //Double32_t tof = track->GetTOFsignal()*1e-3;
1944 Int_t trackBC = track->GetTOFBunchCrossing(bz);
1945
2a9171b5 1946 if ( okTOF && trackBC!=0 )fhPtTrackInConeOtherBC->Fill(pt,pTtrack);
1947 else if( okTOF && trackBC==0 )fhPtTrackInConeBC0 ->Fill(pt,pTtrack);
1948
fedea415 1949 if(GetReader()->IsPileUpFromSPD()) { fhPtInConePileUp[0]->Fill(pt,pTtrack);
2a9171b5 1950 if(okTOF && trackBC!=0 ) fhPtTrackInConeOtherBCPileUpSPD->Fill(pt,pTtrack);
1951 if(okTOF && trackBC==0 ) fhPtTrackInConeBC0PileUpSPD ->Fill(pt,pTtrack); }
17af6e24 1952 if(GetReader()->IsPileUpFromEMCal()) fhPtInConePileUp[1]->Fill(pt,pTtrack);
1953 if(GetReader()->IsPileUpFromSPDOrEMCal()) fhPtInConePileUp[2]->Fill(pt,pTtrack);
1954 if(GetReader()->IsPileUpFromSPDAndEMCal()) fhPtInConePileUp[3]->Fill(pt,pTtrack);
1955 if(GetReader()->IsPileUpFromSPDAndNotEMCal()) fhPtInConePileUp[4]->Fill(pt,pTtrack);
1956 if(GetReader()->IsPileUpFromEMCalAndNotSPD()) fhPtInConePileUp[5]->Fill(pt,pTtrack);
1957 if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) fhPtInConePileUp[6]->Fill(pt,pTtrack);
1958 }
1959
6c80c1bf 1960 if (GetEventCentrality()) fhPtInConeCent->Fill(GetEventCentrality(),pTtrack);
1961 coneptsum+=pTtrack;
1a31a9ab 1962 }
1963 }
1964
1965 //CaloClusters
b5dbb99b 1966 if(refclusters)
1967 {
1a31a9ab 1968 TLorentzVector mom ;
b5dbb99b 1969 for(Int_t icalo=0; icalo < refclusters->GetEntriesFast(); icalo++)
1970 {
1a31a9ab 1971 AliVCluster* calo = (AliVCluster *) refclusters->At(icalo);
1972 calo->GetMomentum(mom,vertex) ;//Assume that come from vertex in straight line
6c80c1bf 1973
1974 //fill histogram for UE in phi band
1975 if(mom.Eta() > (eta-conesize) && mom.Eta() < (eta+conesize))
1976 {
1977 phiUEptsum+=mom.Pt();
1978 fhPhiBand->Fill(mom.Eta(),mom.Phi());
1979 }
1980 //fill histogram for UE in eta band in EMCal acceptance
1981 if(mom.Phi() > (phi-conesize) && mom.Phi() < (phi+conesize))
1982 {
1983 etaUEptsum+=mom.Pt();
1984 fhEtaBand->Fill(mom.Eta(),mom.Phi());
1985 }
1a31a9ab 1986
1987 fhPtInCone->Fill(pt, mom.Pt());
17af6e24 1988 if(fFillPileUpHistograms)
1989 {
1990 if(GetReader()->IsPileUpFromSPD()) fhPtInConePileUp[0]->Fill(pt,mom.Pt());
1991 if(GetReader()->IsPileUpFromEMCal()) fhPtInConePileUp[1]->Fill(pt,mom.Pt());
1992 if(GetReader()->IsPileUpFromSPDOrEMCal()) fhPtInConePileUp[2]->Fill(pt,mom.Pt());
1993 if(GetReader()->IsPileUpFromSPDAndEMCal()) fhPtInConePileUp[3]->Fill(pt,mom.Pt());
1994 if(GetReader()->IsPileUpFromSPDAndNotEMCal()) fhPtInConePileUp[4]->Fill(pt,mom.Pt());
1995 if(GetReader()->IsPileUpFromEMCalAndNotSPD()) fhPtInConePileUp[5]->Fill(pt,mom.Pt());
1996 if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) fhPtInConePileUp[6]->Fill(pt,mom.Pt());
1997 }
1998
6c80c1bf 1999 if (GetEventCentrality()) fhPtInConeCent->Fill(GetEventCentrality(),mom.Pt());
1a31a9ab 2000 coneptsum+=mom.Pt();
2001 }
2002 }
6c80c1bf 2003
b7ce43b4 2004 //normalize phi/eta band per area unit
2005 fhPhiUEConeSumPt->Fill(pt, phiUEptsum*(TMath::Pi()*conesize*conesize)/(2*conesize*2*TMath::Pi()));
2006 fhEtaUEConeSumPt->Fill(pt, etaUEptsum*(TMath::Pi()*conesize*conesize)/(2*conesize*2*0.6));
6c80c1bf 2007
ec58c056 2008 Double_t sumPhiUESub = coneptsum-(phiUEptsum*(TMath::Pi()*conesize*conesize)/(2*conesize*2*TMath::Pi()));
2009 Double_t sumEtaUESub = coneptsum-(etaUEptsum*(TMath::Pi()*conesize*conesize)/(2*conesize*2*0.6));
6c80c1bf 2010
ec58c056 2011 fhConeSumPtPhiUESub->Fill(pt,sumPhiUESub);
2012 fhConeSumPtEtaUESub->Fill(pt,sumEtaUESub);
6c80c1bf 2013
2014
1a31a9ab 2015 if(GetDebug() > 1) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Particle %d Energy Sum in Isolation Cone %2.2f\n", iaod, coneptsum);
2016
2017 if(!fReMakeIC) fhConeSumPt->Fill(pt,coneptsum);
2018
b5dbb99b 2019 Int_t mcTag = aod->GetTag() ;
2020 Int_t clID = aod->GetCaloLabel(0) ;
8736d400 2021 Int_t nlm = aod->GetFiducialArea();
db6fb352 2022 if(GetDebug() > 0) printf(" AliAnaParticleIsolation::MakeAnalysisFillHistograms() - pt %1.1f, eta %1.1f, phi %1.1f\n",pt, eta, phi);
2023
8736d400 2024 FillTrackMatchingShowerShapeControlHistograms(isolation, clID,nlm,mcTag,reftracks,refclusters,aod,GetReader(), GetCaloPID());
2ad19c3d 2025
b5dbb99b 2026 if(isolation)
2027 {
db6fb352 2028 if(GetDebug() > 1) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Particle %d ISOLATED: fill histograms\n", iaod);
6c80c1bf 2029
2ad19c3d 2030 // Fill histograms to undertand pile-up before other cuts applied
2031 // Remember to relax time cuts in the reader
2032 FillPileUpHistograms(clID);
2033
b5dbb99b 2034 fhEIso ->Fill(energy);
2035 fhPtIso ->Fill(pt);
2036 fhPhiIso ->Fill(pt,phi);
2037 fhEtaIso ->Fill(pt,eta);
0fb69ade 2038 fhEtaPhiIso ->Fill(eta,phi);
8736d400 2039 fhPtNLocMaxIso->Fill(pt,nlm);
db6fb352 2040
2041 if(decay)
3f150b4b 2042 {
2043 fhPtDecayIso->Fill(pt);
2044 fhEtaPhiDecayIso->Fill(eta,phi);
2045 }
1a31a9ab 2046
17af6e24 2047 if(fFillPileUpHistograms)
b1f720a7 2048 {
17af6e24 2049 if(GetReader()->IsPileUpFromSPD()) { fhEIsoPileUp[0] ->Fill(energy) ; fhPtIsoPileUp[0]->Fill(pt) ; }
2050 if(GetReader()->IsPileUpFromEMCal()) { fhEIsoPileUp[1] ->Fill(energy) ; fhPtIsoPileUp[1]->Fill(pt) ; }
2051 if(GetReader()->IsPileUpFromSPDOrEMCal()) { fhEIsoPileUp[2] ->Fill(energy) ; fhPtIsoPileUp[2]->Fill(pt) ; }
2052 if(GetReader()->IsPileUpFromSPDAndEMCal()) { fhEIsoPileUp[3] ->Fill(energy) ; fhPtIsoPileUp[3]->Fill(pt) ; }
2053 if(GetReader()->IsPileUpFromSPDAndNotEMCal()) { fhEIsoPileUp[4] ->Fill(energy) ; fhPtIsoPileUp[4]->Fill(pt) ; }
2054 if(GetReader()->IsPileUpFromEMCalAndNotSPD()) { fhEIsoPileUp[5] ->Fill(energy) ; fhPtIsoPileUp[5]->Fill(pt) ; }
2055 if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) { fhEIsoPileUp[6] ->Fill(energy) ; fhPtIsoPileUp[6]->Fill(pt) ; }
2056 }
b1f720a7 2057
b5dbb99b 2058 if(IsDataMC())
2059 {
1a31a9ab 2060
b5dbb99b 2061 if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton))
803d06a8 2062 {
2063 fhPtIsoMCPhoton ->Fill(pt);
2064 }
2065
db6fb352 2066 if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt))
2067 {
1a31a9ab 2068 fhPtIsoPrompt ->Fill(pt);
2069 fhPhiIsoPrompt ->Fill(pt,phi);
2070 fhEtaIsoPrompt ->Fill(pt,eta);
2071 }
b5dbb99b 2072 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation))
1a31a9ab 2073 {
2074 fhPtIsoFragmentation ->Fill(pt);
2075 fhPhiIsoFragmentation ->Fill(pt,phi);
2076 fhEtaIsoFragmentation ->Fill(pt,eta);
2077 }
764ab1f4 2078 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0))
2079 {
2080 fhPtIsoPi0 ->Fill(pt);
2081 fhPhiIsoPi0 ->Fill(pt,phi);
2082 fhEtaIsoPi0 ->Fill(pt,eta);
2083 }
b5dbb99b 2084 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay))
1a31a9ab 2085 {
2086 fhPtIsoPi0Decay ->Fill(pt);
2087 fhPhiIsoPi0Decay ->Fill(pt,phi);
2088 fhEtaIsoPi0Decay ->Fill(pt,eta);
2089 }
b5dbb99b 2090 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay))
803d06a8 2091 {
2092 fhPtIsoEtaDecay ->Fill(pt);
2093 fhPhiIsoEtaDecay ->Fill(pt,phi);
2094 fhEtaIsoEtaDecay ->Fill(pt,eta);
2095 }
b5dbb99b 2096 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay))
1a31a9ab 2097 {
2098 fhPtIsoOtherDecay ->Fill(pt);
2099 fhPhiIsoOtherDecay ->Fill(pt,phi);
2100 fhEtaIsoOtherDecay ->Fill(pt,eta);
2101 }
6c80c1bf 2102 // else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion))
2103 // {
2104 // fhPtIsoConversion ->Fill(pt);
2105 // fhPhiIsoConversion ->Fill(pt,phi);
2106 // fhEtaIsoConversion ->Fill(pt,eta);
2107 // }
764ab1f4 2108 else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron))// anything else but electrons
1a31a9ab 2109 {
764ab1f4 2110 fhPtIsoHadron ->Fill(pt);
2111 fhPhiIsoHadron ->Fill(pt,phi);
2112 fhEtaIsoHadron ->Fill(pt,eta);
1a31a9ab 2113 }
2114 }//Histograms with MC
2115
2116 }//Isolated histograms
ca134929 2117 else // NON isolated
1a31a9ab 2118 {
db6fb352 2119 if(GetDebug() > 1) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Particle %d NOT ISOLATED, fill histograms\n", iaod);
2120
b1f720a7 2121 fhENoIso ->Fill(energy);
2122 fhPtNoIso ->Fill(pt);
2123 fhEtaPhiNoIso ->Fill(eta,phi);
8736d400 2124 fhPtNLocMaxNoIso->Fill(pt,nlm);
2125
17af6e24 2126 if(fFillPileUpHistograms)
b1f720a7 2127 {
17af6e24 2128 if(GetReader()->IsPileUpFromSPD()) { fhENoIsoPileUp[0] ->Fill(energy) ; fhPtNoIsoPileUp[0]->Fill(pt) ; }
2129 if(GetReader()->IsPileUpFromEMCal()) { fhENoIsoPileUp[1] ->Fill(energy) ; fhPtNoIsoPileUp[1]->Fill(pt) ; }
2130 if(GetReader()->IsPileUpFromSPDOrEMCal()) { fhENoIsoPileUp[2] ->Fill(energy) ; fhPtNoIsoPileUp[2]->Fill(pt) ; }
2131 if(GetReader()->IsPileUpFromSPDAndEMCal()) { fhENoIsoPileUp[3] ->Fill(energy) ; fhPtNoIsoPileUp[3]->Fill(pt) ; }
2132 if(GetReader()->IsPileUpFromSPDAndNotEMCal()) { fhENoIsoPileUp[4] ->Fill(energy) ; fhPtNoIsoPileUp[4]->Fill(pt) ; }
2133 if(GetReader()->IsPileUpFromEMCalAndNotSPD()) { fhENoIsoPileUp[5] ->Fill(energy) ; fhPtNoIsoPileUp[5]->Fill(pt) ; }
2134 if(GetReader()->IsPileUpFromNotSPDAndNotEMCal()) { fhENoIsoPileUp[6] ->Fill(energy) ; fhPtNoIsoPileUp[6]->Fill(pt) ; }
b1f720a7 2135 }
2136
db6fb352 2137 if(decay)
3f150b4b 2138 {
db6fb352 2139 fhPtDecayNoIso ->Fill(pt);
3f150b4b 2140 fhEtaPhiDecayNoIso->Fill(eta,phi);
2141 }
1a31a9ab 2142
b5dbb99b 2143 if(IsDataMC())
2144 {
db6fb352 2145 if (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton)) fhPtNoIsoMCPhoton ->Fill(pt);
764ab1f4 2146 if (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0)) fhPtNoIsoPi0 ->Fill(pt);
2147 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtNoIsoPi0Decay ->Fill(pt);
db6fb352 2148 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtNoIsoEtaDecay ->Fill(pt);
2149 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtNoIsoOtherDecay ->Fill(pt);
2150 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt)) fhPtNoIsoPrompt ->Fill(pt);
2151 else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation)) fhPtNoIsoFragmentation->Fill(pt);
6c80c1bf 2152 // else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion)) fhPtNoIsoConversion ->Fill(pt);
764ab1f4 2153 else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron)) fhPtNoIsoHadron ->Fill(pt);
1a31a9ab 2154 }
2155 }
1a31a9ab 2156 }// aod loop
2157
2158}
2159
1a31a9ab 2160
803d06a8 2161//_____________________________________________________________________________________
1a31a9ab 2162void AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelation* ph)
2163{
1a31a9ab 2164
db6fb352 2165 //Isolation Cut Analysis for both methods and different pt cuts and cones
2166 Float_t ptC = ph->Pt();
2167 Float_t etaC = ph->Eta();
2168 Float_t phiC = ph->Phi();
2169 Int_t tag = ph->GetTag();
2170 Bool_t decay = ph->IsTagged();
b0a31c92 2171
03bae431 2172 if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeSeveralICAnalysis() - Isolate pT %2.2f\n",ptC);
2173
1a31a9ab 2174 //Keep original setting used when filling AODs, reset at end of analysis
2175 Float_t ptthresorg = GetIsolationCut()->GetPtThreshold();
2176 Float_t ptfracorg = GetIsolationCut()->GetPtFraction();
2177 Float_t rorg = GetIsolationCut()->GetConeSize();
2178
b7ce43b4 2179 Float_t coneptsum = 0 ;
db6fb352 2180 Int_t n [10][10];//[fNCones][fNPtThresFrac];
2181 Int_t nfrac[10][10];//[fNCones][fNPtThresFrac];
ca134929 2182 Bool_t isolated = kFALSE;
2183 Int_t nCone = 0;
2184 Int_t nFracCone = 0;
44e48e82 2185
db6fb352 2186 // fill hist with all particles before isolation criteria
2187 fhPtNoIso ->Fill(ptC);
2188 fhEtaPhiNoIso->Fill(etaC,phiC);
2189
2190 if(IsDataMC())
2191 {
2192 if (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton)) fhPtNoIsoMCPhoton ->Fill(ptC);
764ab1f4 2193 if (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)) fhPtNoIsoPi0 ->Fill(ptC);
2194 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtNoIsoPi0Decay ->Fill(ptC);
db6fb352 2195 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtNoIsoEtaDecay ->Fill(ptC);
2196 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtNoIsoOtherDecay ->Fill(ptC);
2197 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtNoIsoPrompt ->Fill(ptC);
2198 else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtNoIsoFragmentation->Fill(ptC);
764ab1f4 2199// else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtNoIsoConversion ->Fill(ptC);
2200 else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)) fhPtNoIsoHadron ->Fill(ptC);
db6fb352 2201 }
2202
2203 if(decay)
2204 {
2205 fhPtDecayNoIso ->Fill(ptC);
2206 fhEtaPhiDecayNoIso->Fill(etaC,phiC);
2207 }
44e48e82 2208 //Get vertex for photon momentum calculation
2209 Double_t vertex[] = {0,0,0} ; //vertex ;
2210 if(GetReader()->GetDataType() != AliCaloTrackReader::kMC)
2211 {
2212 GetReader()->GetVertex(vertex);
2213 }
2214
1a31a9ab 2215 //Loop on cone sizes
b5dbb99b 2216 for(Int_t icone = 0; icone<fNCones; icone++)
2217 {
44e48e82 2218 //Recover reference arrays with clusters and tracks
2219 TObjArray * refclusters = ph->GetObjArray(GetAODObjArrayName()+"Clusters");
2220 TObjArray * reftracks = ph->GetObjArray(GetAODObjArrayName()+"Tracks");
2221
2222 //If too small or too large pt, skip
2223 if(ptC < GetMinPt() || ptC > GetMaxPt() ) continue ;
2224
2225 //In case a more strict IC is needed in the produced AOD
2226
b7ce43b4 2227 nCone=0; nFracCone = 0; isolated = kFALSE; coneptsum = 0;
44e48e82 2228
2229 GetIsolationCut()->SetSumPtThreshold(100);
2230 GetIsolationCut()->SetPtThreshold(100);
2231 GetIsolationCut()->SetPtFraction(100);
2232 GetIsolationCut()->SetConeSize(fConeSizes[icone]);
2233 GetIsolationCut()->MakeIsolationCut(reftracks, refclusters,
2234 GetReader(), GetCaloPID(),
2235 kFALSE, ph, "",
b7ce43b4 2236 nCone,nFracCone,coneptsum, isolated);
44e48e82 2237
2238
2239 fhSumPtLeadingPt[icone]->Fill(ptC,coneptsum);
db6fb352 2240
44e48e82 2241 // retreive pt tracks to fill histo vs. pt leading
2242 //Fill pt distribution of particles in cone
2243 //fhPtLeadingPt(),fhFRSumPtLeadingPt(),fhFRPtLeadingPt(),
2244
2245 //Tracks
2246 coneptsum = 0;
2247 Double_t sumptFR = 0. ;
2248 TObjArray * trackList = GetCTSTracks() ;
2249 for(Int_t itrack=0; itrack < trackList->GetEntriesFast(); itrack++)
2250 {
2251 AliVTrack* track = (AliVTrack *) trackList->At(itrack);
2252 //fill the histograms at forward range
2253 if(!track)
2254 {
2255 printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Track not available?");
2256 continue;
2257 }
2258
2259 Double_t dPhi = phiC - track->Phi() + TMath::PiOver2();
2260 Double_t dEta = etaC - track->Eta();
2261 Double_t arg = dPhi*dPhi + dEta*dEta;
2262 if(TMath::Sqrt(arg) < fConeSizes[icone])
2263 {
2264 fhFRPtLeadingPt[icone]->Fill(ptC,TMath::Sqrt(track->Px()*track->Px()+track->Py()*track->Py()));
2265 sumptFR+=track->Pt();
2266 }
2267
2268 dPhi = phiC - track->Phi() - TMath::PiOver2();
2269 arg = dPhi*dPhi + dEta*dEta;
2270 if(TMath::Sqrt(arg) < fConeSizes[icone])
2271 {
2272 fhFRPtLeadingPt[icone]->Fill(ptC,TMath::Sqrt(track->Px()*track->Px()+track->Py()*track->Py()));
2273 sumptFR+=track->Pt();
2274 }
2275 }
2276 fhFRSumPtLeadingPt[icone]->Fill(ptC,sumptFR);
2277 if(reftracks)
2278 {
2279 for(Int_t itrack=0; itrack < reftracks->GetEntriesFast(); itrack++)
2280 {
2281 AliVTrack* track = (AliVTrack *) reftracks->At(itrack);
2282 fhPtLeadingPt[icone]->Fill(ptC,TMath::Sqrt(track->Px()*track->Px()+track->Py()*track->Py()));
2283 coneptsum+=track->Pt();
2284 }
2285 }
2286 //CaloClusters
2287 if(refclusters)
2288 {
2289 TLorentzVector mom ;
2290 for(Int_t icalo=0; icalo < refclusters->GetEntriesFast(); icalo++)
2291 {
2292 AliVCluster* calo = (AliVCluster *) refclusters->At(icalo);
2293 calo->GetMomentum(mom,vertex) ;//Assume that come from vertex in straight line
2294
2295 fhPtLeadingPt[icone]->Fill(ptC, mom.Pt());
2296 coneptsum+=mom.Pt();
2297 }
2298 }
2299 ///////////////////
2300
2301
1a31a9ab 2302 //Loop on ptthresholds
b5dbb99b 2303 for(Int_t ipt = 0; ipt<fNPtThresFrac ;ipt++)
2304 {
db6fb352 2305 n [icone][ipt]=0;
1a31a9ab 2306 nfrac[icone][ipt]=0;
2307 GetIsolationCut()->SetPtThreshold(fPtThresholds[ipt]);
db6fb352 2308 GetIsolationCut()->SetPtFraction(fPtFractions[ipt]) ;
2309 GetIsolationCut()->SetSumPtThreshold(fSumPtThresholds[ipt]);
2310
44e48e82 2311 GetIsolationCut()->MakeIsolationCut(reftracks, refclusters,
ac5111f9 2312 GetReader(), GetCaloPID(),
b5dbb99b 2313 kFALSE, ph, "",
2314 n[icone][ipt],nfrac[icone][ipt],coneptsum, isolated);
1a31a9ab 2315
db6fb352 2316 if(!isolated) continue;
1a31a9ab 2317 //Normal ptThreshold cut
db6fb352 2318
2319 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",
2320 fConeSizes[icone],fPtThresholds[ipt],fSumPtThresholds[ipt],n[icone][ipt],nfrac[icone][ipt],coneptsum, isolated);
2321 if(GetDebug() > 0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - pt %1.1f, eta %1.1f, phi %1.1f\n",ptC, etaC, phiC);
2322
b5dbb99b 2323 if(n[icone][ipt] == 0)
2324 {
db6fb352 2325 if(GetDebug()>0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - filling pt threshold loop\n");
1a31a9ab 2326 fhPtThresIsolated[icone][ipt]->Fill(ptC);
db6fb352 2327 fhEtaPhiPtThresIso[icone][ipt]->Fill(etaC,phiC);
2328
2329 if(decay)
2330 {
2331 fhPtPtThresDecayIso[icone][ipt]->Fill(ptC);
2332 // fhEtaPhiPtThresDecayIso[icone][ipt]->Fill(etaC,phiC);
2333 }
2334
b5dbb99b 2335 if(IsDataMC())
2336 {
803d06a8 2337 if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtThresIsolatedPrompt[icone][ipt] ->Fill(ptC) ;
764ab1f4 2338// else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtThresIsolatedConversion[icone][ipt] ->Fill(ptC) ;
803d06a8 2339 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtThresIsolatedFragmentation[icone][ipt]->Fill(ptC) ;
764ab1f4 2340 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)) fhPtThresIsolatedPi0[icone][ipt] ->Fill(ptC) ;
803d06a8 2341 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtThresIsolatedPi0Decay[icone][ipt] ->Fill(ptC) ;
2342 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtThresIsolatedEtaDecay[icone][ipt] ->Fill(ptC) ;
2343 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtThresIsolatedOtherDecay[icone][ipt] ->Fill(ptC) ;
764ab1f4 2344 else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)) fhPtThresIsolatedHadron[icone][ipt] ->Fill(ptC) ;
1a31a9ab 2345 }
2346 }
2347
db6fb352 2348 // pt in cone fraction
b5dbb99b 2349 if(nfrac[icone][ipt] == 0)
2350 {
db6fb352 2351 if(GetDebug()>0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - filling frac loop\n");
1a31a9ab 2352 fhPtFracIsolated[icone][ipt]->Fill(ptC);
db6fb352 2353 fhEtaPhiPtFracIso[icone][ipt]->Fill(etaC,phiC);
2354
2355 if(decay)
2356 {
2357 fhPtPtFracDecayIso[icone][ipt]->Fill(ptC);
b0a31c92 2358 fhEtaPhiPtFracDecayIso[icone][ipt]->Fill(etaC,phiC);
db6fb352 2359 }
2360
b5dbb99b 2361 if(IsDataMC())
2362 {
803d06a8 2363 if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtFracIsolatedPrompt[icone][ipt] ->Fill(ptC) ;
764ab1f4 2364// else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtFracIsolatedConversion[icone][ipt] ->Fill(ptC) ;
803d06a8 2365 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtFracIsolatedFragmentation[icone][ipt]->Fill(ptC) ;
764ab1f4 2366 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)) fhPtFracIsolatedPi0[icone][ipt] ->Fill(ptC) ;
803d06a8 2367 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtFracIsolatedPi0Decay[icone][ipt] ->Fill(ptC) ;
2368 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtFracIsolatedEtaDecay[icone][ipt] ->Fill(ptC) ;
2369 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtFracIsolatedOtherDecay[icone][ipt] ->Fill(ptC) ;
764ab1f4 2370 else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)) fhPtFracIsolatedHadron[icone][ipt]->Fill(ptC) ;
1a31a9ab 2371 }
2372 }
db6fb352 2373
2374 if(GetDebug()>0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - checking IC method : %i\n",GetIsolationCut()->GetICMethod());
2375
2376 //Pt threshold on pt cand/ sum in cone histograms
2377 if(coneptsum<fSumPtThresholds[ipt])
2378 {// if((GetIsolationCut()->GetICMethod())==1){//kSumPtIC){
2379 if(GetDebug()>0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - filling sum loop\n");
2380 fhPtSumIsolated[icone][ipt]->Fill(ptC) ;
b0a31c92 2381 fhEtaPhiPtSumIso[icone][ipt]->Fill(etaC, phiC) ;
db6fb352 2382 if(decay)
2383 {
2384 fhPtPtSumDecayIso[icone][ipt]->Fill(ptC);
b0a31c92 2385 fhEtaPhiPtSumDecayIso[icone][ipt]->Fill(etaC, phiC) ;
db6fb352 2386 }
2387 }
2388
44e48e82 2389 // pt sum pt frac method
bb5fc123 2390// if( ((fPtFractions[ipt]*ptC < fSumPtThresholds[ipt]) && (coneptsum < fSumPtThresholds[ipt])) || ((fPtFractions[ipt]*ptC > fSumPtThresholds[ipt]) && (coneptsum < fPtFractions[ipt]*ptC)) )
2391
2392 if(coneptsum < fPtFractions[ipt]*ptC)
2393 {
b0a31c92 2394 if(GetDebug()>0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - filling PtFrac PtSum loop\n");
2395 fhPtFracPtSumIso[icone][ipt]->Fill(ptC) ;
2396 fhEtaPhiFracPtSumIso[icone][ipt]->Fill(etaC,phiC) ;
2397
2398 if(decay)
2399 {
2400 fhPtFracPtSumDecayIso[icone][ipt]->Fill(ptC);
2401 fhEtaPhiFracPtSumDecayIso[icone][ipt]->Fill(etaC,phiC);
2402 }
2403 }
2404
2405 // density method
db6fb352 2406 Float_t cellDensity = GetIsolationCut()->GetCellDensity( ph, GetReader());
2407 if(coneptsum<fSumPtThresholds[ipt]*cellDensity)
2408 {//(GetIsolationCut()->GetICMethod())==4){//kSumDensityIC) {
2409 if(GetDebug()>0) printf(" AliAnaParticleIsolation::MakeSeveralICAnalysis() - filling density loop\n");
2410 fhPtSumDensityIso[icone][ipt]->Fill(ptC) ;
b0a31c92 2411 fhEtaPhiSumDensityIso[icone][ipt]->Fill(etaC,phiC) ;
2412
db6fb352 2413 if(decay)
2414 {
2415 fhPtSumDensityDecayIso[icone][ipt]->Fill(ptC);
b0a31c92 2416 fhEtaPhiSumDensityDecayIso[icone][ipt]->Fill(etaC, phiC);
db6fb352 2417 }
2418
2419 }
1a31a9ab 2420 }//pt thresh loop
2421
b5dbb99b 2422 if(IsDataMC())
2423 {
803d06a8 2424 if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt)) fhPtSumIsolatedPrompt[icone] ->Fill(ptC,coneptsum) ;
764ab1f4 2425// else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) fhPtSumIsolatedConversion[icone] ->Fill(ptC,coneptsum) ;
803d06a8 2426 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtSumIsolatedFragmentation[icone]->Fill(ptC,coneptsum) ;
764ab1f4 2427 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0)) fhPtSumIsolatedPi0[icone] ->Fill(ptC,coneptsum) ;
803d06a8 2428 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay)) fhPtSumIsolatedPi0Decay[icone] ->Fill(ptC,coneptsum) ;
2429 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay)) fhPtSumIsolatedEtaDecay[icone] ->Fill(ptC,coneptsum) ;
2430 else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay)) fhPtSumIsolatedOtherDecay[icone] ->Fill(ptC,coneptsum) ;
764ab1f4 2431 else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron)) fhPtSumIsolatedHadron[icone]->Fill(ptC,coneptsum) ;
1a31a9ab 2432 }
2433
2434 }//cone size loop
2435
2436 //Reset original parameters for AOD analysis
2437 GetIsolationCut()->SetPtThreshold(ptthresorg);
2438 GetIsolationCut()->SetPtFraction(ptfracorg);
2439 GetIsolationCut()->SetConeSize(rorg);
2440
2441}
2442
803d06a8 2443//_____________________________________________________________
1a31a9ab 2444void AliAnaParticleIsolation::Print(const Option_t * opt) const
2445{
2446
2447 //Print some relevant parameters set for the analysis
2448 if(! opt)
2449 return;
2450
2451 printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
745913ae 2452 AliAnaCaloTrackCorrBaseClass::Print(" ");
1a31a9ab 2453
2454 printf("ReMake Isolation = %d \n", fReMakeIC) ;
2455 printf("Make Several Isolation = %d \n", fMakeSeveralIC) ;
2456 printf("Calorimeter for isolation = %s \n", fCalorimeter.Data()) ;
2457
b5dbb99b 2458 if(fMakeSeveralIC)
2459 {
1a31a9ab 2460 printf("N Cone Sizes = %d\n", fNCones) ;
2461 printf("Cone Sizes = \n") ;
2462 for(Int_t i = 0; i < fNCones; i++)
2463 printf(" %1.2f;", fConeSizes[i]) ;
2464 printf(" \n") ;
2465
2466 printf("N pT thresholds/fractions = %d\n", fNPtThresFrac) ;
2467 printf(" pT thresholds = \n") ;
2468 for(Int_t i = 0; i < fNPtThresFrac; i++)
2469 printf(" %2.2f;", fPtThresholds[i]) ;
2470
2471 printf(" \n") ;
2472
2473 printf(" pT fractions = \n") ;
2474 for(Int_t i = 0; i < fNPtThresFrac; i++)
2475 printf(" %2.2f;", fPtFractions[i]) ;
2476
db6fb352 2477 printf(" \n") ;
2478
2479 printf("sum pT thresholds = \n") ;
2480 for(Int_t i = 0; i < fNPtThresFrac; i++)
2481 printf(" %2.2f;", fSumPtThresholds[i]) ;
2482
2483
1a31a9ab 2484 }
2485
b5dbb99b 2486 printf("Histograms: %3.1f < pT sum < %3.1f, Nbin = %d\n", fHistoPtSumMin, fHistoPtSumMax, fHistoNPtSumBins );
1a31a9ab 2487 printf("Histograms: %3.1f < pT in cone < %3.1f, Nbin = %d\n", fHistoPtInConeMin, fHistoPtInConeMax, fHistoNPtInConeBins);
2488
2489 printf(" \n") ;
2490
2491}
2492