]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/PartCorrBase/AliIsolationCut.h
65783f97f96724985127174d885654ca82c7633b
[u/mrichter/AliRoot.git] / PWG4 / PartCorrBase / 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
27 class AliIsolationCut : public TObject {
28   
29  public: 
30   AliIsolationCut() ; // default ctor
31   virtual ~AliIsolationCut() {;} //virtual dtalr
32  private:
33   AliIsolationCut(const AliIsolationCut & g) ; // cpy ctor
34   AliIsolationCut & operator = (const AliIsolationCut & g) ;//cpy assignment
35
36  public: 
37  
38   enum type {kPtThresIC, kSumPtIC, kPtFracIC, kSumPtFracIC};
39   enum partInCone {kNeutralAndCharged=0, kOnlyNeutral=1, kOnlyCharged=2};
40         
41   Float_t    GetConeSize()           const {return fConeSize   ;}
42   Float_t    GetPtThreshold()        const {return fPtThreshold;}
43   Float_t    GetSumPtThreshold()     const {return fSumPtThreshold;}
44   Float_t    GetPtFraction()         const {return fPtFraction ;}
45   Int_t      GetICMethod()           const {return fICMethod   ;}
46   Int_t      GetParticleTypeInCone() const {return fPartInCone ;}
47         
48   TString    GetICParametersList() ; 
49
50   void MakeIsolationCut(TObjArray * const plCTS, TObjArray * const plNe, AliCaloTrackReader * const reader, 
51                         const Bool_t bFillAOD, AliAODPWG4ParticleCorrelation  * pCandidate, const TString &aodObjArrayName,
52                         Int_t &n, Int_t & nfrac, Float_t &ptsum, Bool_t & isolated) const ;  
53   
54   void Print(const Option_t * opt)const;
55   
56   void SetConeSize(Float_t r)        {fConeSize = r ; }
57   void SetPtThreshold(Float_t pt)    {fPtThreshold = pt; }
58   void SetSumPtThreshold(Float_t sumpt)    {fSumPtThreshold = sumpt; }
59   void SetPtFraction(Float_t pt)     {fPtFraction = pt; }
60   void SetICMethod(Int_t i )         {fICMethod = i ; }
61   void SetParticleTypeInCone(Int_t i){fPartInCone = i;}
62         
63   void InitParameters();
64   
65   
66  private:
67   
68   Float_t      fConeSize ;    //Size of the isolation cone 
69   Float_t      fPtThreshold ; //Mimium pt of the particles in the cone or sum in cone (UE pt mean in the forward region cone)
70   Float_t      fSumPtThreshold ; //Minium of sum pt of the particles in the cone (UE sum in the forward region cone)
71   Float_t      fPtFraction ;  //Fraction of the momentum of particles in cone or sum in cone
72   Int_t        fICMethod ;    //Isolation cut method to be used
73                               // kPtIC: Pt threshold method
74                               // kSumPtIC: Cone pt sum method
75                               // kPtFracIC:   Pt threshold, fraction of candidate pt, method
76                               // kSumPtFracIC:   Cone pt sum , fraction of cone sum, method
77   Int_t        fPartInCone;   // Type of particles inside cone:
78                                                           // kNeutralAndCharged, kOnlyNeutral, kOnlyCharged
79                                  
80         
81         
82   ClassDef(AliIsolationCut,3)
83 } ;
84
85
86 #endif //ALIISOLATIONCUT_H
87
88
89