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 */
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
12 // -- Author: Gustavo Conesa (INFN-LNF)
14 // -- Yaxian Mao (add the possibility for different IC method with different pt range, 01/10/2010)
16 // --- ROOT system ---
20 // --- ANALYSIS system ---
21 class AliAODPWG4ParticleCorrelation ;
22 class AliCaloTrackReader ;
25 class AliIsolationCut : public TObject {
29 AliIsolationCut() ; // default ctor
30 virtual ~AliIsolationCut() {;} // virtual dtor
34 enum type { kPtThresIC, kSumPtIC, kPtFracIC, kSumPtFracIC, kSumDensityIC } ;
36 enum partInCone { kNeutralAndCharged=0, kOnlyNeutral=1, kOnlyCharged=2 } ;
40 void InitParameters() ;
42 TString GetICParametersList() ;
44 Float_t GetCellDensity( const AliAODPWG4ParticleCorrelation * pCandidate,
45 const AliCaloTrackReader * reader) const ;
47 void MakeIsolationCut(const TObjArray * plCTS, const TObjArray * plNe,
48 const AliCaloTrackReader * reader,
49 const AliCaloPID * pid,
50 const Bool_t bFillAOD, AliAODPWG4ParticleCorrelation * pCandidate, const TString &aodObjArrayName,
51 Int_t &n, Int_t & nfrac, Float_t &ptsum, Bool_t & isolated) const ;
53 void Print(const Option_t * opt) const ;
55 Float_t Radius(const Float_t etaCandidate, const Float_t phiCandidate, const Float_t eta, const Float_t phi) const ;
57 // Parameter setters and getters
59 Float_t GetConeSize() const { return fConeSize ; }
60 Float_t GetPtThreshold() const { return fPtThreshold ; }
61 Float_t GetSumPtThreshold() const { return fSumPtThreshold ; }
62 Float_t GetPtFraction() const { return fPtFraction ; }
63 Int_t GetICMethod() const { return fICMethod ; }
64 Int_t GetParticleTypeInCone() const { return fPartInCone ; }
65 Bool_t GetFracIsThresh() const { return fFracIsThresh ; }
67 void SetConeSize(Float_t r) { fConeSize = r ; }
68 void SetPtThreshold(Float_t pt) { fPtThreshold = pt ; }
69 void SetSumPtThreshold(Float_t s) { fSumPtThreshold = s ; }
70 void SetPtFraction(Float_t pt) { fPtFraction = pt ; }
71 void SetICMethod(Int_t i ) { fICMethod = i ; }
72 void SetParticleTypeInCone(Int_t i) { fPartInCone = i ; }
73 void SetDebug(Int_t d) { fDebug = d ; }
74 void SetFracIsThresh(Bool_t f ) { fFracIsThresh = f ; }
77 Float_t fConeSize ; // Size of the isolation cone
78 Float_t fPtThreshold ; // Mimium pt of the particles in the cone or sum in cone (UE pt mean in the forward region cone)
79 Float_t fSumPtThreshold ; // Minium of sum pt of the particles in the cone (UE sum in the forward region cone)
80 Float_t fPtFraction ; // Fraction of the momentum of particles in cone or sum in cone
81 Int_t fICMethod ; // Isolation cut method to be used
82 // kPtIC: Pt threshold method
83 // kSumPtIC: Cone pt sum method
84 // kPtFracIC: Pt threshold, fraction of candidate pt, method
85 // kSumPtFracIC: Cone pt sum , fraction of cone sum, method
86 Int_t fPartInCone; // Type of particles inside cone:
87 // kNeutralAndCharged, kOnlyNeutral, kOnlyCharged
89 Int_t fDebug; // Debug level
90 Bool_t fFracIsThresh; // Use threshold instead of fraction when pt leading is small
92 AliIsolationCut( const AliIsolationCut & g) ; // cpy ctor
93 AliIsolationCut & operator = (const AliIsolationCut & g) ; // cpy assignment
95 ClassDef(AliIsolationCut,6)
99 #endif //ALIISOLATIONCUT_H