]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/CaloTrackCorrBase/AliFiducialCut.h
Transition PWG4 --> PWGGA
[u/mrichter/AliRoot.git] / PWG / CaloTrackCorrBase / AliFiducialCut.h
CommitLineData
ff45398a 1#ifndef ALIFIDUCIALCUT_H
2#define ALIFIDUCIALCUT_H
1c5acb87 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
5efec477 10//
11// Several selection regions possible for the different
12// detectors
1c5acb87 13//
14//*-- Author: Gustavo Conesa (INFN-LNF)
15
16// --- ROOT system ---
17#include <TObject.h>
18#include <TArrayF.h>
19
20class TString ;
21class TLorentzVector ;
22
23//--- AliRoot system ---
24
1c5acb87 25
ff45398a 26class AliFiducialCut : public TObject {
c5693f62 27
28public:
ff45398a 29 AliFiducialCut() ; // ctor
c5693f62 30 virtual ~AliFiducialCut() ;//virtual dtor
78219bac 31
c5693f62 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 ;
1c5acb87 37
c5693f62 38 Bool_t IsInFiducialCut (const TLorentzVector lv, const TString det) const ;
1c5acb87 39
c5693f62 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;
1c5acb87 53
c5693f62 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 ; }
1c5acb87 98
c5693f62 99 void AddPHOSFidCutMinPhiArray(Int_t size, Float_t* array)
100 { fPHOSFidCutMinPhi->Set(size,array) ; }
101 TArrayF * GetPHOSFidCutMinPhiArray() const { return fPHOSFidCutMinPhi ; }
102
103protected:
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
1c5acb87 127
ff45398a 128 ClassDef(AliFiducialCut,1)
c5693f62 129
130} ;
1c5acb87 131
132
ff45398a 133#endif //ALIFIDUCIALCUT_H
1c5acb87 134
135
136