]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/CaloTrackCorrBase/AliFiducialCut.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / CaloTrackCorrBase / AliFiducialCut.h
1 #ifndef ALIFIDUCIALCUT_H
2 #define ALIFIDUCIALCUT_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 for track/cluster acceptance selection
8 // Selection in Central barrel, DCAL and PHOS
9 //  
10 // Several selection regions possible for the different
11 // detectors
12 //
13 //*-- Author: Gustavo Conesa (INFN-LNF)
14
15 // --- ROOT system ---
16 #include <TObject.h> 
17 #include <TArrayF.h> 
18
19 class TString ;
20 //class TLorentzVector ;
21
22
23 class AliFiducialCut : public TObject {
24   
25 public: 
26   AliFiducialCut() ; // ctor
27   virtual  ~AliFiducialCut() ;//virtual dtor
28   
29   void      InitParameters();
30
31   Bool_t    CheckFiducialRegion(Float_t eta, Float_t phi,
32                                 const TArrayF* minphi, const TArrayF* maxphi,
33                                 const TArrayF* mineta, const TArrayF* maxeta) const ;
34
35   //Bool_t    IsInFiducialCut    (TLorentzVector lv, TString det) const ;
36   Bool_t    IsInFiducialCut    (Float_t eta, Float_t phi, Int_t det) const ;
37   
38   void      DoCTSFiducialCut  (Bool_t b)     { fCTSFiducialCut   = b    ; }
39   void      DoEMCALFiducialCut(Bool_t b)     { fEMCALFiducialCut = b    ; }
40   void      DoPHOSFiducialCut (Bool_t b)     { fPHOSFiducialCut  = b    ; }
41   void      DoDCALFiducialCut (Bool_t b)     { fDCALFiducialCut  = b    ; }
42   
43   Bool_t    GetCTSFiducialCutStatus()  const { return fCTSFiducialCut   ; }
44   Bool_t    GetEMCALFiducialCut()      const { return fEMCALFiducialCut ; }
45   Bool_t    GetPHOSFiducialCutStatus() const { return fPHOSFiducialCut  ; }
46   Bool_t    GetDCALFiducialCut()       const { return fDCALFiducialCut  ; }
47
48   void      SetSimpleCTSFiducialCut  (Float_t abseta, Float_t phimin, Float_t phimax) ;
49   void      SetSimpleEMCALFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax) ;
50   void      SetSimplePHOSFiducialCut (Float_t abseta, Float_t phimin, Float_t phimax) ;
51   void      SetSimpleDCALFiducialCut (Float_t abseta, Float_t phimin, Float_t phimax) ;
52   
53   void      Print(const Option_t * opt)const;
54   
55   void      AddCTSFidCutMaxEtaArray(Int_t size, Float_t* array)  
56                                               { fCTSFidCutMaxEta->Set(size,array)   ; } 
57   TArrayF * GetCTSFidCutMaxEtaArray() const   { return fCTSFidCutMaxEta             ; }
58   
59   void      AddCTSFidCutMaxPhiArray(Int_t size, Float_t* array)  
60                                               { fCTSFidCutMaxPhi->Set(size,array)   ; }
61   TArrayF * GetCTSFidCutMaxPhiArray() const   { return fCTSFidCutMaxPhi             ; }
62   
63   void      AddCTSFidCutMinEtaArray(Int_t size, Float_t* array)  
64                                               { fCTSFidCutMinEta->Set(size,array)   ; } 
65   TArrayF * GetCTSFidCutMinEtaArray() const   { return fCTSFidCutMinEta             ; }
66   
67   void      AddCTSFidCutMinPhiArray(Int_t size, Float_t* array)  
68                                               { fCTSFidCutMinPhi->Set(size,array)   ; }
69   TArrayF * GetCTSFidCutMinPhiArray() const   { return fCTSFidCutMinPhi             ; }
70   
71   void      AddEMCALFidCutMaxEtaArray(Int_t size, Float_t* array)  
72                                               { fEMCALFidCutMaxEta->Set(size,array) ; } 
73   TArrayF * GetEMCALFidCutMaxEtaArray() const { return fEMCALFidCutMaxEta           ; }
74   
75   void      AddEMCALFidCutMaxPhiArray(Int_t size, Float_t* array)  
76                                               { fEMCALFidCutMaxPhi->Set(size,array) ; }
77   TArrayF * GetEMCALFidCutMaxPhiArray() const { return fEMCALFidCutMaxPhi           ; }
78   
79   void      AddEMCALFidCutMinEtaArray(Int_t size, Float_t* array)  
80                                               { fEMCALFidCutMinEta->Set(size,array) ; } 
81   TArrayF * GetEMCALFidCutMinEtaArray() const { return fEMCALFidCutMinEta           ; }
82   
83   void      AddEMCALFidCutMinPhiArray(Int_t size, Float_t* array)  
84                                               { fEMCALFidCutMinPhi->Set(size,array) ; }
85   TArrayF * GetEMCALFidCutMinPhiArray() const { return fEMCALFidCutMinPhi           ; }
86   
87   void      AddPHOSFidCutMaxEtaArray(Int_t size, Float_t* array)  
88                                               { fPHOSFidCutMaxEta->Set(size,array)  ; } 
89   TArrayF * GetPHOSFidCutMaxEtaArray() const  { return fPHOSFidCutMaxEta            ; }
90   
91   void      AddPHOSFidCutMaxPhiArray(Int_t size, Float_t* array)  
92                                               { fPHOSFidCutMaxPhi->Set(size,array)  ; }
93   TArrayF * GetPHOSFidCutMaxPhiArray() const  { return fPHOSFidCutMaxPhi            ; }
94   
95   void      AddPHOSFidCutMinEtaArray(Int_t size, Float_t* array)  
96                                               { fPHOSFidCutMinEta->Set(size,array)  ; } 
97   TArrayF * GetPHOSFidCutMinEtaArray() const  { return fPHOSFidCutMinEta            ; }
98
99   void      AddPHOSFidCutMinPhiArray(Int_t size, Float_t* array)  
100                                               { fPHOSFidCutMinPhi->Set(size,array)  ; }
101   TArrayF * GetPHOSFidCutMinPhiArray() const  { return fPHOSFidCutMinPhi            ; }
102   
103   void      AddDCALFidCutMaxEtaArray(Int_t size, Float_t* array)
104   { fDCALFidCutMaxEta->Set(size,array) ; }
105   TArrayF * GetDCALFidCutMaxEtaArray() const { return fDCALFidCutMaxEta           ; }
106   
107   void      AddDCALFidCutMaxPhiArray(Int_t size, Float_t* array)
108   { fDCALFidCutMaxPhi->Set(size,array) ; }
109   TArrayF * GetDCALFidCutMaxPhiArray() const { return fDCALFidCutMaxPhi           ; }
110   
111   void      AddDCALFidCutMinEtaArray(Int_t size, Float_t* array)
112   { fDCALFidCutMinEta->Set(size,array) ; }
113   TArrayF * GetDCALFidCutMinEtaArray() const { return fDCALFidCutMinEta           ; }
114   
115   void      AddDCALFidCutMinPhiArray(Int_t size, Float_t* array)
116   { fDCALFidCutMinPhi->Set(size,array) ; }
117   TArrayF * GetDCALFidCutMinPhiArray() const { return fDCALFidCutMinPhi           ; }
118
119   enum detector {kEMCAL = 0, kPHOS = 1, kCTS = 2, kDCAL = 3, kDCALPHOS = 4 };
120   
121 private:
122   
123   //Detector acceptance cuts
124   Bool_t    fEMCALFiducialCut ;  // Apply fiducial cuts to EMCAL clusters
125   Bool_t    fDCALFiducialCut  ;  // Apply fiducial cuts to DCAL clusters
126   Bool_t    fPHOSFiducialCut  ;  // Apply fiducial cuts to PHOS clusters
127   Bool_t    fCTSFiducialCut   ;  // Apply fiducial cuts to  CTS tracks
128   
129   TArrayF * fCTSFidCutMinEta ;   // Take particles in CTS with eta > fCTSFidCutMinEta
130   TArrayF * fCTSFidCutMinPhi ;   // Take particles in CTS with phi > fCTSFidCutMinPhi
131   TArrayF * fCTSFidCutMaxEta ;   // Take particles in CTS with eta < fCTSFidCutMaxEta
132   TArrayF * fCTSFidCutMaxPhi ;   // Take particles in CTS with phi > fCTSFidCutMaxPhi
133   
134   TArrayF * fEMCALFidCutMinEta ; // Take particles in EMCAL with eta > fEMCALFidCutMinEta
135   TArrayF * fEMCALFidCutMinPhi ; // Take particles in EMCAL with phi > fEMCALFidCutMinPhi
136   TArrayF * fEMCALFidCutMaxEta ; // Take particles in EMCAL with eta < fEMCALFidCutMaxEta
137   TArrayF * fEMCALFidCutMaxPhi ; // Take particles in EMCAL with phi > fEMCALFidCutMaxPhi
138   
139   TArrayF * fPHOSFidCutMinEta ;  // Take particles in PHOS with eta > fPHOSFidCutMinEta
140   TArrayF * fPHOSFidCutMinPhi ;  // Take particles in PHOS with phi > fPHOSFidCutMinPhi
141   TArrayF * fPHOSFidCutMaxEta ;  // Take particles in PHOS with eta < fPHOSFidCutMaxEta
142   TArrayF * fPHOSFidCutMaxPhi ;  // Take particles in PHOS with phi > fPHOSFidCutMaxPhi
143   
144   TArrayF * fDCALFidCutMinEta ; // Take particles in DCAL with eta > fDCALFidCutMinEta
145   TArrayF * fDCALFidCutMinPhi ; // Take particles in DCAL with phi > fDCALFidCutMinPhi
146   TArrayF * fDCALFidCutMaxEta ; // Take particles in DCAL with eta < fDCALFidCutMaxEta
147   TArrayF * fDCALFidCutMaxPhi ; // Take particles in DCAL with phi > fDCALFidCutMaxPhi
148   
149   AliFiducialCut(              const AliFiducialCut & g) ; // cpy ctor
150   AliFiducialCut & operator = (const AliFiducialCut & g) ; // cpy assignment
151   
152   ClassDef(AliFiducialCut,2)
153   
154 } ;
155
156
157 #endif //ALIFIDUCIALCUT_H
158
159
160