Additional cuts for leading particle alignment in event mixing. (Alessandro Grelli)
[u/mrichter/AliRoot.git] / STEER / AliEventTagCuts.cxx
1 /**************************************************************************
2  * Author: Panos Christakoglou.                                           *
3  * Contributors are mentioned in the code where appropriate.              *
4  *                                                                        *
5  * Permission to use, copy, modify and distribute this software and its   *
6  * documentation strictly for non-commercial purposes is hereby granted   *
7  * without fee, provided that the above copyright notice appears in all   *
8  * copies and that both the copyright notice and this permission notice   *
9  * appear in the supporting documentation. The authors make no claims     *
10  * about the suitability of this software for any purpose. It is          *
11  * provided "as is" without express or implied warranty.                  *
12  **************************************************************************/
13
14 /* $Id$ */
15
16 //-----------------------------------------------------------------
17 //           AliEventTagCuts class
18 //   This is the class to deal with the event tag level cuts
19 //   Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
20 //-----------------------------------------------------------------
21
22 class AliLog;
23 class AliESD;
24
25 #include "TMath.h"
26 #include "AliEventTag.h"
27 #include "AliEventTagCuts.h"
28
29 ClassImp(AliEventTagCuts)
30
31
32 //___________________________________________________________________________
33 AliEventTagCuts::AliEventTagCuts() :
34   TObject(),
35   fPeriodNumberMin(0), fPeriodNumberMax(0xFFFFFFFF), fPeriodNumberFlag(kFALSE),
36   fOrbitNumberMin(0), fOrbitNumberMax(0xFFFFFFFF), fOrbitNumberFlag(kFALSE),
37   fBunchCrossNumberMin(0), fBunchCrossNumberMax(0xFFFF), 
38   fBunchCrossNumberFlag(kFALSE),
39   fEventType(7), fEventTypeFlag(kFALSE),
40   fNParticipantsMin(-1), fNParticipantsMax(10000),
41   fNParticipantsFlag(kFALSE),
42   fImpactParamMin(-1.0), fImpactParamMax(1000.0),
43   fImpactParamFlag(kFALSE),
44   fEtaMin(-13.0), fEtaMax(13.0), 
45   fEtaFlag(kFALSE),
46   fPhiMin(0.), fPhiMax(2*(TMath::Pi())), 
47   fPhiFlag(kFALSE),
48   fVxMin(-1000.0), fVxMax(1000.0), 
49   fVxFlag(kFALSE),
50   fVyMin(-1000.0), fVyMax(1000.0),  
51   fVyFlag(kFALSE),
52   fVzMin(-1000.0), fVzMax(1000.0),
53   fVzFlag(kFALSE),
54   fPrimaryVertexFlag(1),
55   fPVFlag(kFALSE),
56
57   fPrimaryVertexZErrorMin(-10000.), fPrimaryVertexZErrorMax(10000.),
58   fPVzErrorFlag(kFALSE),
59   fTriggerMask(0),
60   fTriggerMaskFlag(kFALSE),
61   fTriggerCluster(0),
62   fTriggerClusterFlag(kFALSE),
63  
64   fZDCNeutron1EnergyMin(-1.0), fZDCNeutron1EnergyMax(100000.0),
65   fZDCNeutron1EnergyFlag(kFALSE),
66   fZDCProton1EnergyMin(-1.0), fZDCProton1EnergyMax(100000.0),
67   fZDCProton1EnergyFlag(kFALSE),
68   fZDCNeutron2EnergyMin(-1.0), fZDCNeutron2EnergyMax(100000.0),
69   fZDCNeutron2EnergyFlag(kFALSE),
70   fZDCProton2EnergyMin(-1.0), fZDCProton2EnergyMax(100000.0),
71   fZDCProton2EnergyFlag(kFALSE),
72   fZDCEMEnergyMin(-1.0), fZDCEMEnergyMax(100000.0),
73   fZDCEMEnergyFlag(kFALSE),
74   fT0VertexZMin(-10000.0), fT0VertexZMax(10000.0),  
75   fT0VertexZFlag(kFALSE),
76   fMultMin(0), fMultMax(100000),  
77   fMultFlag(kFALSE),
78   fPosMultMin(-1), fPosMultMax(100000),
79   fPosMultFlag(kFALSE),
80   fNegMultMin(-1), fNegMultMax(100000),
81   fNegMultFlag(kFALSE),
82   fNeutrMultMin(-1), fNeutrMultMax(100000),
83   fNeutrMultFlag(kFALSE),
84   fNV0sMin(-1), fNV0sMax(1000000),
85   fNV0sFlag(kFALSE),
86   fNCascadesMin(-1), fNCascadesMax(100000),
87   fNCascadesFlag(kFALSE),
88   fNKinksMin(-1), fNKinksMax(1000000),
89   fNKinksFlag(kFALSE),
90
91   fNPMDTracksMin(-1), fNPMDTracksMax(100000),
92   fNPMDTracksFlag(kFALSE),
93   fNFMDTracksMin(-1), fNFMDTracksMax(100000),
94   fNFMDTracksFlag(kFALSE),
95   fNPHOSClustersMin(-1), fNPHOSClustersMax(100000),
96   fNPHOSClustersFlag(kFALSE),
97   fNEMCALClustersMin(-1), fNEMCALClustersMax(100000),
98   fNEMCALClustersFlag(kFALSE),
99   fNJetCandidatesMin(-1), fNJetCandidatesMax(100000),
100   fNJetCandidatesFlag(kFALSE),
101
102   fTopJetEnergyMin(-1.0), 
103   fTopJetEnergyMinFlag(kFALSE),
104   fTopNeutralEnergyMin(-1.0), 
105   fTopNeutralEnergyMinFlag(kFALSE),
106   fNHardPhotonCandidatesMin(-1), fNHardPhotonCandidatesMax(100000),
107   fNHardPhotonCandidatesFlag(kFALSE),
108   fNChargedAbove1GeVMin(-1), fNChargedAbove1GeVMax(100000),
109   fNChargedAbove1GeVFlag(kFALSE),
110   fNChargedAbove3GeVMin(-1), fNChargedAbove3GeVMax(100000),
111   fNChargedAbove3GeVFlag(kFALSE),
112   fNChargedAbove10GeVMin(-1), fNChargedAbove10GeVMax(100000),
113   fNChargedAbove10GeVFlag(kFALSE),
114   fNMuonsAbove1GeVMin(-1), fNMuonsAbove1GeVMax(100000),
115   fNMuonsAbove1GeVFlag(kFALSE),
116   fNMuonsAbove3GeVMin(-1), fNMuonsAbove3GeVMax(100000),
117   fNMuonsAbove3GeVFlag(kFALSE),
118   fNMuonsAbove10GeVMin(-1), fNMuonsAbove10GeVMax(100000), 
119   fNMuonsAbove10GeVFlag(kFALSE),
120   fNElectronsAbove1GeVMin(-1), fNElectronsAbove1GeVMax(100000),
121   fNElectronsAbove1GeVFlag(kFALSE),
122   fNElectronsAbove3GeVMin(-1), fNElectronsAbove3GeVMax(100000),
123   fNElectronsAbove3GeVFlag(kFALSE),
124   fNElectronsAbove10GeVMin(-1), fNElectronsAbove10GeVMax(100000),
125   fNElectronsAbove10GeVFlag(kFALSE),
126   fNElectronsMin(-1), fNElectronsMax(100000),
127   fNElectronsFlag(kFALSE),
128   fNFWMuonsMin(-1), fNFWMuonsMax(100000),
129   fNFWMuonsFlag(kFALSE),
130   fNMuonsMin(-1), fNMuonsMax(100000),
131   fNMuonsFlag(kFALSE),
132   fNPionsMin(-1), fNPionsMax(100000),
133   fNPionsFlag(kFALSE),
134   fNKaonsMin(-1), fNKaonsMax(100000),
135   fNKaonsFlag(kFALSE),
136   fNProtonsMin(-1), fNProtonsMax(100000),
137   fNProtonsFlag(kFALSE),
138   fNLambdasMin(-1), fNLambdasMax(100000),
139   fNLambdasFlag(kFALSE),
140   fNPhotonsMin(-1), fNPhotonsMax(100000),
141   fNPhotonFlag(kFALSE),
142   fNPi0sMin(-1), fNPi0sMax(100000), 
143   fNPi0sFlag(kFALSE),
144   fNNeutronsMin(-1), fNNeutronsMax(100000), 
145   fNNeutronsFlag(kFALSE),
146   fNKaon0sMin(-1), fNKaon0sMax(100000), 
147   fNKaon0sFlag(kFALSE),
148   fTotalPMin(-1.0), fTotalPMax(1000000.0),
149   fTotalPFlag(kFALSE),
150   fMeanPtMin(-1.0), fMeanPtMax(100000.0),
151   fMeanPtFlag(kFALSE),
152   fTopPtMin(-1.0),
153   fTopPtMinFlag(kFALSE),
154   fTotalNeutralPMin(-1.0), fTotalNeutralPMax(1000000.0),   
155   fTotalNeutralPFlag(kFALSE),
156   fMeanNeutralPtMin(-1.0), fMeanNeutralPtMax(1000000.0), 
157   fMeanNeutralPtFlag(kFALSE),
158   fTopNeutralPtMin(-1.0), 
159   fTopNeutralPtMinFlag(kFALSE),
160   fEventPlaneAngleMin(-10000000.0), fEventPlaneAngleMax(10000000.0), 
161   fEventPlaneAngleFlag(kFALSE),
162   fHBTRadiiMin(-1.0), fHBTRadiiMax(100000.0), 
163   fHBTRadiiFlag(kFALSE),
164
165   fNumberOfFiredChipsLayer1Min(0), fNumberOfFiredChipsLayer1Max(100000),
166   fNumberOfFiredChipsLayer1Flag(kFALSE),
167   fNumberOfFiredChipsLayer2Min(0), fNumberOfFiredChipsLayer2Max(100000),
168   fNumberOfFiredChipsLayer2Flag(kFALSE),
169   fNumberOfSPDTrackletsMin(0), fNumberOfSPDTrackletsMax(100000),
170   fNumberOfSPDTrackletsFlag(kFALSE)
171 {
172   //Default constructor which calls the Reset method.
173   Reset();
174 }
175
176 //___________________________________________________________________________
177 AliEventTagCuts::~AliEventTagCuts() {  
178   //Defaut destructor.
179 }
180
181 //___________________________________________________________________________
182 void AliEventTagCuts::Reset() {
183   //Sets dummy values to every private member.
184   fPeriodNumberFlag = kFALSE;
185   fOrbitNumberFlag = kFALSE;
186   fBunchCrossNumberFlag = kFALSE;
187   
188   fEventTypeFlag = kFALSE;
189
190   fNParticipantsFlag = kFALSE;
191   fImpactParamFlag = kFALSE;
192
193   fEtaFlag = kFALSE;
194   fPhiFlag = kFALSE;
195   fVxFlag = kFALSE;
196   fVyFlag = kFALSE;
197   fVzFlag = kFALSE;
198   fPVFlag = kFALSE;
199   fPVzErrorFlag = kFALSE;
200
201   fTriggerMaskFlag = kFALSE;
202   fTriggerClusterFlag = kFALSE;
203
204   fZDCNeutron1EnergyFlag = kFALSE;
205   fZDCProton1EnergyFlag = kFALSE;
206   fZDCNeutron2EnergyFlag = kFALSE;
207   fZDCProton2EnergyFlag = kFALSE;
208   fZDCEMEnergyFlag = kFALSE;
209   fT0VertexZFlag = kFALSE;
210   fMultFlag = kFALSE;
211   fPosMultFlag = kFALSE;
212   fNegMultFlag = kFALSE;
213   fNeutrMultFlag = kFALSE;
214   fNV0sFlag = kFALSE;
215   fNCascadesFlag = kFALSE;
216   fNKinksFlag = kFALSE;
217
218   fNPMDTracksFlag = kFALSE;
219   fNFMDTracksFlag = kFALSE;
220   fNPHOSClustersFlag = kFALSE;
221   fNEMCALClustersFlag = kFALSE;
222   fNJetCandidatesFlag = kFALSE;
223
224   fTopJetEnergyMinFlag = kFALSE;
225   fNHardPhotonCandidatesFlag = kFALSE;
226   fTopNeutralEnergyMinFlag = kFALSE;
227   fNChargedAbove1GeVFlag = kFALSE;
228   fNChargedAbove3GeVFlag = kFALSE;
229   fNChargedAbove10GeVFlag = kFALSE;
230   fNMuonsAbove1GeVFlag = kFALSE;
231   fNMuonsAbove3GeVFlag = kFALSE;
232   fNMuonsAbove10GeVFlag = kFALSE;
233   fNElectronsAbove1GeVFlag = kFALSE;
234   fNElectronsAbove3GeVFlag = kFALSE;
235   fNElectronsAbove10GeVFlag = kFALSE;
236   fNElectronsFlag = kFALSE;
237   fNFWMuonsFlag = kFALSE;
238   fNMuonsFlag = kFALSE;
239   fNPionsFlag = kFALSE;
240   fNKaonsFlag = kFALSE;
241   fNProtonsFlag = kFALSE;
242   fNLambdasFlag = kFALSE;
243   fNPhotonFlag = kFALSE;
244   fNPi0sFlag = kFALSE;
245   fNNeutronsFlag = kFALSE;
246   fNKaon0sFlag = kFALSE;
247   fTotalPFlag = kFALSE;
248   fMeanPtFlag = kFALSE;
249   fTopPtMinFlag = kFALSE;
250   fTotalNeutralPFlag = kFALSE;
251   fMeanNeutralPtFlag = kFALSE;
252   fTopNeutralPtMinFlag = kFALSE;
253   fEventPlaneAngleFlag = kFALSE;
254   fHBTRadiiFlag = kFALSE;
255
256   fNumberOfFiredChipsLayer1Flag = kFALSE;
257   fNumberOfFiredChipsLayer2Flag = kFALSE;
258   fNumberOfSPDTrackletsFlag = kFALSE;
259
260   fPeriodNumberMin = 0, fPeriodNumberMax = 0xFFFFFFFF;
261   fOrbitNumberMin = 0, fOrbitNumberMax = 0xFFFFFFFF;
262   fBunchCrossNumberMin = 0, fBunchCrossNumberMax = 0xFFFF;
263
264   fEventType = 7;
265
266   fEtaMin = -13.0; fEtaMax = 13.0;
267   fPhiMin = 0.; fPhiMax = 2*(TMath::Pi());
268   fVxMin = -1000.0; fVxMax = 1000.0; 
269   fVyMin = -1000.0; fVyMax = 1000.0;  
270   fVzMin = -1000.0; fVzMax = 1000.0;
271   fNParticipantsMin = -1; fNParticipantsMax = 10000;
272   fImpactParamMin = -1.0; fImpactParamMax = 1000.0;
273   fPrimaryVertexFlag = 1;
274
275   fPrimaryVertexZErrorMin = -10000.; fPrimaryVertexZErrorMax = 10000.;
276   fTriggerMask = 0;
277   fTriggerCluster = 0;
278  
279   fZDCNeutron1EnergyMin = -1.0; fZDCNeutron1EnergyMax = 100000.0;
280   fZDCProton1EnergyMin = -1.0; fZDCProton1EnergyMax = 100000.0;
281   fZDCNeutron2EnergyMin = -1.0; fZDCNeutron2EnergyMax = 100000.0;
282   fZDCProton2EnergyMin = -1.0; fZDCProton2EnergyMax = 100000.0;
283   fZDCEMEnergyMin = -1.0; fZDCEMEnergyMax = 100000.0;
284   fT0VertexZMin = -10000.0; fT0VertexZMax = 10000.0;  
285   fMultMin = 0; fMultMax = 100000;  
286   fPosMultMin = -1; fPosMultMax = 100000;
287   fNegMultMin = -1; fNegMultMax = 100000;
288   fNeutrMultMin = -1; fNeutrMultMax = 100000;
289   fNV0sMin = -1; fNV0sMax = 1000000;
290   fNCascadesMin = -1; fNCascadesMax = 100000;
291   fNKinksMin = -1; fNKinksMax = 1000000;
292
293   fNPMDTracksMin = -1, fNPMDTracksMax = 100000;
294   fNFMDTracksMin = -1, fNFMDTracksMax = 100000;
295   fNPHOSClustersMin = -1, fNPHOSClustersMax = 100000;
296   fNEMCALClustersMin = -1, fNEMCALClustersMax = 100000;
297   fNJetCandidatesMin = -1, fNJetCandidatesMax = 100000;
298
299   fTopJetEnergyMin = -1.0; 
300   fNHardPhotonCandidatesMin = -1; fNHardPhotonCandidatesMax = 100000;
301   fTopNeutralEnergyMin = -1.0; 
302   fNChargedAbove1GeVMin = -1; fNChargedAbove1GeVMax = 100000;
303   fNChargedAbove3GeVMin = -1; fNChargedAbove3GeVMax = 100000;
304   fNChargedAbove10GeVMin = -1; fNChargedAbove10GeVMax = 100000;
305   fNMuonsAbove1GeVMin = -1; fNMuonsAbove1GeVMax = 100000;
306   fNMuonsAbove3GeVMin = -1; fNMuonsAbove3GeVMax = 100000;
307   fNMuonsAbove10GeVMin = -1; fNMuonsAbove10GeVMax = 100000; 
308   fNElectronsAbove1GeVMin = -1; fNElectronsAbove1GeVMax = 100000;
309   fNElectronsAbove3GeVMin = -1; fNElectronsAbove3GeVMax = 100000;
310   fNElectronsAbove10GeVMin = -1; fNElectronsAbove10GeVMax = 100000;
311   fNElectronsMin = -1; fNElectronsMax = 100000;
312   fNFWMuonsMin = -1; fNFWMuonsMax = 100000;
313   fNMuonsMin = -1; fNMuonsMax = 100000;
314   fNPionsMin = -1; fNPionsMax = 100000;
315   fNKaonsMin = -1; fNKaonsMax = 100000;
316   fNProtonsMin = -1; fNProtonsMax = 100000;
317   fNLambdasMin = -1; fNLambdasMax = 100000;
318   fNPhotonsMin = -1; fNPhotonsMax = 100000;
319   fNPi0sMin = -1; fNPi0sMax = 100000; 
320   fNNeutronsMin = -1; fNNeutronsMax = 100000; 
321   fNKaon0sMin = -1; fNKaon0sMax = 100000; 
322   fTotalPMin = -1.0; fTotalPMax = 1000000.0;
323   fMeanPtMin = -1.0; fMeanPtMax = 100000.0;
324   fTopPtMin = -1.0; fTotalNeutralPMin = -1.0;
325   fTotalNeutralPMax = 1000000.0;   
326   fMeanNeutralPtMin = -1.0; fMeanNeutralPtMax = 1000000.0; 
327   fTopNeutralPtMin = -1.0; 
328   fEventPlaneAngleMin = -10000000.0; fEventPlaneAngleMax = 10000000.0; 
329   fHBTRadiiMin = -1.0; fHBTRadiiMax = 100000.0; 
330
331   fNumberOfFiredChipsLayer1Min = 0, fNumberOfFiredChipsLayer1Max = 100000;
332   fNumberOfFiredChipsLayer2Min = 0, fNumberOfFiredChipsLayer2Max = 100000;
333   fNumberOfSPDTrackletsMin = 0, fNumberOfSPDTrackletsMax = 100000;
334 }
335
336 //___________________________________________________________________________
337 void AliEventTagCuts::SetEventType(UInt_t ntype) {
338   //Sets the event type
339   //and the corresponding flag to kTRUE if the cut is used.
340   fEventType = ntype;
341   fEventTypeFlag = kTRUE;
342 }
343
344 //___________________________________________________________________________
345 void AliEventTagCuts::SetNumberOfFiredChipsLayer1Range(Int_t low, Int_t high) {
346   //Sets the range for the number of fired chips of layer 1
347   //and the corresponding flag to kTRUE if the cut is used.
348   fNumberOfFiredChipsLayer1Min = low;
349   fNumberOfFiredChipsLayer1Max = high;
350   fNumberOfFiredChipsLayer1Flag = kTRUE;
351 }
352
353 //___________________________________________________________________________
354 void AliEventTagCuts::SetNumberOfFiredChipsLayer2Range(Int_t low, Int_t high) {
355   //Sets the range for the number of fired chips of layer 2
356   //and the corresponding flag to kTRUE if the cut is used.
357   fNumberOfFiredChipsLayer2Min = low;
358   fNumberOfFiredChipsLayer2Max = high;
359   fNumberOfFiredChipsLayer2Flag = kTRUE;
360 }
361
362 //___________________________________________________________________________
363 void AliEventTagCuts::SetNumberOfSPDTrackletsRange(Int_t low, Int_t high) {
364   //Sets the range for the number of fired chips of layer 1
365   //and the corresponding flag to kTRUE if the cut is used.
366   fNumberOfSPDTrackletsMin = low;
367   fNumberOfSPDTrackletsMax = high;
368   fNumberOfSPDTrackletsFlag = kTRUE;
369 }
370
371 //___________________________________________________________________________
372 void AliEventTagCuts::SetPeriodNumberRange(UInt_t low, UInt_t high) {
373   //Sets the period number range
374   //and the corresponding flag to kTRUE if the cut is used.
375   fPeriodNumberMin = low;
376   fPeriodNumberMax = high; 
377   fPeriodNumberFlag = kTRUE;
378 }
379
380 //___________________________________________________________________________
381 void AliEventTagCuts::SetOrbitNumberRange(UInt_t low, UInt_t high) {
382   //Sets the orbit number range
383   //and the corresponding flag to kTRUE if the cut is used.
384   fOrbitNumberMin = low;
385   fOrbitNumberMax = high; 
386   fOrbitNumberFlag = kTRUE;
387 }
388
389 //___________________________________________________________________________
390 void AliEventTagCuts::SetBunchCrossNumberRange(UShort_t low, UShort_t high) {
391   //Sets the BC number range
392   //and the corresponding flag to kTRUE if the cut is used.
393   fBunchCrossNumberMin = low;
394   fBunchCrossNumberMax = high; 
395   fBunchCrossNumberFlag = kTRUE;
396 }
397
398 //___________________________________________________________________________
399 void AliEventTagCuts::SetPrimaryVertexXRange(Float_t low, Float_t high) {
400   //Sets the primary vertex x range 
401   //and the corresponding flag to kTRUE if the cut is used.
402   fVxMin = low;
403   fVxMax = high; 
404   fVxFlag = kTRUE;
405 }
406
407 //___________________________________________________________________________
408 void AliEventTagCuts::SetPrimaryVertexYRange(Float_t low, Float_t high) {
409   //Sets the primary vertex y range 
410   //and the corresponding flag to kTRUE if the cut is used.
411   fVyMin = low;
412   fVyMax = high; 
413   fVyFlag = kTRUE;
414 }
415
416 //___________________________________________________________________________
417 void AliEventTagCuts::SetPrimaryVertexZRange(Float_t low, Float_t high) {
418   //Sets the primary vertex z range 
419   //and the corresponding flag to kTRUE if the cut is used.
420   fVzMin = low;
421   fVzMax = high; 
422   fVzFlag = kTRUE;
423 }
424
425 //___________________________________________________________________________
426  void AliEventTagCuts::SetEtaLeadingParticleRange(Float_t low, Float_t high) {
427   //Sets the eta range of LP 
428   //and the corresponding flag to kTRUE if the cut is used.
429   fEtaMin = low;
430   fEtaMax = high; 
431   fEtaFlag = kTRUE;
432 }
433 //__________________________________________________________________________
434 void AliEventTagCuts::SetPhiLeadingParticleRange(Float_t low, Float_t high) {
435   //Sets the eta range of LP 
436   //and the corresponding flag to kTRUE if the cut is used.
437   fPhiMin = low;
438   fPhiMax = high; 
439   fPhiFlag = kTRUE;
440
441
442 //___________________________________________________________________________
443 void AliEventTagCuts::SetPrimaryVertexZErrorRange(Float_t low, Float_t high) {
444   //Sets the primary vertex z error range 
445   //and the corresponding flag to kTRUE if the cut is used.
446   fPrimaryVertexZErrorMin = low;
447   fPrimaryVertexZErrorMax = high; 
448   fPVzErrorFlag = kTRUE;
449 }
450
451 //___________________________________________________________________________
452 void AliEventTagCuts::SetTriggerMask(ULong64_t trmask) {
453   //Sets the trigger mask 
454   //and the corresponding flag to kTRUE if the cut is used.
455   fTriggerMask = trmask;
456   fTriggerMaskFlag = kTRUE;
457 }
458
459 //___________________________________________________________________________
460 void AliEventTagCuts::SetTriggerCluster(UChar_t trcluster) {
461   //Sets the trigger cluster 
462   //and the corresponding flag to kTRUE if the cut is used.
463   fTriggerCluster = trcluster;
464   fTriggerClusterFlag = kTRUE;
465 }
466
467 //___________________________________________________________________________
468 void AliEventTagCuts::SetMultiplicityRange(Int_t low, Int_t high) {
469   //Sets the primary multiplicity range 
470   //and the corresponding flag to kTRUE if the cut is used.
471   fMultMin = low;
472   fMultMax = high;
473   fMultFlag = kTRUE;
474 }
475
476 //___________________________________________________________________________
477 void AliEventTagCuts::SetNParticipantsRange(Int_t low, Int_t high) {
478   //Sets the number of participants range 
479   //and the corresponding flag to kTRUE if the cut is used.
480   fNParticipantsMin = low;
481   fNParticipantsMax = high;
482   fNParticipantsFlag = kTRUE;
483 }
484
485 //___________________________________________________________________________
486 void AliEventTagCuts::SetImpactParamRange(Float_t low, Float_t high) {
487   //Sets the impact parameter range 
488   //and the corresponding flag to kTRUE if the cut is used.
489   fImpactParamMin = low;
490   fImpactParamMax = high;
491   fImpactParamFlag = kTRUE;
492 }
493  
494
495 //___________________________________________________________________________
496 void AliEventTagCuts::SetPrimaryVertexFlag(Int_t flag) {
497   //Sets the primary vertex flag cut 
498   //and the corresponding flag to kTRUE if the cut is used.
499   fPrimaryVertexFlag = flag;
500   fPVFlag = kTRUE;
501 }
502
503 //___________________________________________________________________________
504 void AliEventTagCuts::SetZDCNeutron1Range(Float_t low, Float_t high) {
505   //Sets the ZDC's neutron energy range 
506   //and the corresponding flag to kTRUE if the cut is used.
507   fZDCNeutron1EnergyMin = low;
508   fZDCNeutron1EnergyMax = high;
509   fZDCNeutron1EnergyFlag = kTRUE;
510 }
511
512 //___________________________________________________________________________
513 void AliEventTagCuts::SetZDCProton1Range(Float_t low, Float_t high) {
514   //Sets the ZDC's proton energy range 
515   //and the corresponding flag to kTRUE if the cut is used.
516   fZDCProton1EnergyMin = low;
517   fZDCProton1EnergyMax = high;
518   fZDCProton1EnergyFlag = kTRUE;
519 }
520 //___________________________________________________________________________
521 void AliEventTagCuts::SetZDCNeutron2Range(Float_t low, Float_t high) {
522   //Sets the ZDC's neutron energy range 
523   //and the corresponding flag to kTRUE if the cut is used.
524   fZDCNeutron2EnergyMin = low;
525   fZDCNeutron2EnergyMax = high;
526   fZDCNeutron2EnergyFlag = kTRUE;
527 }
528 //___________________________________________________________________________
529 void AliEventTagCuts::SetZDCProton2Range(Float_t low, Float_t high) {
530   //Sets the ZDC's proton energy range 
531   //and the corresponding flag to kTRUE if the cut is used.
532   fZDCProton2EnergyMin = low;
533   fZDCProton2EnergyMax = high;
534   fZDCProton2EnergyFlag = kTRUE;
535 }
536 //___________________________________________________________________________
537 void AliEventTagCuts::SetZDCEMRange(Float_t low, Float_t high) {
538   //Sets the ZDC's em energy range 
539   //and the corresponding flag to kTRUE if the cut is used.
540   fZDCEMEnergyMin = low;
541   fZDCEMEnergyMax = high;
542   fZDCEMEnergyFlag = kTRUE;
543 }
544
545 //___________________________________________________________________________
546 void AliEventTagCuts::SetT0VertexZRange(Float_t low, Float_t high) {
547   //Sets the T0's Vz range 
548   //and the corresponding flag to kTRUE if the cut is used.
549   fT0VertexZMin = low;
550   fT0VertexZMax = high;
551   fT0VertexZFlag = kTRUE;
552 }
553
554 //___________________________________________________________________________
555 void AliEventTagCuts::SetPosMultiplicityRange(Int_t low, Int_t high) {
556   //Sets the positive multiplicity range 
557   //and the corresponding flag to kTRUE if the cut is used.
558   fPosMultMin = low;
559   fPosMultMax = high;
560   fPosMultFlag = kTRUE;
561 }
562
563
564 //___________________________________________________________________________
565 void AliEventTagCuts::SetNegMultiplicityRange(Int_t low, Int_t high) {
566   //Sets the negative multiplicity range 
567   //and the corresponding flag to kTRUE if the cut is used.
568   fNegMultMin = low;
569   fNegMultMax = high;
570   fNegMultFlag = kTRUE;
571 }
572
573
574 //___________________________________________________________________________
575 void AliEventTagCuts::SetNeutrMultiplicityRange(Int_t low, Int_t high) {
576   //Sets the neutral particle multiplicity range 
577   //and the corresponding flag to kTRUE if the cut is used.
578   fNeutrMultMin = low;
579   fNeutrMultMax = high;
580   fNeutrMultFlag = kTRUE;
581 }
582
583 //___________________________________________________________________________
584 void AliEventTagCuts::SetNV0sRange(Int_t low, Int_t high) {
585   //Sets the v0s multiplicity range 
586   //and the corresponding flag to kTRUE if the cut is used.
587   fNV0sMin = low;
588   fNV0sMax = high;
589   fNV0sFlag = kTRUE;
590 }
591
592 //___________________________________________________________________________
593 void AliEventTagCuts::SetNCascadesRange(Int_t low, Int_t high) {
594   //Sets the cascades multiplicity range 
595   //and the corresponding flag to kTRUE if the cut is used.
596   fNCascadesMin = low;
597   fNCascadesMax = high;
598   fNCascadesFlag = kTRUE;
599 }
600
601 //___________________________________________________________________________
602 void AliEventTagCuts::SetNKinksRange(Int_t low, Int_t high) {
603   //Sets the kinks multiplicity range 
604   //and the corresponding flag to kTRUE if the cut is used.
605   fNKinksMin = low;
606   fNKinksMax = high;
607   fNKinksFlag = kTRUE;
608 }
609
610 //___________________________________________________________________________
611 void AliEventTagCuts::SetNPMDTracksRange(Int_t low, Int_t high) {
612   //Sets the number of PMD tracks range 
613   //and the corresponding flag to kTRUE if the cut is used.
614   fNPMDTracksMin = low;
615   fNPMDTracksMax = high;
616   fNPMDTracksFlag = kTRUE;
617 }
618
619 //___________________________________________________________________________
620 void AliEventTagCuts::SetNFMDTracksRange(Int_t low, Int_t high) {
621   //Sets the number of FMD tracks range 
622   //and the corresponding flag to kTRUE if the cut is used.
623   fNFMDTracksMin = low;
624   fNFMDTracksMax = high;
625   fNFMDTracksFlag = kTRUE;
626 }
627
628 //___________________________________________________________________________
629 void AliEventTagCuts::SetNPHOSClustersRange(Int_t low, Int_t high) {
630   //Sets the number of PHOS clusters range 
631   //and the corresponding flag to kTRUE if the cut is used.
632   fNPHOSClustersMin = low;
633   fNPHOSClustersMax = high;
634   fNPHOSClustersFlag = kTRUE;
635 }
636
637 //___________________________________________________________________________
638 void AliEventTagCuts::SetNEMCALClustersRange(Int_t low, Int_t high) {
639   //Sets the number of EMCAL clusters range 
640   //and the corresponding flag to kTRUE if the cut is used.
641   fNEMCALClustersMin = low;
642   fNEMCALClustersMax = high;
643   fNEMCALClustersFlag = kTRUE;
644 }
645
646 //___________________________________________________________________________
647 void AliEventTagCuts::SetNJetCandidatesRange(Int_t low, Int_t high) {
648   //Sets the number of jet candidates range 
649   //and the corresponding flag to kTRUE if the cut is used.
650   fNJetCandidatesMin = low;
651   fNJetCandidatesMax = high;
652   fNJetCandidatesFlag = kTRUE;
653 }
654
655 //___________________________________________________________________________
656 void AliEventTagCuts::SetTopJetEnergyMin(Float_t low) {
657   //Sets the lower limit of the maximum jet energy
658   //and the corresponding flag to kTRUE if the cut is used.
659   fTopJetEnergyMin = low; 
660   fTopJetEnergyMinFlag = kTRUE;
661 }
662 //___________________________________________________________________________
663 void AliEventTagCuts::SetTopNeutralEnergyMin(Float_t low) {
664   //Sets the lower limit of the maximum neutral jet energy
665   //and the corresponding flag to kTRUE if the cut is used.
666   fTopNeutralEnergyMin = low; 
667   fTopNeutralEnergyMinFlag = kTRUE;
668 }
669 //___________________________________________________________________________
670 void AliEventTagCuts::SetNHardPhotonsRange(Int_t low, Int_t high) {
671   //Sets the hard photons multiplicity range
672   //and the corresponding flag to kTRUE if the cut is used.
673   fNHardPhotonCandidatesMin = low;
674   fNHardPhotonCandidatesMax = high;
675   fNHardPhotonCandidatesFlag = kTRUE;
676
677
678 //___________________________________________________________________________
679 void AliEventTagCuts::SetNChargedAbove1GeVRange(Int_t low, Int_t high) {
680   //Sets the number of charged above 1GeV range
681   //and the corresponding flag to kTRUE if the cut is used.
682   fNChargedAbove1GeVMin = low;
683   fNChargedAbove1GeVMax = high;
684   fNChargedAbove1GeVFlag = kTRUE;
685 }
686
687 //___________________________________________________________________________
688  void AliEventTagCuts::SetNChargedAbove3GeVRange(Int_t low, Int_t high) {
689   //Sets the number of charged above 3GeV range
690   //and the corresponding flag to kTRUE if the cut is used.
691   fNChargedAbove3GeVMin = low;
692   fNChargedAbove3GeVMax = high;
693   fNChargedAbove3GeVFlag = kTRUE;
694 }
695
696
697 //___________________________________________________________________________
698 void AliEventTagCuts::SetNChargedAbove10GeVRange(Int_t low, Int_t high) {
699   //Sets the number of charged above 10GeV range
700   //and the corresponding flag to kTRUE if the cut is used.
701   fNChargedAbove10GeVMin = low;
702   fNChargedAbove10GeVMax = high;
703   fNChargedAbove10GeVFlag = kTRUE;
704 }
705
706
707 //___________________________________________________________________________
708 void AliEventTagCuts::SetNMuonsAbove1GeVRange(Int_t low, Int_t high) {
709   //Sets the number of muons above 1GeV range
710   //and the corresponding flag to kTRUE if the cut is used.
711   fNMuonsAbove1GeVMin = low;
712   fNMuonsAbove1GeVMax = high;
713   fNMuonsAbove1GeVFlag = kTRUE;
714 }
715
716
717 //___________________________________________________________________________
718 void AliEventTagCuts::SetNMuonsAbove3GeVRange(Int_t low, Int_t high) {
719   //Sets the number of muons above 3GeV range
720   //and the corresponding flag to kTRUE if the cut is used.
721   fNMuonsAbove3GeVMin = low;
722   fNMuonsAbove3GeVMax = high;
723   fNMuonsAbove3GeVFlag = kTRUE;
724
725
726 //___________________________________________________________________________
727 void AliEventTagCuts::SetNMuonsAbove10GeVRange(Int_t low, Int_t high) {
728   //Sets the number of muons above 10GeV range
729   //and the corresponding flag to kTRUE if the cut is used.
730   fNMuonsAbove10GeVMin = low;
731   fNMuonsAbove10GeVMax = high; 
732   fNMuonsAbove10GeVFlag = kTRUE;
733 }
734
735
736 //___________________________________________________________________________
737 void AliEventTagCuts::SetNElectronsAbove1GeVRange(Int_t low, Int_t high) {
738   //Sets the number of electrons above 1GeV range
739   //and the corresponding flag to kTRUE if the cut is used.
740   fNElectronsAbove1GeVMin = low;
741   fNElectronsAbove1GeVMax = high;
742   fNElectronsAbove1GeVFlag = kTRUE;
743 }
744
745 //___________________________________________________________________________
746 void AliEventTagCuts::SetNElectronsAbove3GeVRange(Int_t low, Int_t high) {
747   //Sets the number of electrons above 3GeV range
748   //and the corresponding flag to kTRUE if the cut is used.
749   fNElectronsAbove3GeVMin = low;
750   fNElectronsAbove3GeVMax = high;
751   fNElectronsAbove3GeVFlag = kTRUE;
752 }
753
754 //___________________________________________________________________________
755 void AliEventTagCuts::SetNElectronsAbove10GeVRange(Int_t low, Int_t high) {  
756   //Sets the number of electrons above 10GeV range
757   //and the corresponding flag to kTRUE if the cut is used.
758   fNElectronsAbove10GeVMin = low;
759   fNElectronsAbove10GeVMax = high;
760   fNElectronsAbove10GeVFlag = kTRUE;
761 }
762 //___________________________________________________________________________
763 void AliEventTagCuts::SetNElectronRange(Int_t low, Int_t high) {
764   //Sets the electron multiplicity range
765   //and the corresponding flag to kTRUE if the cut is used.
766   fNElectronsMin = low;
767   fNElectronsMax = high;
768   fNElectronsFlag = kTRUE;
769 }
770 //___________________________________________________________________________
771 void AliEventTagCuts::SetNFWMuonRange(Int_t low, Int_t high) {
772   //Sets the forward muon multiplicity range
773   //and the corresponding flag to kTRUE if the cut is used.
774   fNFWMuonsMin = low;
775   fNFWMuonsMax = high;
776   fNFWMuonsFlag = kTRUE;
777 }
778
779 //___________________________________________________________________________
780 void AliEventTagCuts::SetNMuonRange(Int_t low, Int_t high) {
781   //Sets the muon multiplicity range
782   //and the corresponding flag to kTRUE if the cut is used.
783   fNMuonsMin = low;
784   fNMuonsMax = high;
785   fNMuonsFlag = kTRUE;
786 }
787
788 //___________________________________________________________________________
789 void AliEventTagCuts::SetNPionRange(Int_t low, Int_t high) {
790   //Sets the pion multiplicity range
791   //and the corresponding flag to kTRUE if the cut is used.
792   fNPionsMin = low;
793   fNPionsMax = high;
794   fNPionsFlag = kTRUE;
795
796
797 //___________________________________________________________________________
798 void AliEventTagCuts::SetNKaonRange(Int_t low, Int_t high) {
799   //Sets the kaon multiplicity range
800   //and the corresponding flag to kTRUE if the cut is used.
801   fNKaonsMin = low;
802   fNKaonsMax = high;
803   fNKaonsFlag = kTRUE;
804 }
805
806 //___________________________________________________________________________
807 void AliEventTagCuts::SetNProtonRange(Int_t low, Int_t high) {
808   //Sets the proton multiplicity range
809   //and the corresponding flag to kTRUE if the cut is used.
810   fNProtonsMin = low;
811   fNProtonsMax = high;
812   fNProtonsFlag = kTRUE;
813
814
815 //___________________________________________________________________________
816 void AliEventTagCuts::SetNLambdaRange(Int_t low, Int_t high) {
817   //Sets the lambda multiplicity range
818   //and the corresponding flag to kTRUE if the cut is used.
819   fNLambdasMin = low;
820   fNLambdasMax = high;
821   fNLambdasFlag = kTRUE;
822
823 //___________________________________________________________________________
824 void AliEventTagCuts::SetNPhotonRange(Int_t low, Int_t high) {
825   //Sets the photon multiplicity range
826   //and the corresponding flag to kTRUE if the cut is used.
827   fNPhotonsMin = low;
828   fNPhotonsMax = high;
829   fNPhotonFlag = kTRUE;
830
831 //___________________________________________________________________________
832 void AliEventTagCuts::SetNPi0Range(Int_t low, Int_t high) {
833   //Sets the pi0 multiplicity range
834   //and the corresponding flag to kTRUE if the cut is used.
835   fNPi0sMin = low;
836   fNPi0sMax = high; 
837   fNPi0sFlag = kTRUE;
838 }  
839
840 //___________________________________________________________________________
841 void AliEventTagCuts::SetNNeutronRange(Int_t low, Int_t high) {
842   //Sets the neutron multiplicity range
843   //and the corresponding flag to kTRUE if the cut is used.
844   fNNeutronsMin = low;
845   fNNeutronsMax = high; 
846   fNNeutronsFlag = kTRUE;
847 }
848
849 //___________________________________________________________________________
850 void AliEventTagCuts::SetNKaon0Range(Int_t low, Int_t high) {  
851   //Sets the K0s multiplicity range
852   //and the corresponding flag to kTRUE if the cut is used.
853   fNKaon0sMin = low;
854   fNKaon0sMax = high; 
855   fNKaon0sFlag = kTRUE;
856 }
857
858 //___________________________________________________________________________
859 void AliEventTagCuts::SetTotalPRange(Float_t low, Float_t high) {
860   //Sets the total momentum range
861   //and the corresponding flag to kTRUE if the cut is used.
862   fTotalPMin = low;
863   fTotalPMax = high;
864   fTotalPFlag = kTRUE;
865 }
866
867 //___________________________________________________________________________
868 void AliEventTagCuts::SetMeanPtRange(Float_t low, Float_t high) {
869   //Sets the mean Pt range
870   //and the corresponding flag to kTRUE if the cut is used.
871   fMeanPtMin = low;
872   fMeanPtMax = high;
873   fMeanPtFlag = kTRUE;
874 }  
875
876 //___________________________________________________________________________
877 void AliEventTagCuts::SetTopPtMin(Float_t low) {
878   //Sets the lower limit of the max Pt value
879   //and the corresponding flag to kTRUE if the cut is used.
880   fTopPtMin = low; 
881   fTopPtMinFlag = kTRUE;
882 }
883
884 //___________________________________________________________________________
885 void AliEventTagCuts::SetTotalNeutralPRange(Float_t low, Float_t high) {  
886   //Sets the total momentum of neutral particles range
887   //and the corresponding flag to kTRUE if the cut is used.
888   fTotalNeutralPMin =low ;
889   fTotalNeutralPMax = high;  
890   fTotalNeutralPFlag = kTRUE;
891 }
892 //___________________________________________________________________________
893 void AliEventTagCuts::SetMeanNeutralPtPRange(Float_t low, Float_t high) {  
894   //Sets the mean Pt of neutral particles range
895   //and the corresponding flag to kTRUE if the cut is used.
896   fMeanNeutralPtMin = low;
897   fMeanNeutralPtMax = high; 
898   fMeanNeutralPtFlag = kTRUE;
899 }
900 //___________________________________________________________________________
901 void AliEventTagCuts::SetTopNeutralPtMin(Float_t low) {  
902   //Sets the lower limit of the maximum Pt of neutral particles
903   //and the corresponding flag to kTRUE if the cut is used.
904   fTopNeutralPtMin = low; 
905   fTopNeutralPtMinFlag = kTRUE;
906 }
907
908 //___________________________________________________________________________
909 void AliEventTagCuts::SetEventPlaneAngleRange(Float_t low, Float_t high) {
910   //Sets the event plane range
911   //and the corresponding flag to kTRUE if the cut is used.
912   fEventPlaneAngleMin = low;
913   fEventPlaneAngleMax = high; 
914   fEventPlaneAngleFlag = kTRUE;
915 }
916
917 //___________________________________________________________________________
918 void AliEventTagCuts::SetHBTRadiiRange(Float_t low, Float_t high) {
919   //Sets the HBT radii range
920   //and the corresponding flag to kTRUE if the cut is used.
921   fHBTRadiiMin = low;
922   fHBTRadiiMax = high; 
923   fHBTRadiiFlag = kTRUE;
924 }
925
926 //___________________________________________________________________________
927 Bool_t AliEventTagCuts::IsAccepted(AliEventTag *EvTag) const {
928   //Returns true if the event is accepted otherwise false.
929   if(fEventTypeFlag)
930     if(EvTag->GetEventType() != fEventType)
931       return kFALSE;
932   
933   if(fNumberOfFiredChipsLayer1Flag)
934     if((EvTag->GetNumberOfFiredChipsLayer1() < fNumberOfFiredChipsLayer1Min) || (EvTag->GetNumberOfFiredChipsLayer1() > fNumberOfFiredChipsLayer1Max))
935       return kFALSE;
936
937   if(fNumberOfFiredChipsLayer2Flag)
938     if((EvTag->GetNumberOfFiredChipsLayer2() < fNumberOfFiredChipsLayer2Min) || (EvTag->GetNumberOfFiredChipsLayer2() > fNumberOfFiredChipsLayer2Max))
939       return kFALSE;
940
941   if(fNumberOfSPDTrackletsFlag)
942     if((EvTag->GetNumberOfSPDTracklets() < fNumberOfSPDTrackletsMin) || (EvTag->GetNumberOfSPDTracklets() > fNumberOfSPDTrackletsMax))
943       return kFALSE;
944
945   if(fPeriodNumberFlag)
946     if((EvTag->GetPeriodNumber() < fPeriodNumberMin) || (EvTag->GetPeriodNumber() > fPeriodNumberMax))
947       return kFALSE;
948
949   if(fOrbitNumberFlag)
950     if((EvTag->GetOrbitNumber() < fOrbitNumberMin) || (EvTag->GetOrbitNumber() > fOrbitNumberMax))
951       return kFALSE;
952
953   if(fBunchCrossNumberFlag)
954     if((EvTag->GetBunchCrossNumber() < fBunchCrossNumberMin) || (EvTag->GetBunchCrossNumber() > fBunchCrossNumberMax))
955       return kFALSE;
956
957
958  if(fEtaFlag)
959     if((EvTag->GetEtaMaxPt() < fEtaMin) || (EvTag->GetEtaMaxPt() > fEtaMax))
960       return kFALSE;
961
962   if(fPhiFlag)
963     if((EvTag->GetPhiMaxPt() < fPhiMin) || (EvTag->GetPhiMaxPt() > fPhiMax))
964       return kFALSE;
965
966   if(fVzFlag)
967     if((EvTag->GetVertexZ() < fVzMin) || (EvTag->GetVertexZ() > fVzMax))
968       return kFALSE;
969   
970   if(fVyFlag)
971     if((EvTag->GetVertexY() < fVyMin) || (EvTag->GetVertexY() > fVyMax))
972       return kFALSE;
973   
974   if(fVxFlag)
975     if((EvTag->GetVertexX() < fVxMin) || (EvTag->GetVertexX() > fVxMax))
976       return kFALSE;
977   
978   if(fNParticipantsFlag)
979     if((EvTag->GetNumOfParticipants() < fNParticipantsMin) || (EvTag->GetNumOfParticipants() > fNParticipantsMax))
980       return kFALSE; 
981   
982   if(fImpactParamFlag)
983     if((EvTag->GetImpactParameter() < fImpactParamMin) || (EvTag->GetImpactParameter() > fImpactParamMax))
984       return kFALSE; 
985   
986   if(fPVFlag)
987     if((EvTag->GetVertexFlag() != fPrimaryVertexFlag))
988       return kFALSE; 
989   
990   if(fPVzErrorFlag)
991     if((EvTag->GetVertexZError() < fPrimaryVertexZErrorMin) || (EvTag->GetVertexZError() > fPrimaryVertexZErrorMax))
992       return kFALSE; 
993   if(fTriggerMaskFlag)
994     if((EvTag->GetTriggerMask() & fTriggerMask) != fTriggerMask)
995       return kFALSE; 
996   if(fTriggerClusterFlag)
997     if((EvTag->GetTriggerCluster() != fTriggerCluster))
998       return kFALSE; 
999
1000   if(fZDCNeutron1EnergyFlag)
1001     if((EvTag->GetZDCNeutron1Energy() < fZDCNeutron1EnergyMin) || (EvTag->GetZDCNeutron1Energy() > fZDCNeutron1EnergyMax))
1002       return kFALSE; 
1003   
1004   if(fZDCProton1EnergyFlag)
1005     if((EvTag->GetZDCProton1Energy() < fZDCProton1EnergyMin) || (EvTag->GetZDCProton1Energy() > fZDCProton1EnergyMax))
1006       return kFALSE; 
1007   
1008   if(fZDCNeutron2EnergyFlag)
1009     if((EvTag->GetZDCNeutron2Energy() < fZDCNeutron2EnergyMin) || (EvTag->GetZDCNeutron2Energy() > fZDCNeutron2EnergyMax))
1010       return kFALSE; 
1011   
1012   if(fZDCProton2EnergyFlag)
1013     if((EvTag->GetZDCProton2Energy() < fZDCProton2EnergyMin) || (EvTag->GetZDCProton2Energy() > fZDCProton2EnergyMax))
1014       return kFALSE; 
1015   
1016   if(fZDCEMEnergyFlag)
1017     if((EvTag->GetZDCEMEnergy(1) < fZDCEMEnergyMin) || (EvTag->GetZDCEMEnergy(1) > fZDCEMEnergyMax))
1018       return kFALSE; 
1019   
1020   if(fT0VertexZFlag)
1021     if((EvTag->GetT0VertexZ() < fT0VertexZMin) || (EvTag->GetT0VertexZ() > fT0VertexZMax))
1022       return kFALSE; 
1023   
1024   if(fMultFlag)
1025     if((EvTag->GetNumOfTracks() < fMultMin) || (EvTag->GetNumOfTracks() > fMultMax))
1026       return kFALSE; 
1027   
1028   if(fPosMultFlag)
1029     if((EvTag->GetNumOfPosTracks() < fPosMultMin) || (EvTag->GetNumOfPosTracks() > fPosMultMax))
1030       return kFALSE; 
1031   
1032   if(fNegMultFlag)
1033     if((EvTag->GetNumOfNegTracks() < fNegMultMin) || (EvTag->GetNumOfNegTracks() > fNegMultMax))
1034       return kFALSE; 
1035   
1036   if(fNeutrMultFlag)
1037     if((EvTag->GetNumOfNeutrTracks() < fNeutrMultMin) || (EvTag->GetNumOfNeutrTracks() > fNeutrMultMax))
1038       return kFALSE; 
1039   
1040   if(fNV0sFlag)
1041     if((EvTag->GetNumOfV0s() < fNV0sMin) || (EvTag->GetNumOfV0s() > fNV0sMax))
1042       return kFALSE; 
1043   
1044   if(fNCascadesFlag)
1045     if((EvTag->GetNumOfCascades() < fNCascadesMin) || (EvTag->GetNumOfCascades() > fNCascadesMax))
1046       return kFALSE; 
1047   
1048   if(fNKinksFlag)
1049     if((EvTag->GetNumOfKinks() < fNKinksMin) || (EvTag->GetNumOfKinks() > fNKinksMax))
1050       return kFALSE; 
1051
1052
1053   if(fNPMDTracksFlag)
1054     if((EvTag->GetNumOfPMDTracks() < fNPMDTracksMin) || (EvTag->GetNumOfPMDTracks() > fNPMDTracksMax))
1055       return kFALSE; 
1056   if(fNFMDTracksFlag)
1057     if((EvTag->GetNumOfFMDTracks() < fNFMDTracksMin) || (EvTag->GetNumOfFMDTracks() > fNFMDTracksMax))
1058       return kFALSE; 
1059   if(fNPHOSClustersFlag)
1060     if((EvTag->GetNumOfPHOSClusters() < fNPHOSClustersMin) || (EvTag->GetNumOfPHOSClusters() > fNPHOSClustersMax))
1061       return kFALSE; 
1062   if(fNEMCALClustersFlag)
1063     if((EvTag->GetNumOfEMCALClusters() < fNEMCALClustersMin) || (EvTag->GetNumOfEMCALClusters() > fNEMCALClustersMax))
1064       return kFALSE; 
1065   if(fNJetCandidatesFlag)
1066     if((EvTag->GetNumOfJetCandidates() < fNJetCandidatesMin) || (EvTag->GetNumOfJetCandidates() > fNJetCandidatesMax))
1067       return kFALSE; 
1068
1069
1070   if(fTopJetEnergyMinFlag)
1071     if((EvTag->GetMaxJetEnergy() < fTopJetEnergyMin))
1072       return kFALSE; 
1073   
1074   if(fNHardPhotonCandidatesFlag)
1075     if((EvTag->GetNumOfHardPhotonsCandidates() < fNHardPhotonCandidatesMin) || (EvTag->GetNumOfHardPhotonsCandidates() > fNHardPhotonCandidatesMax))
1076       return kFALSE; 
1077   
1078   if(fTopNeutralEnergyMinFlag)
1079     if((EvTag->GetMaxNeutralEnergy() < fTopNeutralEnergyMin))
1080       return kFALSE; 
1081   
1082   if(fNChargedAbove1GeVFlag)
1083     if((EvTag->GetNumOfChargedAbove1GeV() < fNChargedAbove1GeVMin) || (EvTag->GetNumOfChargedAbove1GeV() > fNChargedAbove1GeVMax))
1084       return kFALSE; 
1085   
1086   if(fNChargedAbove3GeVFlag)
1087     if((EvTag->GetNumOfChargedAbove3GeV() < fNChargedAbove3GeVMin) || (EvTag->GetNumOfChargedAbove3GeV() > fNChargedAbove3GeVMax))
1088       return kFALSE; 
1089   
1090   if(fNChargedAbove10GeVFlag)
1091     if((EvTag->GetNumOfChargedAbove10GeV() < fNChargedAbove10GeVMin) || (EvTag->GetNumOfChargedAbove10GeV() > fNChargedAbove10GeVMax))
1092       return kFALSE; 
1093   
1094   if(fNMuonsAbove1GeVFlag)
1095     if((EvTag->GetNumOfMuonsAbove1GeV() < fNMuonsAbove1GeVMin) || (EvTag->GetNumOfMuonsAbove1GeV() > fNMuonsAbove1GeVMax))
1096       return kFALSE; 
1097   
1098   if(fNMuonsAbove3GeVFlag)
1099     if((EvTag->GetNumOfMuonsAbove3GeV() < fNMuonsAbove3GeVMin) || (EvTag->GetNumOfMuonsAbove3GeV() > fNMuonsAbove3GeVMax))
1100       return kFALSE; 
1101   
1102   if(fNMuonsAbove10GeVFlag)
1103     if((EvTag->GetNumOfMuonsAbove10GeV() < fNMuonsAbove10GeVMin) || (EvTag->GetNumOfMuonsAbove10GeV() > fNMuonsAbove10GeVMax))
1104       return kFALSE; 
1105   
1106   if(fNElectronsAbove1GeVFlag)
1107     if((EvTag->GetNumOfElectronsAbove1GeV()  < fNElectronsAbove1GeVMin) || (EvTag->GetNumOfElectronsAbove1GeV()  > fNElectronsAbove1GeVMax))
1108       return kFALSE; 
1109   
1110   if(fNElectronsAbove3GeVFlag)
1111     if((EvTag->GetNumOfElectronsAbove3GeV() < fNElectronsAbove3GeVMin) || (EvTag->GetNumOfElectronsAbove3GeV() > fNElectronsAbove3GeVMax))
1112       return kFALSE; 
1113   
1114   if(fNElectronsAbove10GeVFlag)
1115     if((EvTag->GetNumOfElectronsAbove10GeV() < fNElectronsAbove10GeVMin) || (EvTag->GetNumOfElectronsAbove10GeV() > fNElectronsAbove10GeVMax))
1116       return kFALSE; 
1117   
1118   if(fNElectronsFlag)
1119     if((EvTag->GetNumOfElectrons() < fNElectronsMin) || (EvTag->GetNumOfElectrons() > fNElectronsMax))
1120       return kFALSE; 
1121   
1122   if(fNFWMuonsFlag)
1123     if((EvTag->GetNumOfFWMuons() < fNFWMuonsMin) || (EvTag->GetNumOfFWMuons() > fNFWMuonsMax))
1124       return kFALSE; 
1125   
1126   if(fNMuonsFlag)
1127     if((EvTag->GetNumOfMuons() < fNMuonsMin) || (EvTag->GetNumOfMuons() > fNMuonsMax))
1128       return kFALSE; 
1129   
1130   if(fNPionsFlag)
1131     if((EvTag->GetNumOfPions() < fNPionsMin) || (EvTag->GetNumOfPions() > fNPionsMax))
1132       return kFALSE; 
1133   
1134   if(fNKaonsFlag)
1135     if((EvTag->GetNumOfKaons() < fNKaonsMin) || (EvTag->GetNumOfKaons() > fNKaonsMax))
1136       return kFALSE; 
1137   
1138   if(fNProtonsFlag)
1139     if((EvTag->GetNumOfProtons() < fNProtonsMin) || (EvTag->GetNumOfProtons() > fNProtonsMax))
1140       return kFALSE; 
1141   
1142   if(fNLambdasFlag)
1143     if((EvTag->GetNumOfLambdas() < fNLambdasMin) || (EvTag->GetNumOfLambdas() > fNLambdasMax))
1144       return kFALSE; 
1145   
1146   if(fNPhotonFlag)
1147     if((EvTag->GetNumOfPhotons() < fNPhotonsMin) || (EvTag->GetNumOfPhotons() > fNPhotonsMax))
1148       return kFALSE; 
1149   
1150   if(fNPi0sFlag)
1151     if((EvTag->GetNumOfPi0s() < fNPi0sMin) || (EvTag->GetNumOfPi0s() > fNPi0sMax))
1152       return kFALSE; 
1153   
1154   if(fNNeutronsFlag)
1155     if((EvTag->GetNumOfNeutrons() < fNNeutronsMin) || (EvTag->GetNumOfNeutrons() > fNNeutronsMax))
1156       return kFALSE; 
1157   
1158   if(fNKaon0sFlag)
1159     if((EvTag->GetNumOfKaon0s() < fNKaon0sMin) || (EvTag->GetNumOfKaon0s() > fNKaon0sMax))
1160       return kFALSE; 
1161   
1162   if(fTotalPFlag)
1163     if((EvTag->GetTotalMomentum() < fTotalPMin) || (EvTag->GetTotalMomentum() > fTotalPMax))
1164       return kFALSE; 
1165   
1166   if(fMeanPtFlag)
1167     if((EvTag->GetMeanPt() < fMeanPtMin) || (EvTag->GetMeanPt() > fMeanPtMax))
1168       return kFALSE; 
1169   
1170   if(fTopPtMinFlag)
1171     if((EvTag->GetMaxPt() < fTopPtMin))
1172       return kFALSE; 
1173   
1174   if(fTotalNeutralPFlag)
1175     if((EvTag->GetNeutralTotalMomentum() < fTotalNeutralPMin) || (EvTag->GetNeutralTotalMomentum() > fTotalNeutralPMax))
1176       return kFALSE; 
1177   
1178   if(fMeanNeutralPtFlag)
1179     if((EvTag->GetNeutralMeanPt() < fMeanNeutralPtMin) || (EvTag->GetNeutralMeanPt() >fMeanNeutralPtMax ))
1180       return kFALSE; 
1181   
1182   if(fTopNeutralPtMinFlag)
1183     if((EvTag->GetNeutralMaxPt() < fTopNeutralPtMin))
1184       return kFALSE; 
1185   
1186   if(fEventPlaneAngleFlag)
1187     if((EvTag->GetEventPlaneAngle() < fEventPlaneAngleMin) || (EvTag->GetEventPlaneAngle() > fEventPlaneAngleMax))
1188       return kFALSE; 
1189   
1190   if(fHBTRadiiFlag)
1191     if((EvTag->GetHBTRadii() < fHBTRadiiMin) || (EvTag->GetHBTRadii() > fHBTRadiiMax))
1192       return kFALSE; 
1193   
1194   return kTRUE;
1195 }