]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliEventTagCuts.cxx
Parameters of miscalibration in the head of the file (Marian)
[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 "AliEventTag.h"
26 #include "AliEventTagCuts.h"
27
28 ClassImp(AliEventTagCuts)
29
30
31 //___________________________________________________________________________
32 AliEventTagCuts::AliEventTagCuts() :
33   TObject(),
34
35
36
37   
38   fVxMin(-1000.0), fVxMax(1000.0), 
39   fVxFlag(kFALSE),
40   fVyMin(-1000.0), fVyMax(1000.0),  
41   fVyFlag(kFALSE),
42   fVzMin(-1000.0), fVzMax(1000.0),
43   fVzFlag(kFALSE),
44   fParticipantsMin(-1), fParticipantMax(10000),
45   fParticipantsFlag(kFALSE),
46   fImpactParamMin(-1.0), fImpactParamMax(1000.0),
47   fImpactParamFlag(kFALSE),
48   fPrimaryVertexFlag(1),
49   fPVFlag(kFALSE),
50
51   fPrimaryVertexZErrorMin(-10000.), fPrimaryVertexZErrorMax(10000.),
52   fPVzErrorFlag(kFALSE),
53   fTriggerMask(0),
54   fTriggerMaskFlag(kFALSE),
55   fTriggerCluster(0),
56   fTriggerClusterFlag(kFALSE),
57  
58   fZDCNeutron1EnergyMin(-1.0), fZDCNeutron1EnergyMax(100000.0),
59   fZDCNeutron1EnergyFlag(kFALSE),
60   fZDCProton1EnergyMin(-1.0), fZDCProton1EnergyMax(100000.0),
61   fZDCProton1EnergyFlag(kFALSE),
62   fZDCNeutron2EnergyMin(-1.0), fZDCNeutron2EnergyMax(100000.0),
63   fZDCNeutron2EnergyFlag(kFALSE),
64   fZDCProton2EnergyMin(-1.0), fZDCProton2EnergyMax(100000.0),
65   fZDCProton2EnergyFlag(kFALSE),
66   fZDCEMEnergyMin(-1.0), fZDCEMEnergyMax(100000.0),
67   fZDCEMEnergyFlag(kFALSE),
68   fT0VertexZMin(-10000.0), fT0VertexZMax(10000.0),  
69   fT0VertexZFlag(kFALSE),
70   fMultMin(0), fMultMax(100000),  
71   fMultFlag(kFALSE),
72   fMultPosMin(-1), fMultPosMax(100000),
73   fMultPosFlag(kFALSE),
74   fMultNegMin(-1), fMultNegMax(100000),
75   fMultNegFlag(kFALSE),
76   fMultNeutrMin(-1), fMultNeutrMax(100000),
77   fMultNeutrFlag(kFALSE),
78   fV0sMin(-1), fV0sMax(1000000),
79   fV0sFlag(kFALSE),
80   fCascadesMin(-1), fCascadesMax(100000),
81   fCascadesFlag(kFALSE),
82   fkinksMin(-1), fkinksMax(1000000),
83   fkinksFlag(kFALSE),
84
85   fPMDTracksMin(-1), fPMDTracksMax(100000),
86   fPMDTracksFlag(kFALSE),
87   fFMDTracksMin(-1), fFMDTracksMax(100000),
88   fFMDTracksFlag(kFALSE),
89   fPHOSClustersMin(-1), fPHOSClustersMax(100000),
90   fPHOSClustersFlag(kFALSE),
91   fEMCALClustersMin(-1), fEMCALClustersMax(100000),
92   fEMCALClustersFlag(kFALSE),
93   fJetCandidatesMin(-1), fJetCandidatesMax(100000),
94   fJetCandidatesFlag(kFALSE),
95
96   fMaxJetEnergy(-1.0), 
97   fMaxJetEnergyFlag(kFALSE),
98   fNHardPhotonsCandidatesMin(-1), fNHardPhotonsCandidatesMax(100000),
99   fNHardPhotonsCandidatesFlag(kFALSE),
100   fMaxNeutralEnergy(-1.0), 
101   fMaxNeutralFlag(kFALSE),
102   fChargedAbove1GeVMin(-1), fChargedAbove1GeVMax(100000),
103   fChargedAbove1GeVFlag(kFALSE),
104   fChargedAbove3GeVMin(-1), fChargedAbove3GeVMax(100000),
105   fChargedAbove3GeVFlag(kFALSE),
106   fChargedAbove10GeVMin(-1), fChargedAbove10GeVMax(100000),
107   fChargedAbove10GeVFlag(kFALSE),
108   fMuonsAbove1GeVMin(-1), fMuonsAbove1GeVMax(100000),
109   fMuonsAbove1GeVFlag(kFALSE),
110   fMuonsAbove3GeVMin(-1), fMuonsAbove3GeVMax(100000),
111   fMuonsAbove3GeVFlag(kFALSE),
112   fMuonsAbove10GeVMin(-1), fMuonsAbove10GeVMax(100000), 
113   fMuonsAbove10GeVFlag(kFALSE),
114   fElectronsAbove1GeVMin(-1), fElectronsAbove1GeVMax(100000),
115   fElectronsAbove1GeVFlag(kFALSE),
116   fElectronsAbove3GeVMin(-1), fElectronsAbove3GeVMax(100000),
117   fElectronsAbove3GeVFlag(kFALSE),
118   fElectronsAbove10GeVMin(-1), fElectronsAbove10GeVMax(100000),
119   fElectronsAbove10GeVFlag(kFALSE),
120   fElectronsMin(-1), fElectronsMax(100000),
121   fElectronsFlag(kFALSE),
122   fMuonsMin(-1), fMuonsMax(100000),
123   fMuonsFlag(kFALSE),
124   fPionsMin(-1), fPionsMax(100000),
125   fPionsFlag(kFALSE),
126   fKaonsMin(-1), fKaonsMax(100000),
127   fKaonsFlag(kFALSE),
128   fProtonsMin(-1), fProtonsMax(100000),
129   fProtonsFlag(kFALSE),
130   fLambdasMin(-1), fLambdasMax(100000),
131   fLambdasFlag(kFALSE),
132   fPhotonsMin(-1), fPhotonsMax(100000),
133   fPhotonFlag(kFALSE),
134   fPi0sMin(-1), fPi0sMax(100000), 
135   fPi0sFlag(kFALSE),
136   fNeutronsMin(-1), fNeutronsMax(100000), 
137   fNeutronsFlag(kFALSE),
138   fKaon0sMin(-1), fKaon0sMax(100000), 
139   fKaon0sFlag(kFALSE),
140   fTotalPMin(-1.0), fTotalPMax(1000000.0),
141   fTotalPFlag(kFALSE),
142   fMeanPtMin(-1.0), fMeanPtMax(100000.0),
143   fMeanPtFlag(kFALSE),
144   fMaxPt(-1.0),
145   fMaxPtFlag(kFALSE),
146   fTotalNeutralPMin(-1.0), fTotalNeutralPMax(1000000.0),   
147   fTotalNeutralPFlag(kFALSE),
148   fMeanNeutralPtMin(-1.0), fMeanNeutralPtMax(1000000.0), 
149   fMeanNeutralPtFlag(kFALSE),
150   fMaxNeutralPt(-1.0), 
151   fMaxNeutralPtFlag(kFALSE),
152   fEventPlaneAngleMin(-10000000.0), fEventPlaneAngleMax(10000000.0), 
153   fEventPlaneAngleFlag(kFALSE),
154   fHBTRadiiMin(-1.0), fHBTRadiiMax(100000.0), 
155   fHBTRadiiFlag(kFALSE)
156 {
157   //Default constructor which calls the Reset method.
158   Reset();
159 }
160
161 //___________________________________________________________________________
162 AliEventTagCuts::~AliEventTagCuts() {  
163   //Defaut destructor.
164 }
165
166 //___________________________________________________________________________
167 void AliEventTagCuts::Reset() {
168   //Sets dummy values to every private member.
169   fVxFlag = kFALSE;
170   fVyFlag = kFALSE;
171   fVzFlag = kFALSE;
172   fParticipantsFlag = kFALSE;
173   fImpactParamFlag = kFALSE;
174   fPVFlag = kFALSE;
175
176   fPVzErrorFlag = kFALSE;
177   fTriggerMaskFlag = kFALSE;
178   fTriggerClusterFlag = kFALSE;
179
180   fZDCNeutron1EnergyFlag = kFALSE;
181   fZDCProton1EnergyFlag = kFALSE;
182   fZDCNeutron2EnergyFlag = kFALSE;
183   fZDCProton2EnergyFlag = kFALSE;
184   fZDCEMEnergyFlag = kFALSE;
185   fT0VertexZFlag = kFALSE;
186   fMultFlag = kFALSE;
187   fMultPosFlag = kFALSE;
188   fMultNegFlag = kFALSE;
189   fMultNeutrFlag = kFALSE;
190   fV0sFlag = kFALSE;
191   fCascadesFlag = kFALSE;
192   fkinksFlag = kFALSE;
193
194   fPMDTracksFlag = kFALSE;
195   fFMDTracksFlag = kFALSE;
196   fPHOSClustersFlag = kFALSE;
197   fEMCALClustersFlag = kFALSE;
198   fJetCandidatesFlag = kFALSE;
199
200   fMaxJetEnergyFlag = kFALSE;
201   fNHardPhotonsCandidatesFlag = kFALSE;
202   fMaxNeutralFlag = kFALSE;
203   fChargedAbove1GeVFlag = kFALSE;
204   fChargedAbove3GeVFlag = kFALSE;
205   fChargedAbove10GeVFlag = kFALSE;
206   fMuonsAbove1GeVFlag = kFALSE;
207   fMuonsAbove3GeVFlag = kFALSE;
208   fMuonsAbove10GeVFlag = kFALSE;
209   fElectronsAbove1GeVFlag = kFALSE;
210   fElectronsAbove3GeVFlag = kFALSE;
211   fElectronsAbove10GeVFlag = kFALSE;
212   fElectronsFlag = kFALSE;
213   fMuonsFlag = kFALSE;
214   fPionsFlag = kFALSE;
215   fKaonsFlag = kFALSE;
216   fProtonsFlag = kFALSE;
217   fLambdasFlag = kFALSE;
218   fPhotonFlag = kFALSE;
219   fPi0sFlag = kFALSE;
220   fNeutronsFlag = kFALSE;
221   fKaon0sFlag = kFALSE;
222   fTotalPFlag = kFALSE;
223   fMeanPtFlag = kFALSE;
224   fMaxPtFlag = kFALSE;
225   fTotalNeutralPFlag = kFALSE;
226   fMeanNeutralPtFlag = kFALSE;
227   fMaxNeutralPtFlag = kFALSE;
228   fEventPlaneAngleFlag = kFALSE;
229   fHBTRadiiFlag = kFALSE;
230   
231   fVxMin = -1000.0; fVxMax = 1000.0; 
232   fVyMin = -1000.0; fVyMax = 1000.0;  
233   fVzMin = -1000.0; fVzMax = 1000.0;
234   fParticipantsMin = -1; fParticipantMax = 10000;
235   fImpactParamMin = -1.0; fImpactParamMax = 1000.0;
236   fPrimaryVertexFlag = 1;
237
238   fPrimaryVertexZErrorMin = -10000.; fPrimaryVertexZErrorMax = 10000.;
239   fTriggerMask = 0;
240   fTriggerCluster = 0;
241  
242   fZDCNeutron1EnergyMin = -1.0; fZDCNeutron1EnergyMax = 100000.0;
243   fZDCProton1EnergyMin = -1.0; fZDCProton1EnergyMax = 100000.0;
244   fZDCNeutron2EnergyMin = -1.0; fZDCNeutron2EnergyMax = 100000.0;
245   fZDCProton2EnergyMin = -1.0; fZDCProton2EnergyMax = 100000.0;
246   fZDCEMEnergyMin = -1.0; fZDCEMEnergyMax = 100000.0;
247   fT0VertexZMin = -10000.0; fT0VertexZMax = 10000.0;  
248   fMultMin = 0; fMultMax = 100000;  
249   fMultPosMin = -1; fMultPosMax = 100000;
250   fMultNegMin = -1; fMultNegMax = 100000;
251   fMultNeutrMin = -1; fMultNeutrMax = 100000;
252   fV0sMin = -1; fV0sMax = 1000000;
253   fCascadesMin = -1; fCascadesMax = 100000;
254   fkinksMin = -1; fkinksMax = 1000000;
255
256   fPMDTracksMin = -1, fPMDTracksMax = 100000;
257   fFMDTracksMin = -1, fFMDTracksMax = 100000;
258   fPHOSClustersMin = -1, fPHOSClustersMax = 100000;
259   fEMCALClustersMin = -1, fEMCALClustersMax = 100000;
260   fJetCandidatesMin = -1, fJetCandidatesMax = 100000;
261
262   fMaxJetEnergy = -1.0; 
263   fNHardPhotonsCandidatesMin = -1; fNHardPhotonsCandidatesMax = 100000;
264   fMaxNeutralEnergy = -1.0; 
265   fChargedAbove1GeVMin = -1; fChargedAbove1GeVMax = 100000;
266   fChargedAbove3GeVMin = -1; fChargedAbove3GeVMax = 100000;
267   fChargedAbove10GeVMin = -1; fChargedAbove10GeVMax = 100000;
268   fMuonsAbove1GeVMin = -1; fMuonsAbove1GeVMax = 100000;
269   fMuonsAbove3GeVMin = -1; fMuonsAbove3GeVMax = 100000;
270   fMuonsAbove10GeVMin = -1; fMuonsAbove10GeVMax = 100000; 
271   fElectronsAbove1GeVMin = -1; fElectronsAbove1GeVMax = 100000;
272   fElectronsAbove3GeVMin = -1; fElectronsAbove3GeVMax = 100000;
273   fElectronsAbove10GeVMin = -1; fElectronsAbove10GeVMax = 100000;
274   fElectronsMin = -1; fElectronsMax = 100000;
275   fMuonsMin = -1; fMuonsMax = 100000;
276   fPionsMin = -1; fPionsMax = 100000;
277   fKaonsMin = -1; fKaonsMax = 100000;
278   fProtonsMin = -1; fProtonsMax = 100000;
279   fLambdasMin = -1; fLambdasMax = 100000;
280   fPhotonsMin = -1; fPhotonsMax = 100000;
281   fPi0sMin = -1; fPi0sMax = 100000; 
282   fNeutronsMin = -1; fNeutronsMax = 100000; 
283   fKaon0sMin = -1; fKaon0sMax = 100000; 
284   fTotalPMin = -1.0; fTotalPMax = 1000000.0;
285   fMeanPtMin = -1.0; fMeanPtMax = 100000.0;
286   fMaxPt = -1.0; fTotalNeutralPMin = -1.0;
287   fTotalNeutralPMax = 1000000.0;   
288   fMeanNeutralPtMin = -1.0; fMeanNeutralPtMax = 1000000.0; 
289   fMaxNeutralPt = -1.0; 
290   fEventPlaneAngleMin = -10000000.0; fEventPlaneAngleMax = 10000000.0; 
291   fHBTRadiiMin = -1.0; fHBTRadiiMax = 100000.0; 
292 }
293
294 //___________________________________________________________________________
295 void AliEventTagCuts::SetPrimaryVertexXRange(Float_t r1, Float_t r2) {
296   //Sets the primary vertex x range 
297   //and the corresponding flag to kTRUE if the cut is used.
298   fVxMin = r1;
299   fVxMax = r2; 
300   fVxFlag = kTRUE;
301 }
302
303 //___________________________________________________________________________
304 void AliEventTagCuts::SetPrimaryVertexYRange(Float_t r1, Float_t r2) {
305   //Sets the primary vertex y range 
306   //and the corresponding flag to kTRUE if the cut is used.
307   fVyMin = r1;
308   fVyMax = r2; 
309   fVyFlag = kTRUE;
310 }
311
312 //___________________________________________________________________________
313 void AliEventTagCuts::SetPrimaryVertexZRange(Float_t r1, Float_t r2) {
314   //Sets the primary vertex z range 
315   //and the corresponding flag to kTRUE if the cut is used.
316   fVzMin = r1;
317   fVzMax = r2; 
318   fVzFlag = kTRUE;
319 }
320
321 //___________________________________________________________________________
322 void AliEventTagCuts::SetMultiplicityRange(Int_t n1, Int_t n2) {
323   //Sets the primary multiplicity range 
324   //and the corresponding flag to kTRUE if the cut is used.
325   fMultMin = n1;
326   fMultMax = n2;
327   fMultFlag = kTRUE;
328 }
329
330 //___________________________________________________________________________
331 void AliEventTagCuts::SetParticipantsRange(Int_t i1, Int_t i2) {
332   //Sets the number of participants range 
333   //and the corresponding flag to kTRUE if the cut is used.
334   fParticipantsMin = i1;
335   fParticipantMax = i2;
336   fParticipantsFlag = kTRUE;
337 }
338
339 //___________________________________________________________________________
340 void AliEventTagCuts::SetImpactParamRange(Float_t r1, Float_t r2) {
341   //Sets the impact parameter range 
342   //and the corresponding flag to kTRUE if the cut is used.
343   fImpactParamMin = r1;
344   fImpactParamMax = r2;
345   fImpactParamFlag = kTRUE;
346 }
347  
348
349 //___________________________________________________________________________
350 void AliEventTagCuts::SetPrimaryVertexFlag(Int_t i) {
351   //Sets the primary vertex flag cut 
352   //and the corresponding flag to kTRUE if the cut is used.
353   fPrimaryVertexFlag = i;
354   fPVFlag = kTRUE;
355 }
356
357 //___________________________________________________________________________
358 void AliEventTagCuts::SetZDCNeutr1Range(Float_t r1, Float_t r2) {
359   //Sets the ZDC's neutron energy range 
360   //and the corresponding flag to kTRUE if the cut is used.
361   fZDCNeutron1EnergyMin = r1;
362   fZDCNeutron1EnergyMax = r2;
363   fZDCNeutron1EnergyFlag = kTRUE;
364 }
365
366 //___________________________________________________________________________
367 void AliEventTagCuts::SetZDCProt1Range(Float_t r1, Float_t r2) {
368   //Sets the ZDC's proton energy range 
369   //and the corresponding flag to kTRUE if the cut is used.
370   fZDCProton1EnergyMin = r1;
371   fZDCProton1EnergyMax = r2;
372   fZDCProton1EnergyFlag = kTRUE;
373 }
374 //___________________________________________________________________________
375 void AliEventTagCuts::SetZDCNeutr2Range(Float_t r1, Float_t r2) {
376   //Sets the ZDC's neutron energy range 
377   //and the corresponding flag to kTRUE if the cut is used.
378   fZDCNeutron2EnergyMin = r1;
379   fZDCNeutron2EnergyMax = r2;
380   fZDCNeutron2EnergyFlag = kTRUE;
381 }
382 //___________________________________________________________________________
383 void AliEventTagCuts::SetZDCProt2Range(Float_t r1, Float_t r2) {
384   //Sets the ZDC's proton energy range 
385   //and the corresponding flag to kTRUE if the cut is used.
386   fZDCProton2EnergyMin = r1;
387   fZDCProton2EnergyMax = r2;
388   fZDCProton2EnergyFlag = kTRUE;
389 }
390 //___________________________________________________________________________
391 void AliEventTagCuts::SetZDCEMRange(Float_t r1, Float_t r2) {
392   //Sets the ZDC's e/m energy range 
393   //and the corresponding flag to kTRUE if the cut is used.
394   fZDCEMEnergyMin = r1;
395   fZDCEMEnergyMax = r2;
396   fZDCEMEnergyFlag = kTRUE;
397 }
398
399 //___________________________________________________________________________
400 void AliEventTagCuts::SetT0VertexZRange(Float_t r1, Float_t r2) {
401   //Sets the T0's Vz range 
402   //and the corresponding flag to kTRUE if the cut is used.
403   fT0VertexZMin = r1;
404   fT0VertexZMax = r2;
405   fT0VertexZFlag = kTRUE;
406 }
407
408 //___________________________________________________________________________
409 void AliEventTagCuts::SetPosMultiplicityRange(Int_t n1, Int_t n2) {
410   //Sets the positive multiplicity range 
411   //and the corresponding flag to kTRUE if the cut is used.
412   fMultPosMin = n1;
413   fMultPosMax = n2;
414   fMultPosFlag = kTRUE;
415 }
416
417
418 //___________________________________________________________________________
419 void AliEventTagCuts::SetNegMultiplicityRange(Int_t n1, Int_t n2) {
420   //Sets the negative multiplicity range 
421   //and the corresponding flag to kTRUE if the cut is used.
422   fMultNegMin = n1;
423   fMultNegMax = n2;
424   fMultNegFlag = kTRUE;
425 }
426
427
428 //___________________________________________________________________________
429 void AliEventTagCuts::SetNeutrMultiplicityRange(Int_t n1, Int_t n2) {
430   //Sets the neutral particle multiplicity range 
431   //and the corresponding flag to kTRUE if the cut is used.
432   fMultNeutrMin = n1;
433   fMultNeutrMax = n2;
434   fMultNeutrFlag = kTRUE;
435 }
436
437 //___________________________________________________________________________
438 void AliEventTagCuts::SetV0sRange(Int_t n1, Int_t n2) {
439   //Sets the v0s multiplicity range 
440   //and the corresponding flag to kTRUE if the cut is used.
441   fV0sMin = n1;
442   fV0sMax = n2;
443   fV0sFlag = kTRUE;
444 }
445
446 //___________________________________________________________________________
447 void AliEventTagCuts::SetCascadesRange(Int_t n1, Int_t n2) {
448   //Sets the cascades multiplicity range 
449   //and the corresponding flag to kTRUE if the cut is used.
450   fCascadesMin = n1;
451   fCascadesMax = n2;
452   fCascadesFlag = kTRUE;
453 }
454
455 //___________________________________________________________________________
456 void AliEventTagCuts::SetKinksRange(Int_t n1, Int_t n2) {
457   //Sets the kinks multipliicity range 
458   //and the corresponding flag to kTRUE if the cut is used.
459   fkinksMin = n1;
460   fkinksMax = n2;
461   fkinksFlag = kTRUE;
462 }
463
464 //___________________________________________________________________________
465 void AliEventTagCuts::SetMaxJetEnergy(Float_t r1) {
466   //Sets the lower limit of the maximum jet energy
467   //and the corresponding flag to kTRUE if the cut is used.
468   fMaxJetEnergy = r1; 
469   fMaxJetEnergyFlag = kTRUE;
470 }
471 //___________________________________________________________________________
472 void AliEventTagCuts::SetMaxNeutralEnergy(Float_t r1) {
473   //Sets the lower limit of the maximum neutral jet energy
474   //and the corresponding flag to kTRUE if the cut is used.
475   fMaxNeutralEnergy = r1; 
476   fMaxNeutralFlag = kTRUE;
477 }
478 //___________________________________________________________________________
479 void AliEventTagCuts::SetHardPhotonsRange(Int_t i1, Int_t i2) {
480   //Sets the hard photons multiplicity range
481   //and the corresponding flag to kTRUE if the cut is used.
482   fNHardPhotonsCandidatesMin = i1;
483   fNHardPhotonsCandidatesMax = i2;
484   fNHardPhotonsCandidatesFlag = kTRUE;
485
486
487 //___________________________________________________________________________
488 void AliEventTagCuts::SetNChargedAbove1GeVRange(Int_t i1, Int_t i2) {
489   //Sets the number of charged above 1GeV range
490   //and the corresponding flag to kTRUE if the cut is used.
491   fChargedAbove1GeVMin = i1;
492   fChargedAbove1GeVMax = i2;
493   fChargedAbove1GeVFlag = kTRUE;
494 }
495
496 //___________________________________________________________________________
497  void AliEventTagCuts::SetNChargedAbove3GeVRange(Int_t i1, Int_t i2) {
498   //Sets the number of charged above 3GeV range
499   //and the corresponding flag to kTRUE if the cut is used.
500   fChargedAbove3GeVMin = i1;
501   fChargedAbove3GeVMax = i2;
502   fChargedAbove3GeVFlag = kTRUE;
503 }
504
505
506 //___________________________________________________________________________
507 void AliEventTagCuts::SetNChargedAbove10GeVRange(Int_t i1, Int_t i2) {
508   //Sets the number of charged above 10GeV range
509   //and the corresponding flag to kTRUE if the cut is used.
510   fChargedAbove10GeVMin = i1;
511   fChargedAbove10GeVMax = i2;
512   fChargedAbove10GeVFlag = kTRUE;
513 }
514
515
516 //___________________________________________________________________________
517 void AliEventTagCuts::SetNMuonsAbove1GeVRange(Int_t i1, Int_t i2) {
518   //Sets the number of muons above 1GeV range
519   //and the corresponding flag to kTRUE if the cut is used.
520   fMuonsAbove1GeVMin = i1;
521   fMuonsAbove1GeVMax = i2;
522   fMuonsAbove1GeVFlag = kTRUE;
523 }
524
525
526 //___________________________________________________________________________
527 void AliEventTagCuts::SetNMuonsAbove3GeVRange(Int_t i1, Int_t i2) {
528   //Sets the number of muons above 3GeV range
529   //and the corresponding flag to kTRUE if the cut is used.
530   fMuonsAbove3GeVMin = i1;
531   fMuonsAbove3GeVMax = i2;
532   fMuonsAbove3GeVFlag = kTRUE;
533
534
535 //___________________________________________________________________________
536 void AliEventTagCuts::SetNMuonsAbove10GeVRange(Int_t i1, Int_t i2) {
537   //Sets the number of muons above 10GeV range
538   //and the corresponding flag to kTRUE if the cut is used.
539   fMuonsAbove10GeVMin = i1;
540   fMuonsAbove10GeVMax = i2; 
541   fMuonsAbove10GeVFlag = kTRUE;
542 }
543
544
545 //___________________________________________________________________________
546 void AliEventTagCuts::SetNElectronsAbove1GeVRange(Int_t i1, Int_t i2) {
547   //Sets the number of electrons above 1GeV range
548   //and the corresponding flag to kTRUE if the cut is used.
549   fElectronsAbove1GeVMin = i1;
550   fElectronsAbove1GeVMax = i2;
551   fElectronsAbove1GeVFlag = kTRUE;
552 }
553
554 //___________________________________________________________________________
555 void AliEventTagCuts::SetNElectronsAbove3GeVRange(Int_t i1, Int_t i2) {
556   //Sets the number of electrons above 3GeV range
557   //and the corresponding flag to kTRUE if the cut is used.
558   fElectronsAbove3GeVMin = i1;
559   fElectronsAbove3GeVMax = i2;
560   fElectronsAbove3GeVFlag = kTRUE;
561 }
562
563 //___________________________________________________________________________
564 void AliEventTagCuts::SetNElectronsAbove10GeVRange(Int_t i1, Int_t i2) {  
565   //Sets the number of electrons above 10GeV range
566   //and the corresponding flag to kTRUE if the cut is used.
567   fElectronsAbove10GeVMin = i1;
568   fElectronsAbove10GeVMax = i2;
569   fElectronsAbove10GeVFlag = kTRUE;
570 }
571 //___________________________________________________________________________
572 void AliEventTagCuts::SetNElectronRange(Int_t n1, Int_t n2) {
573   //Sets the electron multiplicity range
574   //and the corresponding flag to kTRUE if the cut is used.
575   fElectronsMin = n1;
576   fElectronsMax = n2;
577   fElectronsFlag = kTRUE;
578 }
579 //___________________________________________________________________________
580 void AliEventTagCuts::SetNMuonRange(Int_t n1, Int_t n2) {
581   //Sets the muon multiplicity range
582   //and the corresponding flag to kTRUE if the cut is used.
583   fMuonsMin = n1;
584   fMuonsMax = n2;
585   fMuonsFlag = kTRUE;
586 }
587
588 //___________________________________________________________________________
589 void AliEventTagCuts::SetNPionRange(Int_t n1, Int_t n2) {
590   //Sets the pion multiplicity range
591   //and the corresponding flag to kTRUE if the cut is used.
592   fPionsMin = n1;
593   fPionsMax = n2;
594   fPionsFlag = kTRUE;
595
596
597 //___________________________________________________________________________
598 void AliEventTagCuts::SetNKaonRange(Int_t n1, Int_t n2) {
599   //Sets the kaon multiplicity range
600   //and the corresponding flag to kTRUE if the cut is used.
601   fKaonsMin = n1;
602   fKaonsMax = n2;
603   fKaonsFlag = kTRUE;
604 }
605
606 //___________________________________________________________________________
607 void AliEventTagCuts::SetNProtonRange(Int_t n1, Int_t n2) {
608   //Sets the proton multiplicity range
609   //and the corresponding flag to kTRUE if the cut is used.
610   fProtonsMin = n1;
611   fProtonsMax = n2;
612   fProtonsFlag = kTRUE;
613
614
615 //___________________________________________________________________________
616 void AliEventTagCuts::SetNLambdaRange(Int_t n1, Int_t n2) {
617   //Sets the lambda multiplicity range
618   //and the corresponding flag to kTRUE if the cut is used.
619   fLambdasMin = n1;
620   fLambdasMax = n2;
621   fLambdasFlag = kTRUE;
622
623 //___________________________________________________________________________
624 void AliEventTagCuts::SetNPhotonRange(Int_t n1, Int_t n2) {
625   //Sets the photon multiplicity range
626   //and the corresponding flag to kTRUE if the cut is used.
627   fPhotonsMin = n1;
628   fPhotonsMax = n2;
629   fPhotonFlag = kTRUE;
630
631 //___________________________________________________________________________
632 void AliEventTagCuts::SetNPi0Range(Int_t n1, Int_t n2) {
633   //Sets the pi0 multiplicity range
634   //and the corresponding flag to kTRUE if the cut is used.
635   fPi0sMin = n1;
636   fPi0sMax = n2; 
637   fPi0sFlag = kTRUE;
638 }  
639
640 //___________________________________________________________________________
641 void AliEventTagCuts::SetNNeutronRange(Int_t n1, Int_t n2) {
642   //Sets the neutron multiplicity range
643   //and the corresponding flag to kTRUE if the cut is used.
644   fNeutronsMin = n1;
645   fNeutronsMax = n2; 
646   fNeutronsFlag = kTRUE;
647 }
648
649 //___________________________________________________________________________
650 void AliEventTagCuts::SetNKaon0Range(Int_t n1, Int_t n2) {  
651   //Sets the K0s multiplicity range
652   //and the corresponding flag to kTRUE if the cut is used.
653   fKaon0sMin = n1;
654   fKaon0sMax = n2; 
655   fKaon0sFlag = kTRUE;
656 }
657
658 //___________________________________________________________________________
659 void AliEventTagCuts::SetTotalPRange(Float_t r1, Float_t r2) {
660   //Sets the total momentum range
661   //and the corresponding flag to kTRUE if the cut is used.
662   fTotalPMin = r1;
663   fTotalPMax = r2;
664   fTotalPFlag = kTRUE;
665 }
666
667 //___________________________________________________________________________
668 void AliEventTagCuts::SetMeanPtRange(Float_t r1, Float_t r2) {
669   //Sets the mean Pt range
670   //and the corresponding flag to kTRUE if the cut is used.
671   fMeanPtMin = r1;
672   fMeanPtMax = r2;
673   fMeanPtFlag = kTRUE;
674 }  
675
676 //___________________________________________________________________________
677 void AliEventTagCuts::SetMaxPt(Float_t r1) {
678   //Sets the lower limit of the max Pt value
679   //and the corresponding flag to kTRUE if the cut is used.
680   fMaxPt = r1; 
681   fMaxPtFlag = kTRUE;
682 }
683
684 //___________________________________________________________________________
685 void AliEventTagCuts::SetTotalNeutralPRange(Float_t r1, Float_t r2) {  
686   //Sets the total momentum of neutral particles range
687   //and the corresponding flag to kTRUE if the cut is used.
688   fTotalNeutralPMin =r1 ;
689   fTotalNeutralPMax = r2;  
690   fTotalNeutralPFlag = kTRUE;
691 }
692 //___________________________________________________________________________
693 void AliEventTagCuts::SetMeanNeutralPtPRange(Float_t r1, Float_t r2) {  
694   //Sets the mean Pt of neutral particles range
695   //and the corresponding flag to kTRUE if the cut is used.
696   fMeanNeutralPtMin = r1;
697   fMeanNeutralPtMax = r2; 
698   fMeanNeutralPtFlag = kTRUE;
699
700 //___________________________________________________________________________
701 void AliEventTagCuts::SetMaxNeutralPt(Float_t r1) {  
702   //Sets the lower limit of the maximum Pt of neutral particles
703   //and the corresponding flag to kTRUE if the cut is used.
704   fMaxNeutralPt = r1; 
705   fMaxNeutralPtFlag = kTRUE;
706 }
707
708 //___________________________________________________________________________
709 void AliEventTagCuts::SetEvPlaneAngleRange(Float_t r1, Float_t r2) {
710   //Sets the event plane range
711   //and the corresponding flag to kTRUE if the cut is used.
712   fEventPlaneAngleMin = r1;
713   fEventPlaneAngleMax = r2; 
714   fEventPlaneAngleFlag = kTRUE;
715 }
716
717 //___________________________________________________________________________
718 void AliEventTagCuts::SetHBTRadiiRange(Float_t r1, Float_t r2) {
719   //Sets the HBT radii range
720   //and the corresponding flag to kTRUE if the cut is used.
721   fHBTRadiiMin = r1;
722   fHBTRadiiMax = r2; 
723   fHBTRadiiFlag = kTRUE;
724 }
725
726 //___________________________________________________________________________
727 Bool_t AliEventTagCuts::IsAccepted(AliEventTag *EvTag) const {
728   //Returns true if the event is accepted otherwise false.
729   if(fVzFlag)
730     if((EvTag->GetVertexZ() < fVzMin) || (EvTag->GetVertexZ() > fVzMax))
731       return kFALSE;
732   
733   if(fVyFlag)
734     if((EvTag->GetVertexY() < fVyMin) || (EvTag->GetVertexY() > fVyMax))
735       return kFALSE;
736   
737   if(fVxFlag)
738     if((EvTag->GetVertexX() < fVxMin) || (EvTag->GetVertexX() > fVxMax))
739       return kFALSE;
740   
741   if(fParticipantsFlag)
742     if((EvTag->GetNumOfParticipants() < fParticipantsMin) || (EvTag->GetNumOfParticipants() > fParticipantMax))
743       return kFALSE; 
744   
745   if(fImpactParamFlag)
746     if((EvTag->GetImpactParameter() < fImpactParamMin) || (EvTag->GetImpactParameter() > fImpactParamMax))
747       return kFALSE; 
748   
749   if(fPVFlag)
750     if((EvTag->GetVertexFlag() != fPrimaryVertexFlag))
751       return kFALSE; 
752   
753   if(fPVzErrorFlag)
754     if((EvTag->GetVertexZError() < fPrimaryVertexZErrorMin) || (EvTag->GetVertexZError() > fPrimaryVertexZErrorMax))
755       return kFALSE; 
756   if(fTriggerMaskFlag)
757     if((EvTag->GetTriggerMask() != fTriggerMask))
758       return kFALSE; 
759   if(fTriggerClusterFlag)
760     if((EvTag->GetTriggerMask() != fTriggerMask))
761       return kFALSE; 
762
763   if(fZDCNeutron1EnergyFlag)
764     if((EvTag->GetZDCNeutron1Energy() < fZDCNeutron1EnergyMin) || (EvTag->GetZDCNeutron1Energy() > fZDCNeutron1EnergyMax))
765       return kFALSE; 
766   
767   if(fZDCProton1EnergyFlag)
768     if((EvTag->GetZDCProton1Energy() < fZDCProton1EnergyMin) || (EvTag->GetZDCProton1Energy() > fZDCProton1EnergyMax))
769       return kFALSE; 
770   
771   if(fZDCNeutron2EnergyFlag)
772     if((EvTag->GetZDCNeutron2Energy() < fZDCNeutron2EnergyMin) || (EvTag->GetZDCNeutron2Energy() > fZDCNeutron2EnergyMax))
773       return kFALSE; 
774   
775   if(fZDCProton2EnergyFlag)
776     if((EvTag->GetZDCProton2Energy() < fZDCProton2EnergyMin) || (EvTag->GetZDCProton2Energy() > fZDCProton2EnergyMax))
777       return kFALSE; 
778   
779   if(fZDCEMEnergyFlag)
780     if((EvTag->GetZDCEMEnergy() < fZDCEMEnergyMin) || (EvTag->GetZDCEMEnergy() > fZDCEMEnergyMax))
781       return kFALSE; 
782   
783   if(fT0VertexZFlag)
784     if((EvTag->GetT0VertexZ() < fT0VertexZMin) || (EvTag->GetT0VertexZ() > fT0VertexZMax))
785       return kFALSE; 
786   
787   if(fMultFlag)
788     if((EvTag->GetNumOfTracks() < fMultMin) || (EvTag->GetNumOfTracks() > fMultMax))
789       return kFALSE; 
790   if(fMultPosFlag)
791     if((EvTag->GetNumOfPosTracks() < fMultPosMin) || (EvTag->GetNumOfPosTracks() > fMultPosMax))
792       return kFALSE; 
793   
794   if(fMultNegFlag)
795     if((EvTag->GetNumOfNegTracks() < fMultNegMin) || (EvTag->GetNumOfNegTracks() > fMultNegMax))
796       return kFALSE; 
797   
798   if(fMultNeutrFlag)
799     if((EvTag->GetNumOfNeutrTracks() < fMultNeutrMin) || (EvTag->GetNumOfNeutrTracks() > fMultNeutrMax))
800       return kFALSE; 
801   
802   if(fV0sFlag)
803     if((EvTag->GetNumOfV0s() < fV0sMin) || (EvTag->GetNumOfV0s() > fV0sMax))
804       return kFALSE; 
805   
806   if(fCascadesFlag)
807     if((EvTag->GetNumOfCascades() < fCascadesMin) || (EvTag->GetNumOfCascades() > fCascadesMax))
808       return kFALSE; 
809   
810   if(fkinksFlag)
811     if((EvTag->GetNumOfKinks() < fkinksMin) || (EvTag->GetNumOfKinks() > fkinksMax))
812       return kFALSE; 
813
814
815   if(fPMDTracksFlag)
816     if((EvTag->GetNumOfPMDTracks() < fPMDTracksMin) || (EvTag->GetNumOfPMDTracks() > fPMDTracksMax))
817       return kFALSE; 
818   if(fFMDTracksFlag)
819     if((EvTag->GetNumOfFMDTracks() < fFMDTracksMin) || (EvTag->GetNumOfFMDTracks() > fFMDTracksMax))
820       return kFALSE; 
821   if(fPHOSClustersFlag)
822     if((EvTag->GetNumOfPHOSClusters() < fPHOSClustersMin) || (EvTag->GetNumOfPHOSClusters() > fPHOSClustersMax))
823       return kFALSE; 
824   if(fEMCALClustersFlag)
825     if((EvTag->GetNumOfEMCALClusters() < fEMCALClustersMin) || (EvTag->GetNumOfEMCALClusters() > fEMCALClustersMax))
826       return kFALSE; 
827   if(fJetCandidatesFlag)
828     if((EvTag->GetNumOfJetCandidates() < fJetCandidatesMin) || (EvTag->GetNumOfJetCandidates() > fJetCandidatesMax))
829       return kFALSE; 
830
831
832   if(fMaxJetEnergyFlag)
833     if((EvTag->GetMaxJetEnergy() < fMaxJetEnergy))
834       return kFALSE; 
835   
836   if(fNHardPhotonsCandidatesFlag)
837     if((EvTag->GetNumOfHardPhotonsCandidates() < fNHardPhotonsCandidatesMin) || (EvTag->GetNumOfHardPhotonsCandidates() > fNHardPhotonsCandidatesMax))
838       return kFALSE; 
839   
840   if(fMaxNeutralFlag)
841     if((EvTag->GetMaxNeutralEnergy() < fMaxNeutralEnergy))
842       return kFALSE; 
843   
844   if(fChargedAbove1GeVFlag)
845     if((EvTag->GetNumOfChargedAbove1GeV() < fChargedAbove1GeVMin) || (EvTag->GetNumOfChargedAbove1GeV() > fChargedAbove1GeVMax))
846       return kFALSE; 
847   
848   if(fChargedAbove3GeVFlag)
849     if((EvTag->GetNumOfChargedAbove3GeV() < fChargedAbove3GeVMin) || (EvTag->GetNumOfChargedAbove3GeV() > fChargedAbove3GeVMax))
850       return kFALSE; 
851   
852   if(fChargedAbove10GeVFlag)
853     if((EvTag->GetNumOfChargedAbove10GeV() < fChargedAbove10GeVMin) || (EvTag->GetNumOfChargedAbove10GeV() > fChargedAbove10GeVMax))
854       return kFALSE; 
855   
856   if(fMuonsAbove1GeVFlag)
857     if((EvTag->GetNumOfMuonsAbove1GeV() < fMuonsAbove1GeVMin) || (EvTag->GetNumOfMuonsAbove1GeV() > fMuonsAbove1GeVMax))
858       return kFALSE; 
859   
860   if(fMuonsAbove3GeVFlag)
861     if((EvTag->GetNumOfMuonsAbove3GeV() < fMuonsAbove3GeVMin) || (EvTag->GetNumOfMuonsAbove3GeV() > fMuonsAbove3GeVMax))
862       return kFALSE; 
863   
864   if(fMuonsAbove10GeVFlag)
865     if((EvTag->GetNumOfMuonsAbove10GeV() < fMuonsAbove10GeVMin) || (EvTag->GetNumOfMuonsAbove10GeV() > fMuonsAbove10GeVMax))
866       return kFALSE; 
867   
868   if(fElectronsAbove1GeVFlag)
869     if((EvTag->GetNumOfElectronsAbove1GeV()  < fElectronsAbove1GeVMin) || (EvTag->GetNumOfElectronsAbove1GeV()  > fElectronsAbove1GeVMax))
870       return kFALSE; 
871   
872   if(fElectronsAbove3GeVFlag)
873     if((EvTag->GetNumOfElectronsAbove3GeV() < fElectronsAbove3GeVMin) || (EvTag->GetNumOfElectronsAbove3GeV() > fElectronsAbove3GeVMax))
874       return kFALSE; 
875   
876   if(fElectronsAbove10GeVFlag)
877     if((EvTag->GetNumOfElectronsAbove10GeV() < fElectronsAbove10GeVMin) || (EvTag->GetNumOfElectronsAbove10GeV() > fElectronsAbove10GeVMax))
878       return kFALSE; 
879   
880   if(fElectronsFlag)
881     if((EvTag->GetNumOfElectrons() < fElectronsMin) || (EvTag->GetNumOfElectrons() > fElectronsMax))
882       return kFALSE; 
883   
884   if(fMuonsFlag)
885     if((EvTag->GetNumOfMuons() < fMuonsMin) || (EvTag->GetNumOfMuons() > fMuonsMax))
886       return kFALSE; 
887   
888   if(fPionsFlag)
889     if((EvTag->GetNumOfPions() < fPionsMin) || (EvTag->GetNumOfPions() > fPionsMax))
890       return kFALSE; 
891   
892   if(fKaonsFlag)
893     if((EvTag->GetNumOfKaons() < fKaonsMin) || (EvTag->GetNumOfKaons() > fKaonsMax))
894       return kFALSE; 
895   
896   if(fProtonsFlag)
897     if((EvTag->GetNumOfProtons() < fProtonsMin) || (EvTag->GetNumOfProtons() > fProtonsMax))
898       return kFALSE; 
899   
900   if(fLambdasFlag)
901     if((EvTag->GetNumOfLambdas() < fLambdasMin) || (EvTag->GetNumOfLambdas() > fLambdasMax))
902       return kFALSE; 
903   
904   if(fPhotonFlag)
905     if((EvTag->GetNumOfPhotons() < fPhotonsMin) || (EvTag->GetNumOfPhotons() > fPhotonsMax))
906       return kFALSE; 
907   
908   if(fPi0sFlag)
909     if((EvTag->GetNumOfPi0s() < fPi0sMin) || (EvTag->GetNumOfPi0s() > fPi0sMax))
910       return kFALSE; 
911   
912   if(fNeutronsFlag)
913     if((EvTag->GetNumOfNeutrons() < fNeutronsMin) || (EvTag->GetNumOfNeutrons() > fNeutronsMax))
914       return kFALSE; 
915   
916   if(fKaon0sFlag)
917     if((EvTag->GetNumOfKaon0s() < fKaon0sMin) || (EvTag->GetNumOfKaon0s() > fKaon0sMax))
918       return kFALSE; 
919   
920   if(fTotalPFlag)
921     if((EvTag->GetTotalMomentum() < fTotalPMin) || (EvTag->GetTotalMomentum() > fTotalPMax))
922       return kFALSE; 
923   
924   if(fMeanPtFlag)
925     if((EvTag->GetMeanPt() < fMeanPtMin) || (EvTag->GetMeanPt() > fMeanPtMax))
926       return kFALSE; 
927   
928   if(fMaxPtFlag)
929     if((EvTag->GetMaxPt() < fMaxPt))
930       return kFALSE; 
931   
932   if(fTotalNeutralPFlag)
933     if((EvTag->GetNeutralTotalMomentum() < fTotalNeutralPMin) || (EvTag->GetNeutralTotalMomentum() > fTotalNeutralPMax))
934       return kFALSE; 
935   
936   if(fMeanNeutralPtFlag)
937     if((EvTag->GetNeutralMeanPt() < fMeanNeutralPtMin) || (EvTag->GetNeutralMeanPt() >fMeanNeutralPtMax ))
938       return kFALSE; 
939   
940   if(fMaxNeutralPtFlag)
941     if((EvTag->GetNeutralMaxPt() < fMaxNeutralPt))
942       return kFALSE; 
943   
944   if(fEventPlaneAngleFlag)
945     if((EvTag->GetEventPlaneAngle() < fEventPlaneAngleMin) || (EvTag->GetEventPlaneAngle() > fEventPlaneAngleMax))
946       return kFALSE; 
947   
948   if(fHBTRadiiFlag)
949     if((EvTag->GetHBTRadii() < fHBTRadiiMin) || (EvTag->GetHBTRadii() > fHBTRadiiMax))
950       return kFALSE; 
951   
952   return kTRUE;
953 }