]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/CaloTrackCorrBase/AliIsolationCut.h
Transition PWG4 --> PWGGA
[u/mrichter/AliRoot.git] / PWG / CaloTrackCorrBase / AliIsolationCut.h
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 /* $Id:  */
6
7 //_________________________________________________________________________
8 // Class containing methods for the isolation cut. 
9 // An AOD candidate (AliAODPWG4ParticleCorrelation type)
10 // is passed. Look in a cone around the candidate and study
11 // the hadronic activity inside to decide if the candidate is isolated
12 //
13 //
14 // 
15 // -- Author: Gustavo Conesa (INFN-LNF)
16
17 //-Yaxian Mao (add the possibility for different IC method with different pt range, 01/10/2010)
18
19 // --- ROOT system --- 
20 #include <TObject.h>
21 class TObjArray ;
22
23 // --- ANALYSIS system ---
24 class AliAODPWG4ParticleCorrelation ;
25 class AliCaloTrackReader ;
26 class AliCaloPID; 
27 class AliIsolationCut : public TObject {
28   
29  public: 
30   
31   AliIsolationCut() ;            // default ctor
32   virtual ~AliIsolationCut() {;} // virtual dtor
33  
34   // Enums 
35   
36   enum type       { kPtThresIC, kSumPtIC, kPtFracIC, kSumPtFracIC } ;
37   
38   enum partInCone { kNeutralAndCharged=0, kOnlyNeutral=1, kOnlyCharged=2 } ;
39         
40   // Main Methods
41   
42   void       InitParameters() ;
43   
44   TString    GetICParametersList() ; 
45   
46   void       MakeIsolationCut(const TObjArray * plCTS, const TObjArray * plNe, 
47                               const AliCaloTrackReader * reader, 
48                               const AliCaloPID * pid, 
49                               const Bool_t bFillAOD, AliAODPWG4ParticleCorrelation  * pCandidate, const TString &aodObjArrayName,
50                               Int_t &n, Int_t & nfrac, Float_t &ptsum, Bool_t & isolated) const ;  
51   
52   void       Print(const Option_t * opt) const ;
53   
54   Float_t    Radius(const Float_t etaCandidate, const Float_t phiCandidate, const Float_t eta, const Float_t phi) const ; 
55   
56   // Parameter setters and getters
57   
58   Float_t    GetConeSize()            const { return fConeSize       ; }
59   Float_t    GetPtThreshold()         const { return fPtThreshold    ; }
60   Float_t    GetSumPtThreshold()      const { return fSumPtThreshold ; }
61   Float_t    GetPtFraction()          const { return fPtFraction     ; }
62   Int_t      GetICMethod()            const { return fICMethod       ; }
63   Int_t      GetParticleTypeInCone()  const { return fPartInCone     ; }
64         
65   void       SetConeSize(Float_t r)         { fConeSize       = r    ; }
66   void       SetPtThreshold(Float_t pt)     { fPtThreshold    = pt   ; }
67   void       SetSumPtThreshold(Float_t s)   { fSumPtThreshold = s    ; }
68   void       SetPtFraction(Float_t pt)      { fPtFraction     = pt   ; }
69   void       SetICMethod(Int_t i )          { fICMethod       = i    ; }
70   void       SetParticleTypeInCone(Int_t i) { fPartInCone     = i    ; }
71   
72  private:
73   
74   Float_t    fConeSize ;       // Size of the isolation cone 
75   Float_t    fPtThreshold ;    // Mimium pt of the particles in the cone or sum in cone (UE pt mean in the forward region cone)
76   Float_t    fSumPtThreshold ; // Minium of sum pt of the particles in the cone (UE sum in the forward region cone)
77   Float_t    fPtFraction ;     // Fraction of the momentum of particles in cone or sum in cone
78   Int_t      fICMethod ;       // Isolation cut method to be used
79                                // kPtIC: Pt threshold method
80                                // kSumPtIC: Cone pt sum method
81                                // kPtFracIC:   Pt threshold, fraction of candidate pt, method
82                                // kSumPtFracIC:   Cone pt sum , fraction of cone sum, method
83   Int_t      fPartInCone;      // Type of particles inside cone:
84                                // kNeutralAndCharged, kOnlyNeutral, kOnlyCharged
85
86   AliIsolationCut(const AliIsolationCut & g) ;               // cpy ctor
87   AliIsolationCut & operator = (const AliIsolationCut & g) ; // cpy assignment
88   
89   ClassDef(AliIsolationCut,4)
90 } ;
91
92
93 #endif //ALIISOLATIONCUT_H
94
95
96