]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliEventTagCuts.h
Fixing a memory leak.
[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 //___________________________________________________________________________
20 class AliEventTagCuts : public TObject {
21  public:
22   AliEventTagCuts();
23   ~AliEventTagCuts();
24   void Reset();
25   
26  //____________________________________________________//
27   void SetParticipantsRange(Int_t i1, Int_t i2);
28   void SetImpactParamRange(Float_t r1, Float_t r2);
29   void SetPrimaryVertexXRange(Float_t r1, Float_t r2);
30   void SetPrimaryVertexYRange(Float_t r1, Float_t r2);
31   void SetPrimaryVertexZRange(Float_t r1, Float_t r2);
32   void SetPrimaryVertexFlag(Int_t i);
33
34   void SetPrimaryVertexZErrorRange(Float_t r1, Float_t r2) {fPrimaryVertexZErrorMin = r1; fPrimaryVertexZErrorMax = r2; fPVzErrorFlag = kTRUE;}
35   void SetTriggerMask(ULong64_t trmask) {fTriggerMask = trmask; fTriggerMaskFlag = kTRUE;}
36   void SetTriggerCluster(UChar_t trcluster) {fTriggerCluster = trcluster;fTriggerClusterFlag = kTRUE;}
37
38   void SetZDCNeutr1Range(Float_t r1, Float_t r2);
39   void SetZDCProt1Range(Float_t r1, Float_t r2);
40   void SetZDCEMRange(Float_t r1, Float_t r2);
41   void SetZDCNeutr2Range(Float_t r1, Float_t r2);
42   void SetZDCProt2Range(Float_t r1, Float_t r2);
43   void SetT0VertexZRange(Float_t r1, Float_t r2);
44   void SetMultiplicityRange(Int_t n1, Int_t n2);
45   void SetPosMultiplicityRange(Int_t n1, Int_t n2);
46   void SetNegMultiplicityRange(Int_t n1, Int_t n2);
47   void SetNeutrMultiplicityRange(Int_t n1, Int_t n2);
48   void SetV0sRange(Int_t n1, Int_t n2);
49   void SetCascadesRange(Int_t n1, Int_t n2);
50   void SetKinksRange(Int_t n1, Int_t n2);
51  
52   void SetNumOfPMDTracksRange(Int_t n1, Int_t n2) {fPMDTracksMin = n1; fPMDTracksMax = n2; fPMDTracksFlag = kTRUE;}
53   void SetNumOfFMDTracksRange(Int_t n1, Int_t n2) {fFMDTracksMin = n1; fFMDTracksMax = n2; fFMDTracksFlag = kTRUE;}
54   void SetNumOfPHOSClustersRange(Int_t n1, Int_t n2) {fPHOSClustersMin = n1; fPHOSClustersMax = n2; fPHOSClustersFlag = kTRUE;}
55   void SetNumOfEMCALClustersRange(Int_t n1, Int_t n2) {fEMCALClustersMin = n1; fEMCALClustersMax = n2; fEMCALClustersFlag = kTRUE;}
56   void SetNumOfJetCandidatesRange(Int_t n1, Int_t n2) {fJetCandidatesMin = n1; fJetCandidatesMax = n2; fJetCandidatesFlag = kTRUE;}
57
58   void SetMaxJetEnergy(Float_t r1);
59   void SetMaxNeutralEnergy(Float_t r1);
60   void SetHardPhotonsRange(Int_t i1, Int_t i2);
61   void SetNChargedAbove1GeVRange(Int_t i1, Int_t i2);
62   void SetNChargedAbove3GeVRange(Int_t i1, Int_t i2);
63   void SetNChargedAbove10GeVRange(Int_t i1, Int_t i2);
64   void SetNMuonsAbove1GeVRange(Int_t i1, Int_t i2);
65   void SetNMuonsAbove3GeVRange(Int_t i1, Int_t i2);
66   void SetNMuonsAbove10GeVRange(Int_t i1, Int_t i2);
67   void SetNElectronsAbove1GeVRange(Int_t i1, Int_t i2);
68   void SetNElectronsAbove3GeVRange(Int_t i1, Int_t i2);
69   void SetNElectronsAbove10GeVRange(Int_t i1, Int_t i2);
70   void SetNElectronRange(Int_t n1, Int_t n2);
71   void SetNMuonRange(Int_t n1, Int_t n2);
72   void SetNPionRange(Int_t n1, Int_t n2);
73   void SetNKaonRange(Int_t n1, Int_t n2);
74   void SetNProtonRange(Int_t n1, Int_t n2);
75   void SetNLambdaRange(Int_t n1, Int_t n2);
76   void SetNPhotonRange(Int_t n1, Int_t n2);
77   void SetNPi0Range(Int_t n1, Int_t n2);
78   void SetNNeutronRange(Int_t n1, Int_t n2);
79   void SetNKaon0Range(Int_t n1, Int_t n2); 
80   void SetTotalPRange(Float_t r1, Float_t r2);
81   void SetMeanPtRange(Float_t r1, Float_t r2);
82   void SetMaxPt(Float_t r1);
83   void SetTotalNeutralPRange(Float_t r1, Float_t r2);
84   void SetMeanNeutralPtPRange(Float_t r1, Float_t r2);
85   void SetMaxNeutralPt(Float_t r1);
86   void SetEvPlaneAngleRange(Float_t r1, Float_t r2);
87   void SetHBTRadiiRange(Float_t r1, Float_t r2);
88  
89   Bool_t IsAccepted(AliEventTag *EvTag) const;
90
91   //____________________________________________________//
92  private:
93   Float_t fVxMin, fVxMax;  //Definition of the range of the Vx
94   Bool_t fVxFlag;          //Shows whether this cut is used or not
95   Float_t fVyMin, fVyMax;  //Definition of the range of the Vy
96   Bool_t fVyFlag;          //Shows whether this cut is used or not
97   Float_t fVzMin, fVzMax;  //Definition of the range of the Vz
98   Bool_t fVzFlag;          //Shows whether this cut is used or not
99   Int_t fParticipantsMin, fParticipantMax; //# participants range
100   Bool_t fParticipantsFlag;//Shows whether this cut is used or not
101   Float_t fImpactParamMin, fImpactParamMax; //Impact parameter range
102   Bool_t fImpactParamFlag; //Shows whether this cut is used or not
103   Int_t fPrimaryVertexFlag; //Primary vertex flag: 0->not found, 1->found
104   Bool_t fPVFlag;          //Shows whether this cut is used or not
105
106   Float_t fPrimaryVertexZErrorMin, fPrimaryVertexZErrorMax; //Range of the primary vertex z error
107   Bool_t fPVzErrorFlag;          //Shows whether this cut is used or not
108   ULong64_t fTriggerMask;  //trigger mask definition
109   Bool_t fTriggerMaskFlag; //Shows whether this cut is used or not
110   UChar_t fTriggerCluster;  //trigger cluster definition
111   Bool_t fTriggerClusterFlag; //Shows whether this cut is used or not
112   
113   Float_t fZDCNeutron1EnergyMin, fZDCNeutron1EnergyMax; //ZDC min,max - neutron
114   Bool_t fZDCNeutron1EnergyFlag;//Shows whether this cut is used or not
115   Float_t fZDCProton1EnergyMin, fZDCProton1EnergyMax; //ZDC min,max - proton
116   Bool_t fZDCProton1EnergyFlag;//Shows whether this cut is used or not
117   Float_t fZDCNeutron2EnergyMin, fZDCNeutron2EnergyMax; //ZDC min,max - neutron
118   Bool_t fZDCNeutron2EnergyFlag;//Shows whether this cut is used or not
119   Float_t fZDCProton2EnergyMin, fZDCProton2EnergyMax; //ZDC min,max - proton
120   Bool_t fZDCProton2EnergyFlag;//Shows whether this cut is used or not
121   Float_t fZDCEMEnergyMin, fZDCEMEnergyMax; //ZDC min,max - em
122   Bool_t fZDCEMEnergyFlag;//Shows whether this cut is used or not
123   Float_t fT0VertexZMin, fT0VertexZMax; //T0 min, max
124   Bool_t fT0VertexZFlag;//Shows whether this cut is used or not  
125   Int_t fMultMin, fMultMax;  //Definition of the range of the multiplicity
126   Bool_t fMultFlag;//Shows whether this cut is used or not
127   Int_t fMultPosMin, fMultPosMax; //Positive tracks multiplicity range
128   Bool_t fMultPosFlag;//Shows whether this cut is used or not
129   Int_t fMultNegMin, fMultNegMax; //Negative tracks multiplicity range
130   Bool_t fMultNegFlag;//Shows whether this cut is used or not
131   Int_t fMultNeutrMin, fMultNeutrMax; //Neutral tracks multiplicity range
132   Bool_t fMultNeutrFlag;//Shows whether this cut is used or not
133   Int_t fV0sMin, fV0sMax; //Range of V0s
134   Bool_t fV0sFlag;//Shows whether this cut is used or not
135   Int_t fCascadesMin, fCascadesMax; //Range of cascades
136   Bool_t fCascadesFlag;//Shows whether this cut is used or not
137   Int_t fkinksMin, fkinksMax; //Range of kinks
138   Bool_t fkinksFlag;//Shows whether this cut is used or not
139   
140   Int_t fPMDTracksMin, fPMDTracksMax; //Range of PMD tracks
141   Bool_t fPMDTracksFlag;//Shows whether this cut is used or not
142   Int_t fFMDTracksMin, fFMDTracksMax; //Range of FMD tracks
143   Bool_t fFMDTracksFlag;//Shows whether this cut is used or not
144   Int_t fPHOSClustersMin, fPHOSClustersMax; //Range of PHOS clusters
145   Bool_t fPHOSClustersFlag;//Shows whether this cut is used or not
146   Int_t fEMCALClustersMin, fEMCALClustersMax; //Range of EMCAL clusters
147   Bool_t fEMCALClustersFlag;//Shows whether this cut is used or not
148   Int_t fJetCandidatesMin, fJetCandidatesMax; //Range of jet candidates
149   Bool_t fJetCandidatesFlag;//Shows whether this cut is used or not
150
151   Float_t fMaxJetEnergy; //max jet energy info
152   Bool_t fMaxJetEnergyFlag;//Shows whether this cut is used or not
153   
154   Int_t fNHardPhotonsCandidatesMin, fNHardPhotonsCandidatesMax; //Hard photons candidates
155   Bool_t fNHardPhotonsCandidatesFlag;//Shows whether this cut is used or not
156   Float_t fMaxNeutralEnergy; //max neutral energy info
157   Bool_t fMaxNeutralFlag;//Shows whether this cut is used or not  
158   Int_t fChargedAbove1GeVMin, fChargedAbove1GeVMax;//Definition of the range of the number of charged above 1GeV
159   Bool_t fChargedAbove1GeVFlag;//Shows whether this cut is used or not
160   Int_t fChargedAbove3GeVMin, fChargedAbove3GeVMax;//Definition of the range of the number of charged above 3GeV
161   Bool_t fChargedAbove3GeVFlag;//Shows whether this cut is used or not
162   Int_t fChargedAbove10GeVMin, fChargedAbove10GeVMax;//Definition of the range of the number of charged above 10GeV
163   Bool_t fChargedAbove10GeVFlag;//Shows whether this cut is used or not
164   Int_t fMuonsAbove1GeVMin, fMuonsAbove1GeVMax;//Definition of the range of the number of muons above 1GeV
165   Bool_t fMuonsAbove1GeVFlag;//Shows whether this cut is used or not
166   Int_t fMuonsAbove3GeVMin, fMuonsAbove3GeVMax;//Definition of the range of the number of muons above 3GeV
167   Bool_t fMuonsAbove3GeVFlag;//Shows whether this cut is used or not
168   Int_t fMuonsAbove10GeVMin, fMuonsAbove10GeVMax; //Definition of the range of the number of muons above 10GeV
169   Bool_t fMuonsAbove10GeVFlag;//Shows whether this cut is used or not
170   Int_t fElectronsAbove1GeVMin, fElectronsAbove1GeVMax;//Definition of the range of the number of electorns above 1GeV
171   Bool_t fElectronsAbove1GeVFlag;//Shows whether this cut is used or not
172   Int_t fElectronsAbove3GeVMin, fElectronsAbove3GeVMax;//Definition of the range of the number of electorns above 3GeV
173   Bool_t fElectronsAbove3GeVFlag;//Shows whether this cut is used or not
174   Int_t fElectronsAbove10GeVMin,fElectronsAbove10GeVMax;//Definition of the range of the number of electorns above 10GeV
175   Bool_t fElectronsAbove10GeVFlag;//Shows whether this cut is used or not  
176   Int_t fElectronsMin, fElectronsMax; //Number of electrons range
177   Bool_t fElectronsFlag;//Shows whether this cut is used or not
178   Int_t fMuonsMin, fMuonsMax;  //Number of muons range
179   Bool_t fMuonsFlag;//Shows whether this cut is used or not
180   Int_t fPionsMin, fPionsMax; //Number of pions range
181   Bool_t fPionsFlag;//Shows whether this cut is used or not
182   Int_t fKaonsMin, fKaonsMax; //Number of kaons range
183   Bool_t fKaonsFlag;//Shows whether this cut is used or not
184   Int_t fProtonsMin, fProtonsMax; //Number of protons range
185   Bool_t fProtonsFlag;//Shows whether this cut is used or not
186   Int_t fLambdasMin, fLambdasMax; //Number of lambdas range
187   Bool_t fLambdasFlag;//Shows whether this cut is used or not
188   Int_t fPhotonsMin, fPhotonsMax; //Number of photons range
189   Bool_t fPhotonFlag;//Shows whether this cut is used or not
190   Int_t fPi0sMin, fPi0sMax; //Number of Pi0s range
191   Bool_t fPi0sFlag;//Shows whether this cut is used or not
192   Int_t fNeutronsMin, fNeutronsMax; //Number of neutrons range
193   Bool_t fNeutronsFlag;//Shows whether this cut is used or not
194   Int_t fKaon0sMin, fKaon0sMax; //Number of K0s range
195   Bool_t fKaon0sFlag;//Shows whether this cut is used or not  
196   Float_t fTotalPMin, fTotalPMax; //Range of the sum of the momentum per event
197   Bool_t fTotalPFlag;//Shows whether this cut is used or not
198   Float_t fMeanPtMin, fMeanPtMax; //Range of mean Pt per event
199   Bool_t fMeanPtFlag;//Shows whether this cut is used or not
200   Float_t fMaxPt; //Max Pt for each event
201   Bool_t fMaxPtFlag;//Shows whether this cut is used or not
202   Float_t fTotalNeutralPMin, fTotalNeutralPMax; //Sum of the momentum per event for neutral
203   Bool_t fTotalNeutralPFlag;//Shows whether this cut is used or not
204   Float_t fMeanNeutralPtMin, fMeanNeutralPtMax; //Mean Pt per event for neutral
205   Bool_t fMeanNeutralPtFlag;//Shows whether this cut is used or not
206   Float_t fMaxNeutralPt; //Max Pt for each event for neutral
207   Bool_t fMaxNeutralPtFlag;//Shows whether this cut is used or not
208   Float_t fEventPlaneAngleMin, fEventPlaneAngleMax; //event plane info
209   Bool_t fEventPlaneAngleFlag;//Shows whether this cut is used or not
210   Float_t fHBTRadiiMin, fHBTRadiiMax; //HBT info
211   Bool_t fHBTRadiiFlag;//Shows whether this cut is used or not
212
213   ClassDef(AliEventTagCuts, 2)
214 };
215
216 #endif