Line data Source code
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 0 : class AliEventTagCuts : public TObject {
21 : public:
22 : AliEventTagCuts();
23 : ~AliEventTagCuts();
24 : void Reset();
25 :
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 :
33 : void SetNParticipantsRange(Int_t low, Int_t high);
34 : void SetImpactParamRange(Float_t low, Float_t high);
35 :
36 : void SetEtaLeadingParticleRange(Float_t low, Float_t high);
37 : void SetPhiLeadingParticleRange(Float_t low, Float_t high);
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);
43 :
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);
61 :
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);
67 :
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);
81 : void SetNFWMuonRange(Int_t low, Int_t high);
82 : void SetNFWMatchedMuonRange(Int_t low, Int_t high);
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);
98 : void SetEventPlaneAngleRange(Float_t low, Float_t high);
99 : void SetHBTRadiiRange(Float_t low, Float_t high);
100 :
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 :
106 : // Trigger
107 : void ResetTriggerClasses();
108 : void AddRequiredFiredTriggerClass(TString aclass);
109 : void InitializeTriggerClasses(TString aclass);
110 :
111 : Bool_t IsAccepted(AliEventTag *EvTag) const;
112 : Bool_t IsAccepted(const AliEventTag *EvTag) const;
113 :
114 : //____________________________________________________//
115 : private:
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 :
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 :
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 :
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
153 :
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
181 :
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
197 :
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
220 : Int_t fNFWMuonsMin, fNFWMuonsMax; // # of forward muons range
221 : Bool_t fNFWMuonsFlag; // Shows whether this cut is used or not
222 : Int_t fNFWMatchedMuonsMin, fNFWMatchedMuonsMax; // # of forward matched muons range
223 : Bool_t fNFWMatchedMuonsFlag; // Shows whether this cut is used or not
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
258 :
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 :
266 : Bool_t fFiredTriggerClassFlag; // Shows whether this cut is used or not
267 : TString fFiredTriggerClass; // Triger class must be present to accept event
268 :
269 : TString fActiveTriggerClasses; // Trigger classes active for this run
270 :
271 176 : ClassDef(AliEventTagCuts, 4)
272 : };
273 :
274 : #endif
|