]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/CaloTrackCorrBase/AliFiducialCut.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[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, EMCAL 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(TLorentzVector lv,
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   
37   void      DoCTSFiducialCut  (Bool_t b)     { fCTSFiducialCut   = b    ; }
38   void      DoEMCALFiducialCut(Bool_t b)     { fEMCALFiducialCut = b    ; }
39   void      DoPHOSFiducialCut (Bool_t b)     { fPHOSFiducialCut  = b    ; }
40   
41   Bool_t    GetCTSFiducialCutStatus()  const { return fCTSFiducialCut   ; }
42   Bool_t    GetEMCALFiducialCut()      const { return fEMCALFiducialCut ; }
43   Bool_t    GetPHOSFiducialCutStatus() const { return fPHOSFiducialCut  ; }
44   
45   void      SetSimpleCTSFiducialCut  (Float_t abseta, Float_t phimin, Float_t phimax) ;
46   void      SetSimpleEMCALFiducialCut(Float_t abseta, Float_t phimin, Float_t phimax) ;
47   void      SetSimplePHOSFiducialCut (Float_t abseta, Float_t phimin, Float_t phimax) ;
48   
49   void      Print(const Option_t * opt)const;
50   
51   void      AddCTSFidCutMaxEtaArray(Int_t size, Float_t* array)  
52                                               { fCTSFidCutMaxEta->Set(size,array)   ; } 
53   TArrayF * GetCTSFidCutMaxEtaArray() const   { return fCTSFidCutMaxEta             ; }
54   
55   void      AddCTSFidCutMaxPhiArray(Int_t size, Float_t* array)  
56                                               { fCTSFidCutMaxPhi->Set(size,array)   ; }
57   TArrayF * GetCTSFidCutMaxPhiArray() const   { return fCTSFidCutMaxPhi             ; }
58   
59   void      AddCTSFidCutMinEtaArray(Int_t size, Float_t* array)  
60                                               { fCTSFidCutMinEta->Set(size,array)   ; } 
61   TArrayF * GetCTSFidCutMinEtaArray() const   { return fCTSFidCutMinEta             ; }
62   
63   void      AddCTSFidCutMinPhiArray(Int_t size, Float_t* array)  
64                                               { fCTSFidCutMinPhi->Set(size,array)   ; }
65   TArrayF * GetCTSFidCutMinPhiArray() const   { return fCTSFidCutMinPhi             ; }
66   
67   void      AddEMCALFidCutMaxEtaArray(Int_t size, Float_t* array)  
68                                               { fEMCALFidCutMaxEta->Set(size,array) ; } 
69   TArrayF * GetEMCALFidCutMaxEtaArray() const { return fEMCALFidCutMaxEta           ; }
70   
71   void      AddEMCALFidCutMaxPhiArray(Int_t size, Float_t* array)  
72                                               { fEMCALFidCutMaxPhi->Set(size,array) ; }
73   TArrayF * GetEMCALFidCutMaxPhiArray() const { return fEMCALFidCutMaxPhi           ; }
74   
75   void      AddEMCALFidCutMinEtaArray(Int_t size, Float_t* array)  
76                                               { fEMCALFidCutMinEta->Set(size,array) ; } 
77   TArrayF * GetEMCALFidCutMinEtaArray() const { return fEMCALFidCutMinEta           ; }
78   
79   void      AddEMCALFidCutMinPhiArray(Int_t size, Float_t* array)  
80                                               { fEMCALFidCutMinPhi->Set(size,array) ; }
81   TArrayF * GetEMCALFidCutMinPhiArray() const { return fEMCALFidCutMinPhi           ; }
82   
83   void      AddPHOSFidCutMaxEtaArray(Int_t size, Float_t* array)  
84                                               { fPHOSFidCutMaxEta->Set(size,array)  ; } 
85   TArrayF * GetPHOSFidCutMaxEtaArray() const  { return fPHOSFidCutMaxEta            ; }
86   
87   void      AddPHOSFidCutMaxPhiArray(Int_t size, Float_t* array)  
88                                               { fPHOSFidCutMaxPhi->Set(size,array)  ; }
89   TArrayF * GetPHOSFidCutMaxPhiArray() const  { return fPHOSFidCutMaxPhi            ; }
90   
91   void      AddPHOSFidCutMinEtaArray(Int_t size, Float_t* array)  
92                                               { fPHOSFidCutMinEta->Set(size,array)  ; } 
93   TArrayF * GetPHOSFidCutMinEtaArray() const  { return fPHOSFidCutMinEta            ; }
94
95   void      AddPHOSFidCutMinPhiArray(Int_t size, Float_t* array)  
96                                               { fPHOSFidCutMinPhi->Set(size,array)  ; }
97   TArrayF * GetPHOSFidCutMinPhiArray() const  { return fPHOSFidCutMinPhi            ; }
98   
99 private:
100   
101   //Detector acceptance cuts
102   Bool_t    fEMCALFiducialCut ;  // Apply fiducial cuts to EMCAL clusters
103   Bool_t    fPHOSFiducialCut  ;  // Apply fiducial cuts to PHOS clusters
104   Bool_t    fCTSFiducialCut   ;  // Apply fiducial cuts to  CTS tracks
105   
106   TArrayF * fCTSFidCutMinEta ;   // Take particles in CTS with eta > fCTSFidCutMinEta
107   TArrayF * fCTSFidCutMinPhi ;   // Take particles in CTS with phi > fCTSFidCutMinPhi
108   TArrayF * fCTSFidCutMaxEta ;   // Take particles in CTS with eta < fCTSFidCutMaxEta
109   TArrayF * fCTSFidCutMaxPhi ;   // Take particles in CTS with phi > fCTSFidCutMaxPhi
110   
111   TArrayF * fEMCALFidCutMinEta ; // Take particles in EMCAL with eta > fEMCALFidCutMinEta
112   TArrayF * fEMCALFidCutMinPhi ; // Take particles in EMCAL with phi > fEMCALFidCutMinPhi
113   TArrayF * fEMCALFidCutMaxEta ; // Take particles in EMCAL with eta < fEMCALFidCutMaxEta
114   TArrayF * fEMCALFidCutMaxPhi ; // Take particles in EMCAL with phi > fEMCALFidCutMaxPhi
115   
116   TArrayF * fPHOSFidCutMinEta ;  // Take particles in PHOS with eta > fPHOSFidCutMinEta
117   TArrayF * fPHOSFidCutMinPhi ;  // Take particles in PHOS with phi > fPHOSFidCutMinPhi
118   TArrayF * fPHOSFidCutMaxEta ;  // Take particles in PHOS with eta < fPHOSFidCutMaxEta
119   TArrayF * fPHOSFidCutMaxPhi ;  // Take particles in PHOS with phi > fPHOSFidCutMaxPhi
120   
121   AliFiducialCut(              const AliFiducialCut & g) ; // cpy ctor
122   AliFiducialCut & operator = (const AliFiducialCut & g) ; // cpy assignment
123   
124   ClassDef(AliFiducialCut,1)
125   
126 } ;
127
128
129 #endif //ALIFIDUCIALCUT_H
130
131
132