Following naming conventions/improving readibility of the methods (Markus).
[u/mrichter/AliRoot.git] / STEER / AliEventTagCuts.h
1 #ifndef ALIEVENTTAGCUTS_H
2 #define ALIEVENTTAGCUTS_H
3 /*  See cxx source for full Copyright notice */
4
5
6 /* $Id$ */
7
8 //-------------------------------------------------------------------------
9 //                       Class AliEventTagCuts
10 //   This is the class for the cuts in event tags
11 //
12 //    Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
13 //-------------------------------------------------------------------------
14
15 #include <TObject.h>
16
17 class AliEventTag;
18
19 //___________________________________________________________________________
20 class AliEventTagCuts : public TObject {
21  public:
22   AliEventTagCuts();
23   ~AliEventTagCuts();
24   void Reset();
25   
26  //____________________________________________________//
27   void SetNParticipantsRange(Int_t low, Int_t high);
28   void SetImpactParamRange(Float_t low, Float_t high);
29
30   void SetPrimaryVertexXRange(Float_t low, Float_t high);
31   void SetPrimaryVertexYRange(Float_t low, Float_t high);
32   void SetPrimaryVertexZRange(Float_t low, Float_t high);
33   void SetPrimaryVertexFlag(Int_t flag);
34   void SetPrimaryVertexZErrorRange(Float_t low, Float_t high);
35
36   void SetTriggerMask(ULong64_t trmask);
37   void SetTriggerCluster(UChar_t trcluster);
38
39   void SetZDCNeutron1Range(Float_t low, Float_t high);
40   void SetZDCProton1Range(Float_t low, Float_t high);
41   void SetZDCEMRange(Float_t low, Float_t high);
42   void SetZDCNeutron2Range(Float_t low, Float_t high);
43   void SetZDCProton2Range(Float_t low, Float_t high);
44   void SetT0VertexZRange(Float_t low, Float_t high);
45
46   void SetMultiplicityRange(Int_t low, Int_t high);
47   void SetPosMultiplicityRange(Int_t low, Int_t high);
48   void SetNegMultiplicityRange(Int_t low, Int_t high);
49   void SetNeutrMultiplicityRange(Int_t low, Int_t high);
50   void SetNV0sRange(Int_t low, Int_t high);
51   void SetNCascadesRange(Int_t low, Int_t high);
52   void SetNKinksRange(Int_t low, Int_t high);
53  
54   void SetNPMDTracksRange(Int_t low, Int_t high);
55   void SetNFMDTracksRange(Int_t low, Int_t high);
56   void SetNPHOSClustersRange(Int_t low, Int_t high);
57   void SetNEMCALClustersRange(Int_t low, Int_t high);
58   void SetNJetCandidatesRange(Int_t low, Int_t high);
59
60   void SetTopJetEnergyMin(Float_t low);
61   void SetTopNeutralEnergyMin(Float_t low);
62   void SetNHardPhotonsRange(Int_t low, Int_t high);
63   void SetNChargedAbove1GeVRange(Int_t low, Int_t high);
64   void SetNChargedAbove3GeVRange(Int_t low, Int_t high);
65   void SetNChargedAbove10GeVRange(Int_t low, Int_t high);
66   void SetNMuonsAbove1GeVRange(Int_t low, Int_t high);
67   void SetNMuonsAbove3GeVRange(Int_t low, Int_t high);
68   void SetNMuonsAbove10GeVRange(Int_t low, Int_t high);
69   void SetNElectronsAbove1GeVRange(Int_t low, Int_t high);
70   void SetNElectronsAbove3GeVRange(Int_t low, Int_t high);
71   void SetNElectronsAbove10GeVRange(Int_t low, Int_t high);
72   void SetNElectronRange(Int_t low, Int_t high);
73   void SetNMuonRange(Int_t low, Int_t high);
74   void SetNPionRange(Int_t low, Int_t high);
75   void SetNKaonRange(Int_t low, Int_t high);
76   void SetNProtonRange(Int_t low, Int_t high);
77   void SetNLambdaRange(Int_t low, Int_t high);
78   void SetNPhotonRange(Int_t low, Int_t high);
79   void SetNPi0Range(Int_t low, Int_t high);
80   void SetNNeutronRange(Int_t low, Int_t high);
81   void SetNKaon0Range(Int_t low, Int_t high); 
82   void SetTotalPRange(Float_t low, Float_t high);
83   void SetMeanPtRange(Float_t low, Float_t high);
84   void SetTopPtMin(Float_t low);
85   void SetTotalNeutralPRange(Float_t low, Float_t high);
86   void SetMeanNeutralPtPRange(Float_t low, Float_t high);
87   void SetTopNeutralPtMin(Float_t low);
88   void SetEvPlaneAngleRange(Float_t low, Float_t high);
89   void SetHBTRadiiRange(Float_t low, Float_t high);
90  
91   Bool_t IsAccepted(AliEventTag *EvTag) const;
92
93   //____________________________________________________//
94  private:
95   Float_t fVxMin, fVxMax;  //Definition of the range of the Vx
96   Bool_t fVxFlag;          //Shows whether this cut is used or not
97   Float_t fVyMin, fVyMax;  //Definition of the range of the Vy
98   Bool_t fVyFlag;          //Shows whether this cut is used or not
99   Float_t fVzMin, fVzMax;  //Definition of the range of the Vz
100   Bool_t fVzFlag;          //Shows whether this cut is used or not
101   Int_t fParticipantsMin, fParticipantMax; //# participants range
102   Bool_t fParticipantsFlag;//Shows whether this cut is used or not
103   Float_t fImpactParamMin, fImpactParamMax; //Impact parameter range
104   Bool_t fImpactParamFlag; //Shows whether this cut is used or not
105   Int_t fPrimaryVertexFlag; //Primary vertex flag: 0->not found, 1->found
106   Bool_t fPVFlag;          //Shows whether this cut is used or not
107
108   Float_t fPrimaryVertexZErrorMin, fPrimaryVertexZErrorMax; //Range of the primary vertex z error
109   Bool_t fPVzErrorFlag;          //Shows whether this cut is used or not
110   ULong64_t fTriggerMask;  //trigger mask definition
111   Bool_t fTriggerMaskFlag; //Shows whether this cut is used or not
112   UChar_t fTriggerCluster;  //trigger cluster definition
113   Bool_t fTriggerClusterFlag; //Shows whether this cut is used or not
114   
115   Float_t fZDCNeutron1EnergyMin, fZDCNeutron1EnergyMax; //ZDC min,max - neutron
116   Bool_t fZDCNeutron1EnergyFlag;//Shows whether this cut is used or not
117   Float_t fZDCProton1EnergyMin, fZDCProton1EnergyMax; //ZDC min,max - proton
118   Bool_t fZDCProton1EnergyFlag;//Shows whether this cut is used or not
119   Float_t fZDCNeutron2EnergyMin, fZDCNeutron2EnergyMax; //ZDC min,max - neutron
120   Bool_t fZDCNeutron2EnergyFlag;//Shows whether this cut is used or not
121   Float_t fZDCProton2EnergyMin, fZDCProton2EnergyMax; //ZDC min,max - proton
122   Bool_t fZDCProton2EnergyFlag;//Shows whether this cut is used or not
123   Float_t fZDCEMEnergyMin, fZDCEMEnergyMax; //ZDC min,max - em
124   Bool_t fZDCEMEnergyFlag;//Shows whether this cut is used or not
125   Float_t fT0VertexZMin, fT0VertexZMax; //T0 min, max
126   Bool_t fT0VertexZFlag;//Shows whether this cut is used or not  
127   Int_t fMultMin, fMultMax;  //Definition of the range of the multiplicity
128   Bool_t fMultFlag;//Shows whether this cut is used or not
129   Int_t fMultPosMin, fMultPosMax; //Positive tracks multiplicity range
130   Bool_t fMultPosFlag;//Shows whether this cut is used or not
131   Int_t fMultNegMin, fMultNegMax; //Negative tracks multiplicity range
132   Bool_t fMultNegFlag;//Shows whether this cut is used or not
133   Int_t fMultNeutrMin, fMultNeutrMax; //Neutral tracks multiplicity range
134   Bool_t fMultNeutrFlag;//Shows whether this cut is used or not
135   Int_t fV0sMin, fV0sMax; //Range of V0s
136   Bool_t fV0sFlag;//Shows whether this cut is used or not
137   Int_t fCascadesMin, fCascadesMax; //Range of cascades
138   Bool_t fCascadesFlag;//Shows whether this cut is used or not
139   Int_t fkinksMin, fkinksMax; //Range of kinks
140   Bool_t fkinksFlag;//Shows whether this cut is used or not
141   
142   Int_t fPMDTracksMin, fPMDTracksMax; //Range of PMD tracks
143   Bool_t fPMDTracksFlag;//Shows whether this cut is used or not
144   Int_t fFMDTracksMin, fFMDTracksMax; //Range of FMD tracks
145   Bool_t fFMDTracksFlag;//Shows whether this cut is used or not
146   Int_t fPHOSClustersMin, fPHOSClustersMax; //Range of PHOS clusters
147   Bool_t fPHOSClustersFlag;//Shows whether this cut is used or not
148   Int_t fEMCALClustersMin, fEMCALClustersMax; //Range of EMCAL clusters
149   Bool_t fEMCALClustersFlag;//Shows whether this cut is used or not
150   Int_t fJetCandidatesMin, fJetCandidatesMax; //Range of jet candidates
151   Bool_t fJetCandidatesFlag;//Shows whether this cut is used or not
152
153   Float_t fMaxJetEnergy; //max jet energy info
154   Bool_t fMaxJetEnergyFlag;//Shows whether this cut is used or not
155   
156   Int_t fNHardPhotonsCandidatesMin, fNHardPhotonsCandidatesMax; //Hard photons candidates
157   Bool_t fNHardPhotonsCandidatesFlag;//Shows whether this cut is used or not
158   Float_t fMaxNeutralEnergy; //max neutral energy info
159   Bool_t fMaxNeutralFlag;//Shows whether this cut is used or not  
160   Int_t fChargedAbove1GeVMin, fChargedAbove1GeVMax;//Definition of the range of the number of charged above 1GeV
161   Bool_t fChargedAbove1GeVFlag;//Shows whether this cut is used or not
162   Int_t fChargedAbove3GeVMin, fChargedAbove3GeVMax;//Definition of the range of the number of charged above 3GeV
163   Bool_t fChargedAbove3GeVFlag;//Shows whether this cut is used or not
164   Int_t fChargedAbove10GeVMin, fChargedAbove10GeVMax;//Definition of the range of the number of charged above 10GeV
165   Bool_t fChargedAbove10GeVFlag;//Shows whether this cut is used or not
166   Int_t fMuonsAbove1GeVMin, fMuonsAbove1GeVMax;//Definition of the range of the number of muons above 1GeV
167   Bool_t fMuonsAbove1GeVFlag;//Shows whether this cut is used or not
168   Int_t fMuonsAbove3GeVMin, fMuonsAbove3GeVMax;//Definition of the range of the number of muons above 3GeV
169   Bool_t fMuonsAbove3GeVFlag;//Shows whether this cut is used or not
170   Int_t fMuonsAbove10GeVMin, fMuonsAbove10GeVMax; //Definition of the range of the number of muons above 10GeV
171   Bool_t fMuonsAbove10GeVFlag;//Shows whether this cut is used or not
172   Int_t fElectronsAbove1GeVMin, fElectronsAbove1GeVMax;//Definition of the range of the number of electorns above 1GeV
173   Bool_t fElectronsAbove1GeVFlag;//Shows whether this cut is used or not
174   Int_t fElectronsAbove3GeVMin, fElectronsAbove3GeVMax;//Definition of the range of the number of electorns above 3GeV
175   Bool_t fElectronsAbove3GeVFlag;//Shows whether this cut is used or not
176   Int_t fElectronsAbove10GeVMin,fElectronsAbove10GeVMax;//Definition of the range of the number of electorns above 10GeV
177   Bool_t fElectronsAbove10GeVFlag;//Shows whether this cut is used or not  
178   Int_t fElectronsMin, fElectronsMax; //Number of electrons range
179   Bool_t fElectronsFlag;//Shows whether this cut is used or not
180   Int_t fMuonsMin, fMuonsMax;  //Number of muons range
181   Bool_t fMuonsFlag;//Shows whether this cut is used or not
182   Int_t fPionsMin, fPionsMax; //Number of pions range
183   Bool_t fPionsFlag;//Shows whether this cut is used or not
184   Int_t fKaonsMin, fKaonsMax; //Number of kaons range
185   Bool_t fKaonsFlag;//Shows whether this cut is used or not
186   Int_t fProtonsMin, fProtonsMax; //Number of protons range
187   Bool_t fProtonsFlag;//Shows whether this cut is used or not
188   Int_t fLambdasMin, fLambdasMax; //Number of lambdas range
189   Bool_t fLambdasFlag;//Shows whether this cut is used or not
190   Int_t fPhotonsMin, fPhotonsMax; //Number of photons range
191   Bool_t fPhotonFlag;//Shows whether this cut is used or not
192   Int_t fPi0sMin, fPi0sMax; //Number of Pi0s range
193   Bool_t fPi0sFlag;//Shows whether this cut is used or not
194   Int_t fNeutronsMin, fNeutronsMax; //Number of neutrons range
195   Bool_t fNeutronsFlag;//Shows whether this cut is used or not
196   Int_t fKaon0sMin, fKaon0sMax; //Number of K0s range
197   Bool_t fKaon0sFlag;//Shows whether this cut is used or not  
198   Float_t fTotalPMin, fTotalPMax; //Range of the sum of the momentum per event
199   Bool_t fTotalPFlag;//Shows whether this cut is used or not
200   Float_t fMeanPtMin, fMeanPtMax; //Range of mean Pt per event
201   Bool_t fMeanPtFlag;//Shows whether this cut is used or not
202   Float_t fMaxPt; //Max Pt for each event
203   Bool_t fMaxPtFlag;//Shows whether this cut is used or not
204   Float_t fTotalNeutralPMin, fTotalNeutralPMax; //Sum of the momentum per event for neutral
205   Bool_t fTotalNeutralPFlag;//Shows whether this cut is used or not
206   Float_t fMeanNeutralPtMin, fMeanNeutralPtMax; //Mean Pt per event for neutral
207   Bool_t fMeanNeutralPtFlag;//Shows whether this cut is used or not
208   Float_t fMaxNeutralPt; //Max Pt for each event for neutral
209   Bool_t fMaxNeutralPtFlag;//Shows whether this cut is used or not
210   Float_t fEventPlaneAngleMin, fEventPlaneAngleMax; //event plane info
211   Bool_t fEventPlaneAngleFlag;//Shows whether this cut is used or not
212   Float_t fHBTRadiiMin, fHBTRadiiMax; //HBT info
213   Bool_t fHBTRadiiFlag;//Shows whether this cut is used or not
214
215   ClassDef(AliEventTagCuts, 2)
216 };
217
218 #endif