AliPhysics  master (3d17d9d)
AliIsolationCut.h
Go to the documentation of this file.
1 #ifndef ALIISOLATIONCUT_H
2 #define ALIISOLATIONCUT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 //_________________________________________________________________________
19 //_________________________________________________________________________
20 
21 // --- ROOT system ---
22 #include <TObject.h>
23 class TObjArray ;
24 class TList ;
25 #include <TLorentzVector.h>
26 
27 // --- ANALYSIS system ---
29 class AliCaloTrackReader ;
30 class AliCaloPID;
31 class AliHistogramRanges;
32 
33 class AliIsolationCut : public TObject {
34 
35  public:
36 
37  AliIsolationCut() ; // default ctor
38 
40  virtual ~AliIsolationCut() { ; }
41 
42  // Enums
43 
44  enum type { kPtThresIC ,
53  } ;
55 
59  } ;
60 
61  // Main Methods
62 
63  void InitParameters() ;
64 
66 
68  AliCaloTrackReader * reader) const ;
69 
71 
73  Bool_t bFillAOD, Bool_t useRefs, TString aodObjArrayName,
74  TObjArray * bgTrk, TObjArray * bgCls,
76  Int_t &n, Int_t & nfrac, Float_t &ptSum, Float_t &ptLead, Bool_t & isolated,
77  Double_t histoWeight = 1) ;
78 
79  void Print(const Option_t * opt) const ;
80 
81  Float_t Radius(Float_t etaCandidate, Float_t phiCandidate, Float_t eta, Float_t phi) const ;
82 
83  // Cone content calculation
84 
86  Bool_t bFillAOD , Bool_t useRefs,
87  TString refArrayName, TObjArray *bgTrk,
89  Int_t & nPart , Int_t & nfrac,
90  Float_t & coneptsum , Float_t & coneptLead,
91  Float_t & etaBandPtSum, Float_t & phiBandPtSum,
92  Double_t histoWeight = 1) ;
93 
95  Bool_t bFillAOD , Bool_t useRefs,
96  TString refArrayName, TObjArray *bgCls,
97  Int_t & nPart , Int_t & nfrac,
98  Float_t & coneptsum , Float_t & coneptLead,
99  Float_t & etaBandPtSum, Float_t & phiBandPtSum,
100  Float_t & perpBandPtSum,Double_t histoWeight = 1) ;
101 
102  // Cone background studies medthods
103 
105 
107 
109  Float_t & excessTrkEta, Float_t & excessAreaTrkEta,
110  Float_t & excessClsEta, Float_t & excessAreaClsEta,
111  Float_t & excessClsPhi, Float_t & excessAreaClsPhi) const ;
112 
114  Float_t excessEta, Float_t excessPhi,
115  Float_t excessAreaEta, Float_t excessAreaPhi,
116  Float_t etaUEptsumCluster, Float_t phiUEptsumCluster,
117  Float_t & etaUEptsumClusterNorm, Float_t & phiUEptsumClusterNorm) const ;
118 
120  Float_t excessEta,
121  Float_t excessAreaEta,
122  Float_t etaUEptsumTrack, Float_t phiUEptsumTrack ,
123  Float_t & etaUEptsumTrackNorm, Float_t & phiUEptsumTrackNorm) const ;
124 
126  AliCaloTrackReader * reader,
127  Float_t & coneBadCellsCoeff,
128  Float_t & etaBandBadCellsCoeff , Float_t & phiBandBadCellsCoeff) ;
129 
130 
131  // Parameter setters and getters
132 
133  Float_t GetConeSize() const { return fConeSize ; }
134  Float_t GetPtThreshold() const { return fPtThreshold ; }
138  Float_t GetPtFraction() const { return fPtFraction ; }
139  Int_t GetICMethod() const { return fICMethod ; }
141  Int_t GetDebug() const { return fDebug ; }
142  Bool_t GetFracIsThresh() const { return fFracIsThresh ; }
145 
146  void SetConeSize(Float_t r) { fConeSize = r ; }
147  void SetPtThreshold(Float_t pt) { fPtThreshold = pt ; }
151  void SetPtFraction(Float_t pt) { fPtFraction = pt ; }
152  void SetICMethod(Int_t i ) { fICMethod = i ; }
154  void SetDebug(Int_t d) { fDebug = d ; }
160 
163 
166 
167  private:
168 
171 
173 
175 
177 
179 
181 
183 
185 
187 
189 
191 
193 
195 
197 
199 
200  TLorentzVector fMomentum;
201 
202  TVector3 fTrackVector;
203 
209 
210  // Histograms
211 
213 
217 
224 
231 
237 
242 
243  // Perpendicular cones
244 
250 
251  // UE bands
252 
257 
262 
267 
272 
277 
280 
289 
291 
294 
297 
299  AliIsolationCut( const AliIsolationCut & g) ;
300 
303 
305  ClassDef(AliIsolationCut,12) ;
307 
308 } ;
309 
310 #endif //ALIISOLATIONCUT_H
311 
312 
313 
void SetPtThreshold(Float_t pt)
TH2F * fhConeSumPtEtaBandUETrackTrigEtaPhi
! Track Sum Pt in the eta band for tracks, per eta-phi bin of trigger, before normalization.
Int_t GetDebug() const
double Double_t
Definition: External.C:58
TH2F * fhPerpConeSumPtTrigEtaPhi
! Track Sum Pt in the perpendicular cones for tracks, per eta-phi bin of trigger. ...
Int_t GetICMethod() const
TH2F * fhConePtLeadClustervsTrack
! Tracks vs Clusters leading pt.
TH2F * fhConeSumPtTrigEtaPhi
! Cluster and tracks Sum Pt Sum Pt in the cone, per eta-phi bin of trigger.
Definition: External.C:236
Bool_t fFracIsThresh
Use threshold instead of fraction when pt leading is small.
TH2F * fhConeSumPt
! Cluster and tracks Sum Pt in the cone.
TLorentzVector fMomentum
! Momentum of cluster, temporal object.
Class with utils to perform Isolation Cuts.
TH2F * fhConeSumPtEtaBandUEClusterTrigEtaPhi
! Cluster Sum Pt in the eta band for clusters, per eta-phi bin of trigger,before normalization.
TH2F * fhConeSumPtVSUEClusterEtaBand
! Clusters, eta band: sum pT in cone vs bkg to subtract.
TH2F * fhEtaBandClusterEtaPhi
! Eta vs Phi in Eta band to estimate UE in cone, only clusters.
void SetConeSize(Float_t r)
void SetPtFraction(Float_t pt)
Float_t GetMinDistToTrigger() const
Isolated if pt particle in cone > fPtFraction*pt Candidate.
void CalculateUEBandTrackNormalization(Float_t etaC, Float_t excessEta, Float_t excessAreaEta, Float_t etaUEptsumTrack, Float_t phiUEptsumTrack, Float_t &etaUEptsumTrackNorm, Float_t &phiUEptsumTrackNorm) const
Get normalization of track background band.
TH2F * fhConeSumPtUEBandSubClustervsTrack
! Cluster vs tracks Sum Pt Sum Pt in the cone, after subtraction in eta or phi band.
TH2F * fhPtClusterInCone
! Cluster Pt in the cone.
Consider tracks and neutral calorimeter clusters in cone for isolation decission. ...
Float_t fTPCEtaSize
Eta size of TPC.
void SetDebug(Int_t d)
Float_t GetPtFraction() const
TH2F * fhEtaPhiInConeCluster
! Eta vs. phi of clusters in cone.
void SetSumPtThresholdMax(Float_t s)
Consider calorimeter clusters in cone for isolation decission.
TH2F * fhConePtLeadTrack
! Tracks leading pt in the cone.
void SetSumPtThreshold(Float_t s)
Int_t fICMethod
Isolation cut method to be used: kPtIC, kSumPtIC, kPtFracIC, kSumPtFracIC.
TH2F * fhConeSumPtUESub
! Cluster and tracks Sum Pt in the cone minus UE and excess corrected.
Float_t fPtThreshold
Minimum pt of the particles in the cone or sum in cone (UE pt mean in the forward region cone) ...
TH2F * fhPtInCone
! Histogram bins and ranges data-base
Float_t GetNeutralOverChargedRatio() const
TH2F * fhEtaBandTrackPt
! pT in Eta band to estimate UE in cone, only tracks.
TH2F * fhFractionClusterOutConePhiTrigEtaPhi
! Fraction of cone out of clusters acceptance in phi, vs trigger eta-phi.
void SwitchOnFillEtaPhiHistograms()
void SwitchOffFillEtaPhiHistograms()
TH2F * fhPtInPerpCone
! Particle Pt in cone at the perpendicular phi region to trigger axis (phi +90).
TH2F * fhConeSumPtUEBandNormCluster
! Cluster Sum Pt in the normalized eta or phi UE cone vs pT trigger.
TH2F * fhConeSumPtVSUETracksPhiBand
! Tracks, phi band: sum pT in cone vs bkg to subtract.
Float_t GetCellDensity(AliCaloTrackParticleCorrelation *pCandidate, AliCaloTrackReader *reader) const
Get good cell density (number of active cells over all cells in cone).
const TString calorimeter
Definition: anaM.C:36
Int_t fPartInCone
Type of particles inside cone: kNeutralAndCharged, kOnlyNeutral, kOnlyCharged.
TH2F * fhConeSumPtClusterSubVsNoSub
! Clusters, UE band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub ...
TH2F * fhConeSumPtTrack
! Tracks Sum Pt in the cone.
TString GetICParametersList()
TH2F * fhEtaBandTrackEtaPhi
! Eta vs Phi in Eta band to estimate UE in cone, only tracks.
Float_t fEMCPhiMax
Maximum Phi limit of Calo.
Float_t GetPtThreshold() const
TH2F * fhConeSumPtUESubTrack
! Tracks Sum Pt in the cone minus UE and excess corrected.
TH2F * fhConeSumPtUESubClusterTrackFrac
! Cluster / tracks Sum Pt Sum Pt in the cone minus UE and excess corrected.
Isolated if any particle pt in cone < fPtThreshold.
TH2F * fhConeSumPtUESubCluster
! Clusters Sum Pt in the cone minus UE and excess corrected.
Float_t fEMCPhiMin
Minimim Phi limit of Calo.
Bool_t fFillHistograms
Fill histograms if GetCreateOuputObjects() was called.
void SetICMethod(Int_t i)
TH2F * fhPhiBandTrackPt
! pT in Phi band to estimate UE in cone, only tracks.
Daughter of AliCaloTrackParticle that includes correlation part.
TVector3 fTrackVector
! Track moment, temporal object.
Consider tracks in cone for isolation decission.
TH2F * fhBandClustervsTrack
! Accumulated pT in eta or phi band to estimate UE in cone, clusters vs tracks.
Float_t fSumPtThresholdMax
Maximum of sum pt of the particles in the cone (UE sum in the forward region cone) ...
TH2F * fhConePtLead
! Cluster and tracks leading pt in the cone.
TH2F * fhFractionClusterOutConeEtaPhiTrigEtaPhi
! Fraction of cone out of clusters acceptance in eta x phi, vs trigger eta-phi.
virtual ~AliIsolationCut()
Virtual destructor.
Bool_t fMakeConeExcessCorr
int Int_t
Definition: External.C:63
TH2F * fhConeSumPtTrackSubVsNoSub
! Tracks, UE band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub
void GetDetectorAngleLimits(AliCaloTrackReader *reader, Int_t calorimeter)
TH2F * fhEtaPhiInPerpCone
! Eta vs. phi of tracks in perpendicular cone
AliIsolationCut & operator=(const AliIsolationCut &g)
Assignment operator not implemented.
Bool_t fFillEtaPhiHistograms
Fill histograms if GetCreateOuputObjects() was called with eta/phi or band related histograms...
float Float_t
Definition: External.C:68
TH2F * fhConeSumPtClustervsTrack
! Cluster vs tracks Sum Pt Sum Pt in the cone.
TH2F * fhConeSumPtVSPerpCone
! Perpendicular cones tracks: sum pT in cone vs bkg to subtract.=
Float_t fConeSize
Make cone excess from detector correction.
Int_t GetParticleTypeInCone() const
Float_t GetSumPtThreshold() const
TH2F * fhBandNormClustervsTrack
! Accumulated pT in eta or phi band to estimate UE in cone, normalized to cone size, clusters vs tracks.
TH2F * fhConeSumPtEtaBandUECluster
! Cluster Sum Pt in the eta band for clusters, before normalization.
TH2F * fhConeSumPtPhiBandUECluster
! Cluster Sum Pt in the phi band for clusters, before normalization.
TH2F * fhPhiBandClusterEtaPhi
! Eta vs Phi in Phi band to estimate UE in cone, only clusters.
Base class for event, clusters and tracks filtering and preparation for the analysis.
Bool_t GetFracIsThresh() const
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
TH2F * fhConeSumPtPhiBandUETrack
! Track Sum Pt in the phi band for tracks, before normalization.
Isolated if sum pt particle in cone < fPtFraction*pt Candidate.
TH2F * fhFractionClusterOutConeEta
! Fraction of cone out of clusters acceptance in eta.
TH2F * fhConePtLeadCluster
! Clusters leading pt in the cone.
void SetPtThresholdMax(Float_t pt)
void SetHistogramRanges(AliHistogramRanges *range)
AliHistogramRanges * fHistoRanges
TH2F * fhPhiBandTrackEtaPhi
! Eta vs Phi in Phi band to estimate UE in cone, only tracks.
Int_t fDebug
Debug level.
void SetFracIsThresh(Bool_t f)
TH2F * fhFractionClusterOutConeEtaPhi
! Fraction of cone out of clusters acceptance in eta x phi.
TList * GetCreateOutputObjects()
Class containing more common histogram axis types.
TH2F * fhConeSumPtEtaBandUETrack
! Track Sum Pt in the eta band for tracks, before normalization.
TH2F * fhPerpConeSumPt
! Sum Pt in cone at the perpendicular phi region to trigger axis (phi +90).
Float_t fDistMinToTrigger
Minimal distance between isolation candidate particle and particles in cone to count them for this is...
Float_t fPtThresholdMax
Maximum pt of the particles outside the cone (needed to fit shower distribution isolated/non-isolated...
TH2F * fhConeSumPtClusterTrackFrac
! Cluster / tracks Sum Pt Sum Pt in the cone.
Float_t GetPtThresholdMax() const
TH2F * fhConePtLeadClusterTrackFrac
! Trigger pt vs cluster/track leading pt.
Bool_t fIsTMClusterInConeRejected
Enable to remove the Track matching removal of clusters in cone sum pt calculation in case of kNeutra...
void SetTrackMatchedClusterRejectionInCone(Bool_t tm)
void CalculateUEBandClusterNormalization(Float_t etaC, Float_t phiC, Float_t excessEta, Float_t excessPhi, Float_t excessAreaEta, Float_t excessAreaPhi, Float_t etaUEptsumCluster, Float_t phiUEptsumCluster, Float_t &etaUEptsumClusterNorm, Float_t &phiUEptsumClusterNorm) const
Get normalization of cluster background band.
TH2F * fhEtaBandClusterPt
! pT in Eta band to estimate UE in cone, only clusters.
void MakeIsolationCut(AliCaloTrackParticleCorrelation *pCandidate, AliCaloTrackReader *reader, Bool_t bFillAOD, Bool_t useRefs, TString aodObjArrayName, TObjArray *bgTrk, TObjArray *bgCls, Int_t calorimeter, AliCaloPID *pid, Int_t &n, Int_t &nfrac, Float_t &ptSum, Float_t &ptLead, Bool_t &isolated, Double_t histoWeight=1)
Float_t fSumPtThreshold
Minimum of sum pt of the particles in the cone (UE sum in the forward region cone) ...
TH2F * fhConeSumPtUEBandNormTrack
! Track Sum Pt in the normalized eta or phi UE cone vs pT trigger.
void CalculateCaloSignalInCone(AliCaloTrackParticleCorrelation *aodParticle, AliCaloTrackReader *reader, Bool_t bFillAOD, Bool_t useRefs, TString refArrayName, TObjArray *bgTrk, Int_t calorimeter, AliCaloPID *pid, Int_t &nPart, Int_t &nfrac, Float_t &coneptsum, Float_t &coneptLead, Float_t &etaBandPtSum, Float_t &phiBandPtSum, Double_t histoWeight=1)
TH2F * fhEtaPhiTrack
! Eta vs. phi of all tracks.
TH2F * fhFractionClusterOutConePhi
! Fraction of cone out of clusters acceptance in phi.
TH2F * fhPtTrackInCone
! Track Pt in the cone.
Float_t fPtFraction
Fraction of the momentum of particles in cone or sum in cone.
void CalculateTrackSignalInCone(AliCaloTrackParticleCorrelation *aodParticle, AliCaloTrackReader *reader, Bool_t bFillAOD, Bool_t useRefs, TString refArrayName, TObjArray *bgCls, Int_t &nPart, Int_t &nfrac, Float_t &coneptsum, Float_t &coneptLead, Float_t &etaBandPtSum, Float_t &phiBandPtSum, Float_t &perpBandPtSum, Double_t histoWeight=1)
TH2F * fhConeSumPtVSUETracksEtaBand
! Tracks, eta band: sum pT in cone vs bkg to subtract.
TH2F * fhConeSumPtPhiBandUEClusterTrigEtaPhi
! Cluster Sum Pt in the phi band for clusters, per eta-phi bin of trigger, before normalization...
void GetCoeffNormBadCell(AliCaloTrackParticleCorrelation *pCandidate, AliCaloTrackReader *reader, Float_t &coneBadCellsCoeff, Float_t &etaBandBadCellsCoeff, Float_t &phiBandBadCellsCoeff)
Get good cell density (number of active cells over all cells in cone).
Same as kSumPtIC, but sum pt particle in cone subtracted from UE estimated in perpendicular cones...
TH2F * fhFractionClusterOutConeEtaTrigEtaPhi
! Fraction of cone out of clusters acceptance in eta, vs trigger eta-phi.
const char Option_t
Definition: External.C:48
Class for PID selection with calorimeters.
Definition: AliCaloPID.h:53
void CalculateExcessAreaFractionForChargedAndNeutral(Float_t etaC, Float_t phiC, Float_t &excessTrkEta, Float_t &excessAreaTrkEta, Float_t &excessClsEta, Float_t &excessAreaClsEta, Float_t &excessClsPhi, Float_t &excessAreaClsPhi) const
TH2F * fhConeSumPtUESubTrigEtaPhi
! Cluster and tracks Sum Pt Sum Pt in the cone, per eta-phi bin of trigger minus UE and excess correc...
bool Bool_t
Definition: External.C:53
TH2F * fhConeSumPtCluster
! Clusters Sum Pt in the cone.
Float_t fNeutralOverChargedRatio
Fix ratio of sum pT of neutrals over charged. For perpendicular cones UE subtraction.
AliIsolationCut()
Default constructor. Initialize parameters.
Float_t Radius(Float_t etaCandidate, Float_t phiCandidate, Float_t eta, Float_t phi) const
TH2F * fhEtaPhiCluster
! Eta vs. phi of all clusters.
Float_t GetSumPtThresholdMax() const
void SwitchOffConeExcessCorrectionHistograms()
void SwitchOnConeExcessCorrectionHistograms()
void SetNeutralOverChargedRatio(Float_t r)
Float_t CalculateExcessAreaFraction(Float_t excess) const
TH2F * fhFractionTrackOutConeEtaTrigEtaPhi
! Fraction of cone out of tracks acceptance in eta, vs trigger eta-phi.
TH2F * fhEtaPhiInConeTrack
! Eta vs. phi of tracks in cone.
void SetParticleTypeInCone(Int_t i)
TH2F * fhConeSumPtPhiBandUETrackTrigEtaPhi
! Track Sum Pt in the phi band for tracks, per eta-phi bin of trigger, before normalization.
Isolated if sum pt particle in cone < fSumPtThreshold.
Float_t fTPCPhiSize
Phi size of TPC, it is 360 degrees, but here set to half.
Isolated if sum pt particle in cone < fPtFraction* cell density, old not to be used.
TH2F * fhPhiBandClusterPt
! pT in Phi band to estimate UE in cone, only clusters.
TH2F * fhConeSumPtVSUEClusterPhiBand
! Clusters, phi band: sum pT in cone vs bkg to subtract.
Float_t GetConeSize() const
TH2F * fhFractionTrackOutConeEta
! Fraction of cone out of tracks acceptance in eta.
void SetMinDistToTrigger(Float_t md)
TH2F * fhConeSumPtUESubClustervsTrack
! Cluster vs tracks Sum Pt Sum Pt in the cone minus UE and excess corrected.
Float_t fEMCEtaSize
Eta size of Calo.