making the container name parameterized
[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
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 //
12 // -- Author: Gustavo Conesa (INFN-LNF)
13 //
14 // -- Yaxian Mao (add the possibility for different IC method with different pt range, 01/10/2010)
15
16 // --- ROOT system --- 
17 #include <TObject.h>
18 class TObjArray ;
19
20 // --- ANALYSIS system ---
21 class AliAODPWG4ParticleCorrelation ;
22 class AliCaloTrackReader ;
23 class AliCaloPID; 
24
25 class AliIsolationCut : public TObject {
26   
27  public: 
28   
29   AliIsolationCut() ;            // default ctor
30   virtual ~AliIsolationCut() {;} // virtual dtor
31  
32   // Enums 
33   
34   enum type       { kPtThresIC, kSumPtIC, kPtFracIC, kSumPtFracIC, kSumDensityIC } ;
35   
36   enum partInCone { kNeutralAndCharged=0, kOnlyNeutral=1, kOnlyCharged=2 } ;
37         
38   // Main Methods
39   
40   void       InitParameters() ;
41   
42   TString    GetICParametersList() ; 
43   
44   Float_t    GetCellDensity(  const AliAODPWG4ParticleCorrelation * pCandidate, 
45                               const AliCaloTrackReader * reader) const ;
46
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 ;  
52   
53   void       Print(const Option_t * opt) const ;
54   
55   Float_t    Radius(const Float_t etaCandidate, const Float_t phiCandidate, const Float_t eta, const Float_t phi) const ; 
56   
57   // Parameter setters and getters
58   
59   Float_t    GetConeSize()            const { return fConeSize       ; }
60   Float_t    GetPtThreshold()         const { return fPtThreshold    ; }
61   Float_t    GetPtThresholdMax()      const { return fPtThresholdMax    ; }
62   Float_t    GetSumPtThreshold()      const { return fSumPtThreshold ; }
63   Float_t    GetPtFraction()          const { return fPtFraction     ; }
64   Int_t      GetICMethod()            const { return fICMethod       ; }
65   Int_t      GetParticleTypeInCone()  const { return fPartInCone     ; }
66   Bool_t     GetFracIsThresh()        const { return fFracIsThresh   ; }
67         
68   void       SetConeSize(Float_t r)         { fConeSize       = r    ; }
69   void       SetPtThreshold(Float_t pt)     { fPtThreshold    = pt   ; }
70   void       SetPtThresholdMax(Float_t pt)  { fPtThresholdMax    = pt   ; }
71   void       SetSumPtThreshold(Float_t s)   { fSumPtThreshold = s    ; }
72   void       SetPtFraction(Float_t pt)      { fPtFraction     = pt   ; }
73   void       SetICMethod(Int_t i )          { fICMethod       = i    ; }
74   void       SetParticleTypeInCone(Int_t i) { fPartInCone     = i    ; }
75   void       SetDebug(Int_t d)              { fDebug          = d    ; }
76   void       SetFracIsThresh(Bool_t f )     { fFracIsThresh   = f    ; }
77  private:
78   
79   Float_t    fConeSize ;       // Size of the isolation cone 
80   Float_t    fPtThreshold ;    // Mimium pt of the particles in the cone or sum in cone (UE pt mean in the forward region cone)
81   Float_t    fPtThresholdMax ; // Maximum pt of the particles outside the cone (needed to fit shower distribution isolated/non-isolated particles)
82   Float_t    fSumPtThreshold ; // Minium of sum pt of the particles in the cone (UE sum in the forward region cone)
83   Float_t    fPtFraction ;     // Fraction of the momentum of particles in cone or sum in cone
84   Int_t      fICMethod ;       // Isolation cut method to be used
85                                // kPtIC: Pt threshold method
86                                // kSumPtIC: Cone pt sum method
87                                // kPtFracIC:   Pt threshold, fraction of candidate pt, method
88                                // kSumPtFracIC:   Cone pt sum , fraction of cone sum, method
89   Int_t      fPartInCone;      // Type of particles inside cone:
90                                // kNeutralAndCharged, kOnlyNeutral, kOnlyCharged
91
92   Int_t      fDebug;           // Debug level
93   Bool_t     fFracIsThresh;    // Use threshold instead of fraction when pt leading is small
94   
95   AliIsolationCut(              const AliIsolationCut & g) ; // cpy ctor
96   AliIsolationCut & operator = (const AliIsolationCut & g) ; // cpy assignment
97   
98   ClassDef(AliIsolationCut,6)
99 } ;
100
101
102 #endif //ALIISOLATIONCUT_H
103
104
105