]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/CaloTrackCorrBase/AliIsolationCut.h
temporal commit to avoir breaking compilation
[u/mrichter/AliRoot.git] / PWG / CaloTrackCorrBase / AliIsolationCut.h
CommitLineData
1a31a9ab 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 */
1a31a9ab 5
6//_________________________________________________________________________
7// Class containing methods for the isolation cut.
8// An AOD candidate (AliAODPWG4ParticleCorrelation type)
9// is passed. Look in a cone around the candidate and study
10// the hadronic activity inside to decide if the candidate is isolated
11//
1a31a9ab 12// -- Author: Gustavo Conesa (INFN-LNF)
b960c7eb 13//
14// -- Yaxian Mao (add the possibility for different IC method with different pt range, 01/10/2010)
1a31a9ab 15
16// --- ROOT system ---
17#include <TObject.h>
18class TObjArray ;
19
20// --- ANALYSIS system ---
21class AliAODPWG4ParticleCorrelation ;
22class AliCaloTrackReader ;
ac5111f9 23class AliCaloPID;
b960c7eb 24
1a31a9ab 25class AliIsolationCut : public TObject {
26
27 public:
c5693f62 28
29 AliIsolationCut() ; // default ctor
30 virtual ~AliIsolationCut() {;} // virtual dtor
1a31a9ab 31
32 // Enums
33
70561f53 34 enum type { kPtThresIC, kSumPtIC, kPtFracIC, kSumPtFracIC, kSumDensityIC, kSumBkgSubIC } ;
1a31a9ab 35
36 enum partInCone { kNeutralAndCharged=0, kOnlyNeutral=1, kOnlyCharged=2 } ;
37
38 // Main Methods
39
40 void InitParameters() ;
41
42 TString GetICParametersList() ;
43
70561f53 44 Float_t GetCellDensity( AliAODPWG4ParticleCorrelation * pCandidate,
45 AliCaloTrackReader * reader) const ;
f8d07abf 46
70561f53 47 void MakeIsolationCut(TObjArray * plCTS, TObjArray * plNe,
48 AliCaloTrackReader * reader,
49 AliCaloPID * pid,
8a2dbbff 50 Bool_t bFillAOD,
51 AliAODPWG4ParticleCorrelation * pCandidate, TString aodObjArrayName,
3c12e375 52 Int_t &n, Int_t & nfrac, Float_t &ptSum, Float_t &ptLead, Bool_t & isolated) const ;
1a31a9ab 53
54 void Print(const Option_t * opt) const ;
55
8a2dbbff 56 Float_t Radius(Float_t etaCandidate, Float_t phiCandidate, Float_t eta, Float_t phi) const ;
1a31a9ab 57
70561f53 58 // Cone background studies medthods
59
783b09ca 60 Float_t CalculateExcessAreaFraction(Float_t excess) const ;
70561f53 61
783b09ca 62 void CalculateUEBandClusterNormalization(AliCaloTrackReader * reader, Float_t etaC, Float_t phiC,
63 Float_t phiUEptsumCluster, Float_t etaUEptsumCluster,
64 Float_t & phiUEptsumClusterNorm, Float_t & etaUEptsumClusterNorm,
65 Float_t & excessFracEta, Float_t & excessFracPhi ) const ;
66
67 void CalculateUEBandTrackNormalization (AliCaloTrackReader * reader, Float_t etaC, Float_t phiC,
68 Float_t phiUEptsumTrack, Float_t etaUEptsumTrack,
69 Float_t & phiUEptsumTrackNorm, Float_t & etaUEptsumTrackNorm,
70 Float_t & excessFracEta, Float_t & excessFracPhi ) const ;
70561f53 71
783b09ca 72 void GetCoeffNormBadCell(AliAODPWG4ParticleCorrelation * pCandidate,
73 AliCaloTrackReader * reader,
74 Float_t & coneBadCellsCoeff,
75 Float_t & etaBandBadCellsCoeff , Float_t & phiBandBadCellsCoeff) ;
70561f53 76
77
1a31a9ab 78 // Parameter setters and getters
79
80 Float_t GetConeSize() const { return fConeSize ; }
81 Float_t GetPtThreshold() const { return fPtThreshold ; }
783b09ca 82 Float_t GetPtThresholdMax() const { return fPtThresholdMax ; }
1a31a9ab 83 Float_t GetSumPtThreshold() const { return fSumPtThreshold ; }
783b09ca 84 Float_t GetSumPtThresholdMax() const { return fSumPtThresholdMax ; }
1a31a9ab 85 Float_t GetPtFraction() const { return fPtFraction ; }
86 Int_t GetICMethod() const { return fICMethod ; }
87 Int_t GetParticleTypeInCone() const { return fPartInCone ; }
22c7f802 88 Bool_t GetFracIsThresh() const { return fFracIsThresh ; }
1a31a9ab 89
90 void SetConeSize(Float_t r) { fConeSize = r ; }
91 void SetPtThreshold(Float_t pt) { fPtThreshold = pt ; }
783b09ca 92 void SetPtThresholdMax(Float_t pt) { fPtThresholdMax = pt ; }
1a31a9ab 93 void SetSumPtThreshold(Float_t s) { fSumPtThreshold = s ; }
783b09ca 94 void SetSumPtThresholdMax(Float_t s){ fSumPtThresholdMax = s ; }
1a31a9ab 95 void SetPtFraction(Float_t pt) { fPtFraction = pt ; }
96 void SetICMethod(Int_t i ) { fICMethod = i ; }
97 void SetParticleTypeInCone(Int_t i) { fPartInCone = i ; }
03bae431 98 void SetDebug(Int_t d) { fDebug = d ; }
22c7f802 99 void SetFracIsThresh(Bool_t f ) { fFracIsThresh = f ; }
1a31a9ab 100 private:
101
783b09ca 102 Float_t fConeSize ; // Size of the isolation cone
103 Float_t fPtThreshold ; // Mimium pt of the particles in the cone or sum in cone (UE pt mean in the forward region cone)
104 Float_t fPtThresholdMax ; // Maximum pt of the particles outside the cone (needed to fit shower distribution isolated/non-isolated particles)
105 Float_t fSumPtThreshold ; // Minimum of sum pt of the particles in the cone (UE sum in the forward region cone)
106 Float_t fSumPtThresholdMax ;// Maximum of sum pt of the particles in the cone (UE sum in the forward region cone)
107 Float_t fPtFraction ; // Fraction of the momentum of particles in cone or sum in cone
108 Int_t fICMethod ; // Isolation cut method to be used
109 // kPtIC: Pt threshold method
110 // kSumPtIC: Cone pt sum method
111 // kPtFracIC: Pt threshold, fraction of candidate pt, method
112 // kSumPtFracIC: Cone pt sum , fraction of cone sum, method
113 Int_t fPartInCone; // Type of particles inside cone:
114 // kNeutralAndCharged, kOnlyNeutral, kOnlyCharged
c5693f62 115
783b09ca 116 Int_t fDebug; // Debug level
117 Bool_t fFracIsThresh; // Use threshold instead of fraction when pt leading is small
03bae431 118
b960c7eb 119 AliIsolationCut( const AliIsolationCut & g) ; // cpy ctor
c5693f62 120 AliIsolationCut & operator = (const AliIsolationCut & g) ; // cpy assignment
121
783b09ca 122 ClassDef(AliIsolationCut,7)
1a31a9ab 123} ;
124
125
126#endif //ALIISOLATIONCUT_H
127
128
129