Coverity 16571
[u/mrichter/AliRoot.git] / STEER / AliEventTagCuts.h
CommitLineData
c7e89ea3 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
17class AliEventTag;
18
7e73fbbd 19//___________________________________________________________________________
20class AliEventTagCuts : public TObject {
c7e89ea3 21 public:
22 AliEventTagCuts();
c7e89ea3 23 ~AliEventTagCuts();
c7e89ea3 24 void Reset();
25
7e3c2e04 26 //____________________________________________________//
27 void SetPeriodNumberRange(UInt_t n1, UInt_t n2);
28 void SetOrbitNumberRange(UInt_t n1, UInt_t n2);
29 void SetBunchCrossNumberRange(UShort_t n1, UShort_t n2);
30
31 void SetEventType(UInt_t ntype);
32
915d9c13 33 void SetNParticipantsRange(Int_t low, Int_t high);
34 void SetImpactParamRange(Float_t low, Float_t high);
c7e89ea3 35
a01e4203 36 void SetEtaLeadingParticleRange(Float_t low, Float_t high);
37 void SetPhiLeadingParticleRange(Float_t low, Float_t high);
915d9c13 38 void SetPrimaryVertexXRange(Float_t low, Float_t high);
39 void SetPrimaryVertexYRange(Float_t low, Float_t high);
40 void SetPrimaryVertexZRange(Float_t low, Float_t high);
41 void SetPrimaryVertexFlag(Int_t flag);
42 void SetPrimaryVertexZErrorRange(Float_t low, Float_t high);
7e73fbbd 43
915d9c13 44 void SetTriggerMask(ULong64_t trmask);
45 void SetTriggerCluster(UChar_t trcluster);
46
47 void SetZDCNeutron1Range(Float_t low, Float_t high);
48 void SetZDCProton1Range(Float_t low, Float_t high);
49 void SetZDCEMRange(Float_t low, Float_t high);
50 void SetZDCNeutron2Range(Float_t low, Float_t high);
51 void SetZDCProton2Range(Float_t low, Float_t high);
52 void SetT0VertexZRange(Float_t low, Float_t high);
53
54 void SetMultiplicityRange(Int_t low, Int_t high);
55 void SetPosMultiplicityRange(Int_t low, Int_t high);
56 void SetNegMultiplicityRange(Int_t low, Int_t high);
57 void SetNeutrMultiplicityRange(Int_t low, Int_t high);
58 void SetNV0sRange(Int_t low, Int_t high);
59 void SetNCascadesRange(Int_t low, Int_t high);
60 void SetNKinksRange(Int_t low, Int_t high);
c7e89ea3 61
915d9c13 62 void SetNPMDTracksRange(Int_t low, Int_t high);
63 void SetNFMDTracksRange(Int_t low, Int_t high);
64 void SetNPHOSClustersRange(Int_t low, Int_t high);
65 void SetNEMCALClustersRange(Int_t low, Int_t high);
66 void SetNJetCandidatesRange(Int_t low, Int_t high);
7e73fbbd 67
915d9c13 68 void SetTopJetEnergyMin(Float_t low);
69 void SetTopNeutralEnergyMin(Float_t low);
70 void SetNHardPhotonsRange(Int_t low, Int_t high);
71 void SetNChargedAbove1GeVRange(Int_t low, Int_t high);
72 void SetNChargedAbove3GeVRange(Int_t low, Int_t high);
73 void SetNChargedAbove10GeVRange(Int_t low, Int_t high);
74 void SetNMuonsAbove1GeVRange(Int_t low, Int_t high);
75 void SetNMuonsAbove3GeVRange(Int_t low, Int_t high);
76 void SetNMuonsAbove10GeVRange(Int_t low, Int_t high);
77 void SetNElectronsAbove1GeVRange(Int_t low, Int_t high);
78 void SetNElectronsAbove3GeVRange(Int_t low, Int_t high);
79 void SetNElectronsAbove10GeVRange(Int_t low, Int_t high);
80 void SetNElectronRange(Int_t low, Int_t high);
d3893274 81 void SetNFWMuonRange(Int_t low, Int_t high);
e21df713 82 void SetNFWMatchedMuonRange(Int_t low, Int_t high);
915d9c13 83 void SetNMuonRange(Int_t low, Int_t high);
84 void SetNPionRange(Int_t low, Int_t high);
85 void SetNKaonRange(Int_t low, Int_t high);
86 void SetNProtonRange(Int_t low, Int_t high);
87 void SetNLambdaRange(Int_t low, Int_t high);
88 void SetNPhotonRange(Int_t low, Int_t high);
89 void SetNPi0Range(Int_t low, Int_t high);
90 void SetNNeutronRange(Int_t low, Int_t high);
91 void SetNKaon0Range(Int_t low, Int_t high);
92 void SetTotalPRange(Float_t low, Float_t high);
93 void SetMeanPtRange(Float_t low, Float_t high);
94 void SetTopPtMin(Float_t low);
95 void SetTotalNeutralPRange(Float_t low, Float_t high);
96 void SetMeanNeutralPtPRange(Float_t low, Float_t high);
97 void SetTopNeutralPtMin(Float_t low);
63fafb59 98 void SetEventPlaneAngleRange(Float_t low, Float_t high);
915d9c13 99 void SetHBTRadiiRange(Float_t low, Float_t high);
c7e89ea3 100
7e3c2e04 101 //First physics
102 void SetNumberOfFiredChipsLayer1Range(Int_t low, Int_t high);
103 void SetNumberOfFiredChipsLayer2Range(Int_t low, Int_t high);
104 void SetNumberOfSPDTrackletsRange(Int_t low, Int_t high);
105
850d5792 106 // Trigger
04cb11d4 107 void ResetTriggerClasses();
108 void AddRequiredFiredTriggerClass(TString aclass);
109 void InitializeTriggerClasses(TString aclass);
850d5792 110
c7e89ea3 111 Bool_t IsAccepted(AliEventTag *EvTag) const;
04cb11d4 112 Bool_t IsAccepted(const AliEventTag *EvTag) const;
c7e89ea3 113
7e73fbbd 114 //____________________________________________________//
c7e89ea3 115 private:
7e3c2e04 116 UInt_t fPeriodNumberMin, fPeriodNumberMax; //min/max value of the period number
117 Bool_t fPeriodNumberFlag; // Shows whether this cut is used or not
118
119 UInt_t fOrbitNumberMin, fOrbitNumberMax; //min/max value of the orbit number
120 Bool_t fOrbitNumberFlag; // Shows whether this cut is used or not
121
122 UShort_t fBunchCrossNumberMin, fBunchCrossNumberMax; //min/max value of the bunch crossing number
123 Bool_t fBunchCrossNumberFlag; // Shows whether this cut is used or not
124
125 UInt_t fEventType; //event type == 7 ==> PHYSICS_EVENT
126 Bool_t fEventTypeFlag; // Shows whether this cut is used or not
127
63fafb59 128 Int_t fNParticipantsMin, fNParticipantsMax; // # participants range
129 Bool_t fNParticipantsFlag; // Shows whether this cut is used or not
130 Float_t fImpactParamMin, fImpactParamMax; // Impact parameter range
131 Bool_t fImpactParamFlag; // Shows whether this cut is used or not
132
a01e4203 133 Float_t fEtaMin, fEtaMax; // Definition of the range of the eta leading
134 Bool_t fEtaFlag; // Shows whether this cut is used or not
135 Float_t fPhiMin, fPhiMax; // Definition of the range of the phi leading
136 Bool_t fPhiFlag; // Shows whether this cut is used or not
137
63fafb59 138 Float_t fVxMin, fVxMax; // Definition of the range of the Vx
139 Bool_t fVxFlag; // Shows whether this cut is used or not
140 Float_t fVyMin, fVyMax; // Definition of the range of the Vy
141 Bool_t fVyFlag; // Shows whether this cut is used or not
142 Float_t fVzMin, fVzMax; // Definition of the range of the Vz
143 Bool_t fVzFlag; // Shows whether this cut is used or not
144 Int_t fPrimaryVertexFlag; // Primary vertex flag: 0->not found, 1->found
145 Bool_t fPVFlag; // Shows whether this cut is used or not
146 Float_t fPrimaryVertexZErrorMin, fPrimaryVertexZErrorMax; // Range of the primary vertex z error
147 Bool_t fPVzErrorFlag; // Shows whether this cut is used or not
148
149 ULong64_t fTriggerMask; // trigger mask definition
150 Bool_t fTriggerMaskFlag; // Shows whether this cut is used or not
151 UChar_t fTriggerCluster; // trigger cluster definition
152 Bool_t fTriggerClusterFlag; // Shows whether this cut is used or not
c7e89ea3 153
63fafb59 154 Float_t fZDCNeutron1EnergyMin, fZDCNeutron1EnergyMax; // ZDC min,max - neutron
155 Bool_t fZDCNeutron1EnergyFlag; // Shows whether this cut is used or not
156 Float_t fZDCProton1EnergyMin, fZDCProton1EnergyMax; // ZDC min,max - proton
157 Bool_t fZDCProton1EnergyFlag; // Shows whether this cut is used or not
158 Float_t fZDCNeutron2EnergyMin, fZDCNeutron2EnergyMax; // ZDC min,max - neutron
159 Bool_t fZDCNeutron2EnergyFlag; // Shows whether this cut is used or not
160 Float_t fZDCProton2EnergyMin, fZDCProton2EnergyMax; // ZDC min,max - proton
161 Bool_t fZDCProton2EnergyFlag; // Shows whether this cut is used or not
162 Float_t fZDCEMEnergyMin, fZDCEMEnergyMax; // ZDC min,max - em
163 Bool_t fZDCEMEnergyFlag; // Shows whether this cut is used or not
164 Float_t fT0VertexZMin, fT0VertexZMax; // T0 min, max
165 Bool_t fT0VertexZFlag; // Shows whether this cut is used or not
166
167 Int_t fMultMin, fMultMax; // Definition of the range of the multiplicity
168 Bool_t fMultFlag; // Shows whether this cut is used or not
169 Int_t fPosMultMin, fPosMultMax; // Positive tracks multiplicity range
170 Bool_t fPosMultFlag; // Shows whether this cut is used or not
171 Int_t fNegMultMin, fNegMultMax; // Negative tracks multiplicity range
172 Bool_t fNegMultFlag; // Shows whether this cut is used or not
173 Int_t fNeutrMultMin, fNeutrMultMax; // Neutral tracks multiplicity range
174 Bool_t fNeutrMultFlag; // Shows whether this cut is used or not
175 Int_t fNV0sMin, fNV0sMax; // Range of # of V0s
176 Bool_t fNV0sFlag; // Shows whether this cut is used or not
177 Int_t fNCascadesMin, fNCascadesMax; // Range of # of cascades
178 Bool_t fNCascadesFlag; // Shows whether this cut is used or not
179 Int_t fNKinksMin, fNKinksMax; // Range of # of kinks
180 Bool_t fNKinksFlag; // Shows whether this cut is used or not
c7e89ea3 181
63fafb59 182 Int_t fNPMDTracksMin, fNPMDTracksMax; // Range of # of PMD tracks
183 Bool_t fNPMDTracksFlag; // Shows whether this cut is used or not
184 Int_t fNFMDTracksMin, fNFMDTracksMax; // Range of # of FMD tracks
185 Bool_t fNFMDTracksFlag; // Shows whether this cut is used or not
186 Int_t fNPHOSClustersMin, fNPHOSClustersMax; // Range of # of PHOS clusters
187 Bool_t fNPHOSClustersFlag; // Shows whether this cut is used or not
188 Int_t fNEMCALClustersMin, fNEMCALClustersMax; // Range of # of EMCAL clusters
189 Bool_t fNEMCALClustersFlag; // Shows whether this cut is used or not
190 Int_t fNJetCandidatesMin, fNJetCandidatesMax; // Range of # of jet candidates
191 Bool_t fNJetCandidatesFlag; // Shows whether this cut is used or not
192
193 Float_t fTopJetEnergyMin; // top jet energy minimum value
194 Bool_t fTopJetEnergyMinFlag; // Shows whether this cut is used or not
195 Float_t fTopNeutralEnergyMin; // top neutral energy minimum value
196 Bool_t fTopNeutralEnergyMinFlag; // Shows whether this cut is used or not
c7e89ea3 197
63fafb59 198 Int_t fNHardPhotonCandidatesMin, fNHardPhotonCandidatesMax; // # of hard photons candidates
199 Bool_t fNHardPhotonCandidatesFlag; // Shows whether this cut is used or not
200 Int_t fNChargedAbove1GeVMin, fNChargedAbove1GeVMax; // Definition of the range of the # of charged above 1GeV
201 Bool_t fNChargedAbove1GeVFlag; // Shows whether this cut is used or not
202 Int_t fNChargedAbove3GeVMin, fNChargedAbove3GeVMax; // Definition of the range of the # of charged above 3GeV
203 Bool_t fNChargedAbove3GeVFlag; // Shows whether this cut is used or not
204 Int_t fNChargedAbove10GeVMin, fNChargedAbove10GeVMax; // Definition of the range of the # of charged above 10GeV
205 Bool_t fNChargedAbove10GeVFlag; // Shows whether this cut is used or not
206 Int_t fNMuonsAbove1GeVMin, fNMuonsAbove1GeVMax; // Definition of the range of the # of muons above 1GeV
207 Bool_t fNMuonsAbove1GeVFlag; // Shows whether this cut is used or not
208 Int_t fNMuonsAbove3GeVMin, fNMuonsAbove3GeVMax; // Definition of the range of the # of muons above 3GeV
209 Bool_t fNMuonsAbove3GeVFlag; // Shows whether this cut is used or not
210 Int_t fNMuonsAbove10GeVMin, fNMuonsAbove10GeVMax; // Definition of the range of the # of muons above 10GeV
211 Bool_t fNMuonsAbove10GeVFlag; // Shows whether this cut is used or not
212 Int_t fNElectronsAbove1GeVMin, fNElectronsAbove1GeVMax; // Definition of the range of the # of electorns above 1GeV
213 Bool_t fNElectronsAbove1GeVFlag; // Shows whether this cut is used or not
214 Int_t fNElectronsAbove3GeVMin, fNElectronsAbove3GeVMax; // Definition of the range of the # of electorns above 3GeV
215 Bool_t fNElectronsAbove3GeVFlag; // Shows whether this cut is used or not
216 Int_t fNElectronsAbove10GeVMin,fNElectronsAbove10GeVMax; // Definition of the range of the # of electorns above 10GeV
217 Bool_t fNElectronsAbove10GeVFlag; // Shows whether this cut is used or not
218 Int_t fNElectronsMin, fNElectronsMax; // # of electrons range
219 Bool_t fNElectronsFlag; // Shows whether this cut is used or not
d3893274 220 Int_t fNFWMuonsMin, fNFWMuonsMax; // # of forward muons range
221 Bool_t fNFWMuonsFlag; // Shows whether this cut is used or not
e21df713 222 Int_t fNFWMatchedMuonsMin, fNFWMatchedMuonsMax; // # of forward matched muons range
223 Bool_t fNFWMatchedMuonsFlag; // Shows whether this cut is used or not
63fafb59 224 Int_t fNMuonsMin, fNMuonsMax; // # of muons range
225 Bool_t fNMuonsFlag; // Shows whether this cut is used or not
226 Int_t fNPionsMin, fNPionsMax; // # of pions range
227 Bool_t fNPionsFlag; // Shows whether this cut is used or not
228 Int_t fNKaonsMin, fNKaonsMax; // # of kaons range
229 Bool_t fNKaonsFlag; // Shows whether this cut is used or not
230 Int_t fNProtonsMin, fNProtonsMax; // # of protons range
231 Bool_t fNProtonsFlag; // Shows whether this cut is used or not
232 Int_t fNLambdasMin, fNLambdasMax; // # of lambdas range
233 Bool_t fNLambdasFlag; // Shows whether this cut is used or not
234 Int_t fNPhotonsMin, fNPhotonsMax; // # of photons range
235 Bool_t fNPhotonFlag; // Shows whether this cut is used or not
236 Int_t fNPi0sMin, fNPi0sMax; // # of Pi0s range
237 Bool_t fNPi0sFlag; // Shows whether this cut is used or not
238 Int_t fNNeutronsMin, fNNeutronsMax; // # of neutrons range
239 Bool_t fNNeutronsFlag; // Shows whether this cut is used or not
240 Int_t fNKaon0sMin, fNKaon0sMax; // # of K0s range
241 Bool_t fNKaon0sFlag; // Shows whether this cut is used or not
242 Float_t fTotalPMin, fTotalPMax; // Range of the sum of the momentum per event
243 Bool_t fTotalPFlag; // Shows whether this cut is used or not
244 Float_t fMeanPtMin, fMeanPtMax; // Range of mean Pt per event
245 Bool_t fMeanPtFlag; // Shows whether this cut is used or not
246 Float_t fTopPtMin; // Max Pt for each event
247 Bool_t fTopPtMinFlag; // Shows whether this cut is used or not
248 Float_t fTotalNeutralPMin, fTotalNeutralPMax; // Sum of the momentum per event for neutral
249 Bool_t fTotalNeutralPFlag; // Shows whether this cut is used or not
250 Float_t fMeanNeutralPtMin, fMeanNeutralPtMax; // Mean Pt per event for neutral
251 Bool_t fMeanNeutralPtFlag; // Shows whether this cut is used or not
252 Float_t fTopNeutralPtMin; // Minimum value for highest Pt for the event for neutral
253 Bool_t fTopNeutralPtMinFlag; // Shows whether this cut is used or not
254 Float_t fEventPlaneAngleMin, fEventPlaneAngleMax; // event plane info
255 Bool_t fEventPlaneAngleFlag; // Shows whether this cut is used or not
256 Float_t fHBTRadiiMin, fHBTRadiiMax; // HBT info
257 Bool_t fHBTRadiiFlag; // Shows whether this cut is used or not
c7e89ea3 258
7e3c2e04 259 Int_t fNumberOfFiredChipsLayer1Min, fNumberOfFiredChipsLayer1Max; //min/max number of fired chips - layer 1
260 Bool_t fNumberOfFiredChipsLayer1Flag; // Shows whether this cut is used or not
261 Int_t fNumberOfFiredChipsLayer2Min, fNumberOfFiredChipsLayer2Max; //min/max number of fired chips - layer 2
262 Bool_t fNumberOfFiredChipsLayer2Flag; // Shows whether this cut is used or not
263 Int_t fNumberOfSPDTrackletsMin, fNumberOfSPDTrackletsMax; //min/max number of SPD tracklets
264 Bool_t fNumberOfSPDTrackletsFlag; // Shows whether this cut is used or not
265
04cb11d4 266 Bool_t fFiredTriggerClassFlag; // Shows whether this cut is used or not
267 TString fFiredTriggerClass; // Triger class must be present to accept event
7e3c2e04 268
04cb11d4 269 TString fActiveTriggerClasses; // Trigger classes active for this run
270
271 ClassDef(AliEventTagCuts, 4)
7e73fbbd 272};
c7e89ea3 273
274#endif