]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliEventTagCuts.h
New classes for selection of events using their tags (P.Christakoglou)
[u/mrichter/AliRoot.git] / STEER / AliEventTagCuts.h
1 #ifndef ALIEVENTTAGCUTS_H
2 #define ALIEVENTTAGCUTS_H
3 /*  See cxx source for full Copyright notice */
4
5
6 /* $Id$ */
7
8 //-------------------------------------------------------------------------
9 //                       Class AliEventTagCuts
10 //   This is the class for the cuts in event tags
11 //
12 //    Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
13 //-------------------------------------------------------------------------
14
15 #include <TObject.h>
16
17 class AliEventTag;
18
19 class AliEventTagCuts : public TObject
20 {
21  public:
22   AliEventTagCuts();
23   
24   ~AliEventTagCuts();
25
26   void Reset();
27   
28   void SetParticipantsRange(Int_t i1, Int_t i2);
29   void SetImpactParamRange(Float_t r1, Float_t r2);
30
31   void SetPrimaryVertexXRange(Float_t r1, Float_t r2);
32   void SetPrimaryVertexYRange(Float_t r1, Float_t r2);
33   void SetPrimaryVertexZRange(Float_t r1, Float_t r2);
34
35   void SetPrimaryVertexFlag(Int_t i);
36
37   void SetZDCNeutrRange(Float_t r1, Float_t r2);
38   void SetZDCProtRange(Float_t r1, Float_t r2);
39   void SetZDCEMRange(Float_t r1, Float_t r2);
40   void SetT0VertexZRange(Float_t r1, Float_t r2);
41
42   void SetMultiplicityRange(Int_t n1, Int_t n2);
43   void SetPosMultiplicityRange(Int_t n1, Int_t n2);
44   void SetNegMultiplicityRange(Int_t n1, Int_t n2);
45   void SetNeutrMultiplicityRange(Int_t n1, Int_t n2);
46   void SetV0sRange(Int_t n1, Int_t n2);
47   void SetCascadesRange(Int_t n1, Int_t n2);
48   void SetKinksRange(Int_t n1, Int_t n2);
49  
50   void SetMaxJetEnergy(Float_t r1);
51   void SetMaxNeutralEnergy(Float_t r1);
52   void SetHardPhotonsRange(Int_t i1, Int_t i2);
53  
54   void SetNChargedAbove1GeVRange(Int_t i1, Int_t i2);
55   void SetNChargedAbove3GeVRange(Int_t i1, Int_t i2);
56   void SetNChargedAbove10GeVRange(Int_t i1, Int_t i2);
57   void SetNMuonsAbove1GeVRange(Int_t i1, Int_t i2);
58   void SetNMuonsAbove3GeVRange(Int_t i1, Int_t i2);
59   void SetNMuonsAbove10GeVRange(Int_t i1, Int_t i2);
60   void SetNElectronsAbove1GeVRange(Int_t i1, Int_t i2);
61   void SetNElectronsAbove3GeVRange(Int_t i1, Int_t i2);
62   void SetNElectronsAbove10GeVRange(Int_t i1, Int_t i2);
63  
64   void SetNElectronRange(Int_t n1, Int_t n2);
65   void SetNMuonRange(Int_t n1, Int_t n2);
66   void SetNPionRange(Int_t n1, Int_t n2);
67   void SetNKaonRange(Int_t n1, Int_t n2);
68   void SetNProtonRange(Int_t n1, Int_t n2);
69   void SetNLambdaRange(Int_t n1, Int_t n2);
70   void SetNPhotonRange(Int_t n1, Int_t n2);
71   void SetNPi0Range(Int_t n1, Int_t n2);
72   void SetNNeutronRange(Int_t n1, Int_t n2);
73   void SetNKaon0Range(Int_t n1, Int_t n2);
74  
75   void SetTotalPRange(Float_t r1, Float_t r2);
76   void SetMeanPtRange(Float_t r1, Float_t r2);
77   void SetMaxPt(Float_t r1);
78   void SetTotalNeutralPRange(Float_t r1, Float_t r2);
79   void SetMeanNeutralPtPRange(Float_t r1, Float_t r2);
80   void SetMaxNeutralPt(Float_t r1);
81   void SetEvPlaneAngleRange(Float_t r1, Float_t r2);
82   void SetHBTRadiiRange(Float_t r1, Float_t r2);
83  
84   Bool_t IsAccepted(AliEventTag *EvTag) const;
85
86  private:
87   Float_t fVxMin, fVxMax;  //Definition of the range of the Vx
88   Bool_t fVxFlag;          //Shows whether this cut is used or not
89   Float_t fVyMin, fVyMax;  //Definition of the range of the Vy
90   Bool_t fVyFlag;          //Shows whether this cut is used or not
91   Float_t fVzMin, fVzMax;  //Definition of the range of the Vz
92   Bool_t fVzFlag;          //Shows whether this cut is used or not
93   Int_t fParticipantsMin, fParticipantMax; //# participants range
94   Bool_t fParticipantsFlag;//Shows whether this cut is used or not
95   Float_t fImpactParamMin, fImpactParamMax; //Impact parameter range
96   Bool_t fImpactParamFlag; //Shows whether this cut is used or not
97   Int_t fPrimaryVertexFlag; //Primary vertex flag: 0->not found, 1->found
98   Bool_t fPVFlag;          //Shows whether this cut is used or not
99   
100   Float_t fZDCNeutronEnergyMin, fZDCNeutronEnergyMax; //ZDC min,max - neutron
101   Bool_t fZDCNeutronEnergyFlag;//Shows whether this cut is used or not
102   Float_t fZDCProtonEnergyMin, fZDCProtonEnergyMax; //ZDC min,max - proton
103   Bool_t fZDCProtonEnergyFlag;//Shows whether this cut is used or not
104   Float_t fZDCEMEnergyMin, fZDCEMEnergyMax; //ZDC min,max - em
105   Bool_t fZDCEMEnergyFlag;//Shows whether this cut is used or not
106   Float_t fT0VertexZMin, fT0VertexZMax; //T0 min, max
107   Bool_t fT0VertexZFlag;//Shows whether this cut is used or not
108   
109   Int_t fMultMin, fMultMax;  //Definition of the range of the multiplicity
110   Bool_t fMultFlag;//Shows whether this cut is used or not
111   Int_t fMultPosMin, fMultPosMax; //Positive tracks multiplicity range
112   Bool_t fMultPosFlag;//Shows whether this cut is used or not
113   Int_t fMultNegMin, fMultNegMax; //Negative tracks multiplicity range
114   Bool_t fMultNegFlag;//Shows whether this cut is used or not
115   Int_t fMultNeutrMin, fMultNeutrMax; //Neutral tracks multiplicity range
116   Bool_t fMultNeutrFlag;//Shows whether this cut is used or not
117   Int_t fV0sMin, fV0sMax; //Range of V0s
118   Bool_t fV0sFlag;//Shows whether this cut is used or not
119   Int_t fCascadesMin, fCascadesMax; //Range of cascades
120   Bool_t fCascadesFlag;//Shows whether this cut is used or not
121   Int_t fkinksMin, fkinksMax; //Range of kinks
122   Bool_t fkinksFlag;//Shows whether this cut is used or not
123   
124   Float_t fMaxJetEnergy; //max jet energy info
125   Bool_t fMaxJetEnergyFlag;//Shows whether this cut is used or not
126   
127   Int_t fNHardPhotonsCandidatesMin, fNHardPhotonsCandidatesMax; //Hard photons candidates
128   Bool_t fNHardPhotonsCandidatesFlag;//Shows whether this cut is used or not
129   Float_t fMaxNeutralEnergy; //max neutral energy info
130   Bool_t fMaxNeutralFlag;//Shows whether this cut is used or not
131   
132   Int_t fChargedAbove1GeVMin, fChargedAbove1GeVMax;//Definition of the range of the number of charged above 1GeV
133   Bool_t fChargedAbove1GeVFlag;//Shows whether this cut is used or not
134   Int_t fChargedAbove3GeVMin, fChargedAbove3GeVMax;//Definition of the range of the number of charged above 3GeV
135   Bool_t fChargedAbove3GeVFlag;//Shows whether this cut is used or not
136   Int_t fChargedAbove10GeVMin, fChargedAbove10GeVMax;//Definition of the range of the number of charged above 10GeV
137   Bool_t fChargedAbove10GeVFlag;//Shows whether this cut is used or not
138   Int_t fMuonsAbove1GeVMin, fMuonsAbove1GeVMax;//Definition of the range of the number of muons above 1GeV
139   Bool_t fMuonsAbove1GeVFlag;//Shows whether this cut is used or not
140   Int_t fMuonsAbove3GeVMin, fMuonsAbove3GeVMax;//Definition of the range of the number of muons above 3GeV
141   Bool_t fMuonsAbove3GeVFlag;//Shows whether this cut is used or not
142   Int_t fMuonsAbove10GeVMin, fMuonsAbove10GeVMax; //Definition of the range of the number of muons above 10GeV
143   Bool_t fMuonsAbove10GeVFlag;//Shows whether this cut is used or not
144   Int_t fElectronsAbove1GeVMin, fElectronsAbove1GeVMax;//Definition of the range of the number of electorns above 1GeV
145   Bool_t fElectronsAbove1GeVFlag;//Shows whether this cut is used or not
146   Int_t fElectronsAbove3GeVMin, fElectronsAbove3GeVMax;//Definition of the range of the number of electorns above 3GeV
147   Bool_t fElectronsAbove3GeVFlag;//Shows whether this cut is used or not
148   Int_t fElectronsAbove10GeVMin,fElectronsAbove10GeVMax;//Definition of the range of the number of electorns above 10GeV
149   Bool_t fElectronsAbove10GeVFlag;//Shows whether this cut is used or not
150   
151   Int_t fElectronsMin, fElectronsMax; //Number of electrons range
152   Bool_t fElectronsFlag;//Shows whether this cut is used or not
153   Int_t fMuonsMin, fMuonsMax;  //Number of muons range
154   Bool_t fMuonsFlag;//Shows whether this cut is used or not
155   Int_t fPionsMin, fPionsMax; //Number of pions range
156   Bool_t fPionsFlag;//Shows whether this cut is used or not
157   Int_t fKaonsMin, fKaonsMax; //Number of kaons range
158   Bool_t fKaonsFlag;//Shows whether this cut is used or not
159   Int_t fProtonsMin, fProtonsMax; //Number of protons range
160   Bool_t fProtonsFlag;//Shows whether this cut is used or not
161   Int_t fLambdasMin, fLambdasMax; //Number of lambdas range
162   Bool_t fLambdasFlag;//Shows whether this cut is used or not
163   Int_t fPhotonsMin, fPhotonsMax; //Number of photons range
164   Bool_t fPhotonFlag;//Shows whether this cut is used or not
165   Int_t fPi0sMin, fPi0sMax; //Number of Pi0s range
166   Bool_t fPi0sFlag;//Shows whether this cut is used or not
167   Int_t fNeutronsMin, fNeutronsMax; //Number of neutrons range
168   Bool_t fNeutronsFlag;//Shows whether this cut is used or not
169   Int_t fKaon0sMin, fKaon0sMax; //Number of K0s range
170   Bool_t fKaon0sFlag;//Shows whether this cut is used or not
171   
172   Float_t fTotalPMin, fTotalPMax; //Range of the sum of the momentum per event
173   Bool_t fTotalPFlag;//Shows whether this cut is used or not
174   Float_t fMeanPtMin, fMeanPtMax; //Range of mean Pt per event
175   Bool_t fMeanPtFlag;//Shows whether this cut is used or not
176   Float_t fMaxPt; //Max Pt for each event
177   Bool_t fMaxPtFlag;//Shows whether this cut is used or not
178   Float_t fTotalNeutralPMin, fTotalNeutralPMax; //Sum of the momentum per event for neutral
179   Bool_t fTotalNeutralPFlag;//Shows whether this cut is used or not
180   Float_t fMeanNeutralPtMin, fMeanNeutralPtMax; //Mean Pt per event for neutral
181   Bool_t fMeanNeutralPtFlag;//Shows whether this cut is used or not
182   Float_t fMaxNeutralPt; //Max Pt for each event for neutral
183   Bool_t fMaxNeutralPtFlag;//Shows whether this cut is used or not
184   Float_t fEventPlaneAngleMin, fEventPlaneAngleMax; //event plane info
185   Bool_t fEventPlaneAngleFlag;//Shows whether this cut is used or not
186   Float_t fHBTRadiiMin, fHBTRadiiMax; //HBT info
187   Bool_t fHBTRadiiFlag;//Shows whether this cut is used or not
188
189   ClassDef(AliEventTagCuts, 1)
190 } ;
191
192 #endif