]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/PartCorrBase/AliFiducialCut.h
AliCalorimeterUtils: Fix to be able to use PHOS bad map and geometry matrices
[u/mrichter/AliRoot.git] / PWG4 / PartCorrBase / 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 /* $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 AliFiducialCut : public TObject {
27   
28 public: 
29   AliFiducialCut() ; // ctor
30   virtual  ~AliFiducialCut() ;//virtual dtor
31   
32   void      InitParameters();
33     
34   Bool_t    CheckFiducialRegion(const TLorentzVector lv, 
35                                 const TArrayF* minphi, const TArrayF* maxphi, 
36                                 const TArrayF* mineta, const TArrayF* maxeta) const ;
37   
38   Bool_t    IsInFiducialCut    (const TLorentzVector lv, const TString det) const ;
39   
40   void      DoCTSFiducialCut  (Bool_t b) {fCTSFiducialCut   = b ; }
41   void      DoEMCALFiducialCut(Bool_t b) {fEMCALFiducialCut = b ; }
42   void      DoPHOSFiducialCut (Bool_t b) {fPHOSFiducialCut  = b ; }
43   
44   Bool_t    GetCTSFiducialCutStatus()  const {return fCTSFiducialCut   ; }
45   Bool_t    GetEMCALFiducialCut()      const {return fEMCALFiducialCut ; }
46   Bool_t    GetPHOSFiducialCutStatus() const {return fPHOSFiducialCut  ; }
47   
48   void      SetSimpleCTSFiducialCut  (const Float_t abseta, const Float_t phimin, const Float_t phimax) ;
49   void      SetSimpleEMCALFiducialCut(const Float_t abseta, const Float_t phimin, const Float_t phimax) ;
50   void      SetSimplePHOSFiducialCut (const Float_t abseta, const Float_t phimin, const Float_t phimax) ;
51   
52   void      Print(const Option_t * opt)const;
53
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 protected:
104   
105   //Detector acceptance cuts
106   Bool_t    fEMCALFiducialCut ;  // Apply fiducial cuts to EMCAL clusters
107   Bool_t    fPHOSFiducialCut ;   // Apply fiducial cuts to PHOS clusters
108   Bool_t    fCTSFiducialCut ;    // Apply fiducial 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   AliFiducialCut(const AliFiducialCut & g) ;              // cpy ctor
126   AliFiducialCut & operator = (const AliFiducialCut & g) ;// cpy assignment
127   
128   ClassDef(AliFiducialCut,1)
129   
130 } ;
131
132
133 #endif //ALIFIDUCIALCUT_H
134
135
136