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 */
6 //_________________________________________________________________________
7 // Class for track/cluster acceptance selection
8 // Selection in Central barrel, DCAL and PHOS
10 // Several selection regions possible for the different
13 //*-- Author: Gustavo Conesa (INFN-LNF)
15 // --- ROOT system ---
20 //class TLorentzVector ;
23 class AliFiducialCut : public TObject {
26 AliFiducialCut() ; // ctor
27 virtual ~AliFiducialCut() ;//virtual dtor
29 void InitParameters();
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 ;
35 //Bool_t IsInFiducialCut (TLorentzVector lv, TString det) const ;
36 Bool_t IsInFiducialCut (Float_t eta, Float_t phi, Int_t det) const ;
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 ; }
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 ; }
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) ;
53 void Print(const Option_t * opt)const;
55 void AddCTSFidCutMaxEtaArray(Int_t size, Float_t* array)
56 { fCTSFidCutMaxEta->Set(size,array) ; }
57 TArrayF * GetCTSFidCutMaxEtaArray() const { return fCTSFidCutMaxEta ; }
59 void AddCTSFidCutMaxPhiArray(Int_t size, Float_t* array)
60 { fCTSFidCutMaxPhi->Set(size,array) ; }
61 TArrayF * GetCTSFidCutMaxPhiArray() const { return fCTSFidCutMaxPhi ; }
63 void AddCTSFidCutMinEtaArray(Int_t size, Float_t* array)
64 { fCTSFidCutMinEta->Set(size,array) ; }
65 TArrayF * GetCTSFidCutMinEtaArray() const { return fCTSFidCutMinEta ; }
67 void AddCTSFidCutMinPhiArray(Int_t size, Float_t* array)
68 { fCTSFidCutMinPhi->Set(size,array) ; }
69 TArrayF * GetCTSFidCutMinPhiArray() const { return fCTSFidCutMinPhi ; }
71 void AddEMCALFidCutMaxEtaArray(Int_t size, Float_t* array)
72 { fEMCALFidCutMaxEta->Set(size,array) ; }
73 TArrayF * GetEMCALFidCutMaxEtaArray() const { return fEMCALFidCutMaxEta ; }
75 void AddEMCALFidCutMaxPhiArray(Int_t size, Float_t* array)
76 { fEMCALFidCutMaxPhi->Set(size,array) ; }
77 TArrayF * GetEMCALFidCutMaxPhiArray() const { return fEMCALFidCutMaxPhi ; }
79 void AddEMCALFidCutMinEtaArray(Int_t size, Float_t* array)
80 { fEMCALFidCutMinEta->Set(size,array) ; }
81 TArrayF * GetEMCALFidCutMinEtaArray() const { return fEMCALFidCutMinEta ; }
83 void AddEMCALFidCutMinPhiArray(Int_t size, Float_t* array)
84 { fEMCALFidCutMinPhi->Set(size,array) ; }
85 TArrayF * GetEMCALFidCutMinPhiArray() const { return fEMCALFidCutMinPhi ; }
87 void AddPHOSFidCutMaxEtaArray(Int_t size, Float_t* array)
88 { fPHOSFidCutMaxEta->Set(size,array) ; }
89 TArrayF * GetPHOSFidCutMaxEtaArray() const { return fPHOSFidCutMaxEta ; }
91 void AddPHOSFidCutMaxPhiArray(Int_t size, Float_t* array)
92 { fPHOSFidCutMaxPhi->Set(size,array) ; }
93 TArrayF * GetPHOSFidCutMaxPhiArray() const { return fPHOSFidCutMaxPhi ; }
95 void AddPHOSFidCutMinEtaArray(Int_t size, Float_t* array)
96 { fPHOSFidCutMinEta->Set(size,array) ; }
97 TArrayF * GetPHOSFidCutMinEtaArray() const { return fPHOSFidCutMinEta ; }
99 void AddPHOSFidCutMinPhiArray(Int_t size, Float_t* array)
100 { fPHOSFidCutMinPhi->Set(size,array) ; }
101 TArrayF * GetPHOSFidCutMinPhiArray() const { return fPHOSFidCutMinPhi ; }
103 void AddDCALFidCutMaxEtaArray(Int_t size, Float_t* array)
104 { fDCALFidCutMaxEta->Set(size,array) ; }
105 TArrayF * GetDCALFidCutMaxEtaArray() const { return fDCALFidCutMaxEta ; }
107 void AddDCALFidCutMaxPhiArray(Int_t size, Float_t* array)
108 { fDCALFidCutMaxPhi->Set(size,array) ; }
109 TArrayF * GetDCALFidCutMaxPhiArray() const { return fDCALFidCutMaxPhi ; }
111 void AddDCALFidCutMinEtaArray(Int_t size, Float_t* array)
112 { fDCALFidCutMinEta->Set(size,array) ; }
113 TArrayF * GetDCALFidCutMinEtaArray() const { return fDCALFidCutMinEta ; }
115 void AddDCALFidCutMinPhiArray(Int_t size, Float_t* array)
116 { fDCALFidCutMinPhi->Set(size,array) ; }
117 TArrayF * GetDCALFidCutMinPhiArray() const { return fDCALFidCutMinPhi ; }
119 enum detector {kEMCAL = 0, kPHOS = 1, kCTS = 2, kDCAL = 3, kDCALPHOS = 4 };
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
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
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
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
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
149 AliFiducialCut( const AliFiducialCut & g) ; // cpy ctor
150 AliFiducialCut & operator = (const AliFiducialCut & g) ; // cpy assignment
152 ClassDef(AliFiducialCut,2)
157 #endif //ALIFIDUCIALCUT_H