]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/PartCorrBase/AliFidutialCut.h
b2ec4fe924daccae95597a9041156a936d35cf47
[u/mrichter/AliRoot.git] / PWG4 / PartCorrBase / AliFidutialCut.h
1 #ifndef ALIFIDUTIALCUT_H
2 #define ALIFIDUTIALCUT_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 for track/cluster acceptance selection
9 // Selection in Central barrel, EMCAL and PHOS
10 //  
11 // Several selection regions possible for the different
12 // detectors
13 //
14 //*-- Author: Gustavo Conesa (INFN-LNF)
15
16 // --- ROOT system ---
17 #include <TObject.h> 
18 #include <TArrayF.h> 
19
20 class TString ;
21 class TLorentzVector ;
22
23 //--- AliRoot system ---
24
25
26 class AliFidutialCut : public TObject {
27
28 public: 
29
30   AliFidutialCut() ; // ctor
31   AliFidutialCut(const AliFidutialCut & g) ; // cpy ctor
32   AliFidutialCut & operator = (const AliFidutialCut & g) ;//cpy assignment
33   virtual ~AliFidutialCut() ;//virtual dtor
34
35   void InitParameters();
36   
37   void Print(const Option_t * opt)const;
38   Bool_t CheckFidutialRegion(const TLorentzVector lv, const TArrayF* minphi, const TArrayF* maxphi, const TArrayF* mineta, const TArrayF* maxeta) const ;
39   Bool_t IsInFidutialCut    (const TLorentzVector lv, const TString det) const ;
40   
41   void DoCTSFidutialCut(Bool_t b) {fCTSFidutialCut = b; }
42   void DoEMCALFidutialCut(Bool_t b) {fEMCALFidutialCut = b; }
43   void DoPHOSFidutialCut(Bool_t b) {fPHOSFidutialCut = b; }
44
45   Bool_t GetCTSFidutialCutStatus() const {return fCTSFidutialCut ; }
46   Bool_t GetEMCALFidutialCut() const {return fEMCALFidutialCut ; }
47   Bool_t GetPHOSFidutialCutStatus() const {return fPHOSFidutialCut ; }
48
49   void SetSimpleCTSFidutialCut(const Float_t abseta, const Float_t phimin, const Float_t phimax) ;
50   void SetSimpleEMCALFidutialCut(const Float_t abseta, const Float_t phimin, const Float_t phimax) ;
51   void SetSimplePHOSFidutialCut(const Float_t abseta, const Float_t phimin, const Float_t phimax) ;
52
53   void AddCTSFidCutMaxEtaArray(TArrayF & array)  
54   {  fCTSFidCutMaxEta  = new TArrayF(array) ; } 
55   TArrayF * GetCTSFidCutMaxEtaArray() const   {return   fCTSFidCutMaxEta;}
56   
57   void AddCTSFidCutMaxPhiArray(TArrayF & array)  
58   {  fCTSFidCutMaxPhi  = new TArrayF(array) ; }
59   TArrayF * GetCTSFidCutMaxPhiArray() const   {return   fCTSFidCutMaxPhi;}
60   
61   void AddCTSFidCutMinEtaArray(TArrayF & array)  
62   {  fCTSFidCutMinEta  = new TArrayF(array) ; } 
63   TArrayF * GetCTSFidCutMinEtaArray() const   {return   fCTSFidCutMinEta;}
64  
65   void AddCTSFidCutMinPhiArray(TArrayF & array)  
66   {  fCTSFidCutMinPhi  = new TArrayF(array) ; }
67   TArrayF * GetCTSFidCutMinPhiArray() const   {return   fCTSFidCutMinPhi;}
68   
69   void AddEMCALFidCutMaxEtaArray(TArrayF & array)  
70   {  fEMCALFidCutMaxEta  = new TArrayF(array) ; } 
71   TArrayF * GetEMCALFidCutMaxEtaArray() const   {return   fEMCALFidCutMaxEta;}
72   
73   void AddEMCALFidCutMaxPhiArray(TArrayF & array)  
74   {  fEMCALFidCutMaxPhi  = new TArrayF(array) ; }
75   TArrayF * GetEMCALFidCutMaxPhiArray() const   {return   fEMCALFidCutMaxPhi;}
76  
77   void AddEMCALFidCutMinEtaArray(TArrayF & array)  
78   {  fEMCALFidCutMinEta  = new TArrayF(array) ; } 
79   TArrayF * GetEMCALFidCutMinEtaArray() const   {return   fEMCALFidCutMinEta;}
80   
81   void AddEMCALFidCutMinPhiArray(TArrayF & array)  
82   {  fEMCALFidCutMinPhi  = new TArrayF(array) ; }
83   TArrayF * GetEMCALFidCutMinPhiArray() const   {return   fEMCALFidCutMinPhi;}
84   
85   void AddPHOSFidCutMaxEtaArray(TArrayF & array)  
86   {  fPHOSFidCutMaxEta  = new TArrayF(array) ; } 
87   TArrayF * GetPHOSFidCutMaxEtaArray() const   {return   fPHOSFidCutMaxEta;}
88   
89    void AddPHOSFidCutMaxPhiArray(TArrayF & array)  
90    {  fPHOSFidCutMaxPhi  = new TArrayF(array) ; }
91    TArrayF * GetPHOSFidCutMaxPhiArray() const   {return   fPHOSFidCutMaxPhi;}
92    
93    void AddPHOSFidCutMinEtaArray(TArrayF & array)  
94    {  fPHOSFidCutMinEta  = new TArrayF(array) ; } 
95    TArrayF * GetPHOSFidCutMinEtaArray() const   {return   fPHOSFidCutMinEta;}
96  
97    void AddPHOSFidCutMinPhiArray(TArrayF & array)  
98    {  fPHOSFidCutMinPhi  = new TArrayF(array) ; }
99    TArrayF * GetPHOSFidCutMinPhiArray() const   {return   fPHOSFidCutMinPhi;}
100    
101  
102    
103  protected:
104    
105    //Detector acceptance cuts
106    Bool_t     fEMCALFidutialCut ; // Apply fidutial cuts to EMCAL clusters
107    Bool_t     fPHOSFidutialCut ;// Apply fidutial cuts to PHOS clusters
108    Bool_t     fCTSFidutialCut ;//Apply fidutial cuts to  CTS tracks
109    
110    TArrayF * fCTSFidCutMinEta ; //Take particles in CTS with eta > fCTSFidCutMinEta
111    TArrayF * fCTSFidCutMinPhi ; //Take particles in CTS with phi > fCTSFidCutMinPhi
112    TArrayF * fCTSFidCutMaxEta ; //Take particles in CTS with eta < fCTSFidCutMaxEta
113    TArrayF * fCTSFidCutMaxPhi ; //Take particles in CTS with phi > fCTSFidCutMaxPhi
114    
115    TArrayF * fEMCALFidCutMinEta ; //Take particles in EMCAL with eta > fEMCALFidCutMinEta
116    TArrayF * fEMCALFidCutMinPhi ; //Take particles in EMCAL with phi > fEMCALFidCutMinPhi
117    TArrayF * fEMCALFidCutMaxEta ; //Take particles in EMCAL with eta < fEMCALFidCutMaxEta
118    TArrayF * fEMCALFidCutMaxPhi ; //Take particles in EMCAL with phi > fEMCALFidCutMaxPhi
119    
120    TArrayF * fPHOSFidCutMinEta ; //Take particles in PHOS with eta > fPHOSFidCutMinEta
121    TArrayF * fPHOSFidCutMinPhi ; //Take particles in PHOS with phi > fPHOSFidCutMinPhi
122    TArrayF * fPHOSFidCutMaxEta ; //Take particles in PHOS with eta < fPHOSFidCutMaxEta
123    TArrayF * fPHOSFidCutMaxPhi ; //Take particles in PHOS with phi > fPHOSFidCutMaxPhi
124   
125   ClassDef(AliFidutialCut,1)
126     } ;
127
128
129 #endif //ALIFIDUTIALCUT_H
130
131
132