ATLAS Offline Software
KinematicSelectorCore.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Dear emacs, this is -*-c++-*-
6 #ifndef ANALYSISUTILS_KINEMATICSELECTORCORE_H
7 #define ANALYSISUTILS_KINEMATICSELECTORCORE_H
8 
23 // STL includes
24 #include <string>
25 #include <cfloat>
26 
27 // Atlas includes
28 #include "AraTool/AraToolBase.h"
30 #include "EventKernel/IParticle.h"
32 
33 static const InterfaceID IID_KinematicSelectorCore("KinematicSelectorCore", 1, 0);
34 
35 
36 class KinematicSelectorCore : public ISelectorCore, virtual public AraToolBase
37 {
38 public:
41 
44 
45 public:
47  static const InterfaceID& interfaceID() { return IID_KinematicSelectorCore; };
48 
49 public:
51  virtual StatusCode initialize();
52 
54  virtual StatusCode finalize();
55 
56 
57 
58 public:
60  bool accept( const IParticle* part ) const;
61 
62 
64  bool accept( const INavigable4Momentum* part ) const;
65 
66 
67 public:
68 
70  inline bool passPt( const INavigable4Momentum* part ) const
71  {
72  double pt = part->pt();
73  if ( (std::isinf(pt) || std::isnan(pt)) ) return true;
74  return ( pt > m_minPt && pt < m_maxPt );
75  };
76 
77 
79  inline bool passP( const INavigable4Momentum* part ) const
80  {
81  double p = part->p();
82  if ( (std::isinf(p) || std::isnan(p)) ) return true;
83  return ( p > m_minP && p < m_maxP );
84  };
85 
86 
88  inline bool passEt( const INavigable4Momentum* part ) const
89  {
90  double et = part->et();
91  if ( (std::isinf(et) || std::isnan(et)) ) return true;
92  return ( et > m_minEt && et < m_maxEt );
93  };
94 
95 
97  inline bool passE( const INavigable4Momentum* part ) const
98  {
99  double e = part->e();
100  if ( (std::isinf(e) || std::isnan(e)) ) return true;
101  return ( e > m_minE && e < m_maxE );
102  };
103 
104 
106  inline bool passEta( const INavigable4Momentum* part ) const
107  {
108  double eta = part->eta();
109  if ( (std::isinf(eta) || std::isnan(eta)) ) return true;
110  return ( eta > m_minEta && eta < m_maxEta );
111  };
112 
113 
115  inline bool passAbsEta( const INavigable4Momentum* part ) const
116  {
117  double eta = part->eta();
118  if ( (std::isinf(eta) || std::isnan(eta)) ) return true;
119  return ( fabs(eta) > m_minAbsEta && fabs(eta) < m_maxAbsEta );
120  };
121 
122 
124  bool passEtaVetoRanges( const INavigable4Momentum* part ) const;
125 
126 
128  inline bool passPhi( const INavigable4Momentum* part ) const
129  {
130  double phi = part->phi();
131  if ( (std::isinf(phi) || std::isnan(phi)) ) return true;
132  return ( phi > m_minPhi && phi < m_maxPhi );
133  };
134 
135 
137  bool passPhiVetoRanges( const INavigable4Momentum* part ) const;
138 
139 
141  inline bool passMass( const INavigable4Momentum* part ) const
142  {
143  double mass = part->m();
144  if ( (std::isinf(mass) || std::isnan(mass)) ) return true;
145  return ( mass > m_minMass && mass < m_maxMass );
146  };
147 
148 
149 
150 public:
152  void setminPt(double val) { m_minPt=val; }
153 
155  double getminPt(void) { return m_minPt; }
156 
158  void setmaxPt(double val) { m_maxPt=val; }
159 
161  double getmaxPt(void) { return m_maxPt; }
162 
163 
165  void setminP(double val) { m_minP=val; }
166 
168  double getminP(void) { return m_minP; }
169 
171  void setmaxP(double val) { m_maxP=val; }
172 
174  double getmaxP(void) { return m_maxP; }
175 
176 
178  void setminEt(double val) { m_minEt=val; }
179 
181  double getminEt(void) { return m_minEt; }
182 
184  void setmaxEt(double val) { m_maxEt=val; }
185 
187  double getmaxEt(void) { return m_maxEt; }
188 
189 
191  void setminE(double val) { m_minE=val; }
192 
194  double getminE(void) { return m_minE; }
195 
197  void setmaxE(double val) { m_maxE=val; }
198 
200  double getmaxE(void) { return m_maxE; }
201 
202 
204  void setminEta(double val) { m_minEta=val; }
205 
207  double getminEta(void) { return m_minEta; }
208 
210  void setmaxEta(double val) { m_maxEta=val; }
211 
213  double getmaxEta(void) { return m_maxEta; }
214 
215 
217  void setminAbsEta(double val) { m_minAbsEta=val; }
218 
220  double getminAbsEta(void) { return m_minAbsEta; }
221 
223  void setmaxAbsEta(double val) { m_maxAbsEta=val; }
224 
226  double getmaxAbsEta(void) { return m_maxAbsEta; }
227 
228 
230  void setEtaVetoRanges(std::string &range) ;
231 
233  std::string getEtaVetoRanges(void) { return m_etaVetoRanges; }
234 
235 
237  void setminPhi(double val) { m_minPhi=val; }
238 
240  double getminPhi(void) { return m_minPhi; }
241 
243  void setmaxPhi(double val) { m_maxPhi=val; }
244 
246  double getmaxPhi(void) { return m_maxPhi; }
247 
248 
250  void setPhiVetoRanges(std::string &range) ;
251 
253  std::string getPhiVetoRanges(void) { return m_phiVetoRanges; }
254 
255 
257  void setminMass(double val) { m_minMass=val; }
258 
260  double getminMass(void) { return m_minMass; }
261 
263  void setmaxMass(double val) { m_maxMass=val; }
264 
266  double getmaxMass(void) { return m_maxMass; }
267 
268 
269  // Private member functions
270 private:
272  void convertStringRange( std::string &range,
273  std::vector<double> &minVals,
274  std::vector<double> &maxVals );
275 
276 
277  // Private class variables
278 private:
280  double m_minPt;
281 
283  double m_maxPt;
284 
285 
287  double m_minP;
288 
290  double m_maxP;
291 
292 
294  double m_minE;
295 
297  double m_maxE;
298 
299 
301  double m_minEt;
302 
304  double m_maxEt;
305 
306 
308  double m_minEta;
309 
311  double m_maxEta;
312 
313 
315  double m_minAbsEta;
316 
318  double m_maxAbsEta;
319 
320 
322  std::string m_etaVetoRanges;
323 
325  std::vector<double> m_minEtaVeto;
326 
328  std::vector<double> m_maxEtaVeto;
329 
330 
332  double m_minPhi;
333 
335  double m_maxPhi;
336 
337 
339  std::string m_phiVetoRanges;
340 
342  std::vector<double> m_minPhiVeto;
343 
345  std::vector<double> m_maxPhiVeto;
346 
347 
349  double m_minMass;
350 
352  double m_maxMass;
353 
354 };
355 
356 #endif // ANALYSISUTILS_KINEMATICSELECTORCORE_H
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
KinematicSelectorCore::passPt
bool passPt(const INavigable4Momentum *part) const
Only transverse momentum cut is applied.
Definition: KinematicSelectorCore.h:70
KinematicSelectorCore::m_maxEtaVeto
std::vector< double > m_maxEtaVeto
eta veto ranges upper range boundaries
Definition: KinematicSelectorCore.h:328
KinematicSelectorCore::m_maxEta
double m_maxEta
maximum eta cut value
Definition: KinematicSelectorCore.h:311
ISelectorCore
Dual use tool (athena/ARA) for any cuts. This is the base class.
Definition: ISelectorCore.h:29
KinematicSelectorCore::passE
bool passE(const INavigable4Momentum *part) const
Only energy cut is applied.
Definition: KinematicSelectorCore.h:97
et
Extra patterns decribing particle interation process.
KinematicSelectorCore::getminMass
double getminMass(void)
get minimum mass cut value
Definition: KinematicSelectorCore.h:260
KinematicSelectorCore::passPhi
bool passPhi(const INavigable4Momentum *part) const
Only phi cut is applied.
Definition: KinematicSelectorCore.h:128
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
KinematicSelectorCore::m_maxPt
double m_maxPt
maximum transverse momentum cut value
Definition: KinematicSelectorCore.h:283
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
KinematicSelectorCore::setmaxMass
void setmaxMass(double val)
set maximum mass cut value
Definition: KinematicSelectorCore.h:263
KinematicSelectorCore::m_maxPhiVeto
std::vector< double > m_maxPhiVeto
phi veto ranges upper range boundaries
Definition: KinematicSelectorCore.h:345
KinematicSelectorCore::passPhiVetoRanges
bool passPhiVetoRanges(const INavigable4Momentum *part) const
Only the phi veto ranges cut is applied.
Definition: KinematicSelectorCore.cxx:204
INavigable4Momentum.h
KinematicSelectorCore::m_minEtaVeto
std::vector< double > m_minEtaVeto
eta veto ranges lower range boundaries
Definition: KinematicSelectorCore.h:325
KinematicSelectorCore::initialize
virtual StatusCode initialize()
Gaudi Service Interface method implementations.
Definition: KinematicSelectorCore.cxx:78
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
KinematicSelectorCore::getmaxAbsEta
double getmaxAbsEta(void)
get maximum |eta| cut value
Definition: KinematicSelectorCore.h:226
KinematicSelectorCore::passP
bool passP(const INavigable4Momentum *part) const
Only momentum cut is applied.
Definition: KinematicSelectorCore.h:79
KinematicSelectorCore::setmaxE
void setmaxE(double val)
set maximum energy cut value
Definition: KinematicSelectorCore.h:197
KinematicSelectorCore::setmaxPhi
void setmaxPhi(double val)
set maximum phi cut value
Definition: KinematicSelectorCore.h:243
KinematicSelectorCore::getminEta
double getminEta(void)
get minimum eta cut value
Definition: KinematicSelectorCore.h:207
KinematicSelectorCore::getminEt
double getminEt(void)
get minimum transverse energy cut value
Definition: KinematicSelectorCore.h:181
KinematicSelectorCore::setPhiVetoRanges
void setPhiVetoRanges(std::string &range)
set phi veto ranges
Definition: KinematicSelectorCore.cxx:319
KinematicSelectorCore::setmaxP
void setmaxP(double val)
set maximum momentum cut value
Definition: KinematicSelectorCore.h:171
test_pyathena.pt
pt
Definition: test_pyathena.py:11
KinematicSelectorCore::passMass
bool passMass(const INavigable4Momentum *part) const
Only mass cut is applied.
Definition: KinematicSelectorCore.h:141
KinematicSelectorCore::passEtaVetoRanges
bool passEtaVetoRanges(const INavigable4Momentum *part) const
Only the eta veto ranges cut is applied.
Definition: KinematicSelectorCore.cxx:175
KinematicSelectorCore::getminP
double getminP(void)
get minimum momentum cut value
Definition: KinematicSelectorCore.h:168
KinematicSelectorCore::getmaxP
double getmaxP(void)
get maximum momentum cut value
Definition: KinematicSelectorCore.h:174
KinematicSelectorCore::getminPhi
double getminPhi(void)
get minimum phi cut value
Definition: KinematicSelectorCore.h:240
IParticle.h
KinematicSelectorCore::m_minE
double m_minE
minimum energy cut value
Definition: KinematicSelectorCore.h:294
KinematicSelectorCore::accept
bool accept(const IParticle *part) const
Main method for IParticle, all cuts are applied (const method)
Definition: KinematicSelectorCore.cxx:124
KinematicSelectorCore::m_etaVetoRanges
std::string m_etaVetoRanges
eta veto ranges string
Definition: KinematicSelectorCore.h:322
KinematicSelectorCore::KinematicSelectorCore
KinematicSelectorCore(PropertyMgr *pmgr=0)
Default contructor.
Definition: KinematicSelectorCore.cxx:33
KinematicSelectorCore::convertStringRange
void convertStringRange(std::string &range, std::vector< double > &minVals, std::vector< double > &maxVals)
Helper function.
Definition: KinematicSelectorCore.cxx:233
dqt_zlumi_pandas.mass
mass
Definition: dqt_zlumi_pandas.py:170
KinematicSelectorCore::m_maxMass
double m_maxMass
maximum mass cut value
Definition: KinematicSelectorCore.h:352
KinematicSelectorCore::setminP
void setminP(double val)
set minimum momentum cut value
Definition: KinematicSelectorCore.h:165
KinematicSelectorCore::m_minPt
double m_minPt
minimum transverse momentum cut value
Definition: KinematicSelectorCore.h:280
KinematicSelectorCore::getmaxE
double getmaxE(void)
get maximum energy cut value
Definition: KinematicSelectorCore.h:200
KinematicSelectorCore::setminPt
void setminPt(double val)
set minimum transverse momentum cut value
Definition: KinematicSelectorCore.h:152
KinematicSelectorCore::m_minEt
double m_minEt
minimum transverse energy cut value
Definition: KinematicSelectorCore.h:301
KinematicSelectorCore::getmaxEt
double getmaxEt(void)
get maximum transverse energy cut value
Definition: KinematicSelectorCore.h:187
KinematicSelectorCore::setminEta
void setminEta(double val)
set minimum eta cut value
Definition: KinematicSelectorCore.h:204
KinematicSelectorCore::getEtaVetoRanges
std::string getEtaVetoRanges(void)
get eta veto ranges
Definition: KinematicSelectorCore.h:233
KinematicSelectorCore::getPhiVetoRanges
std::string getPhiVetoRanges(void)
get phi veto ranges
Definition: KinematicSelectorCore.h:253
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
KinematicSelectorCore::setminE
void setminE(double val)
set minimum energy cut value
Definition: KinematicSelectorCore.h:191
KinematicSelectorCore::~KinematicSelectorCore
virtual ~KinematicSelectorCore()
Default destructor.
Definition: KinematicSelectorCore.h:43
KinematicSelectorCore::setmaxEt
void setmaxEt(double val)
set maximum transverse energy cut value
Definition: KinematicSelectorCore.h:184
KinematicSelectorCore::setmaxPt
void setmaxPt(double val)
set maximum transverse momentum cut value
Definition: KinematicSelectorCore.h:158
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
KinematicSelectorCore::setminMass
void setminMass(double val)
set minimum mass cut value
Definition: KinematicSelectorCore.h:257
KinematicSelectorCore::m_maxAbsEta
double m_maxAbsEta
maximum |eta| cut value
Definition: KinematicSelectorCore.h:318
KinematicSelectorCore::getmaxMass
double getmaxMass(void)
get maximum mass cut value
Definition: KinematicSelectorCore.h:266
KinematicSelectorCore::setminEt
void setminEt(double val)
set minimum transverse energy cut value
Definition: KinematicSelectorCore.h:178
KinematicSelectorCore
Dual use tool (athena/ARA) for kinematic cuts.
Definition: KinematicSelectorCore.h:37
KinematicSelectorCore::passEta
bool passEta(const INavigable4Momentum *part) const
Only eta cut is applied.
Definition: KinematicSelectorCore.h:106
MakeTH3DFromTH2Ds.maxVals
maxVals
Definition: MakeTH3DFromTH2Ds.py:74
KinematicSelectorCore::m_minMass
double m_minMass
minimum mass cut value
Definition: KinematicSelectorCore.h:349
KinematicSelectorCore::setminAbsEta
void setminAbsEta(double val)
set minimum |eta| cut value
Definition: KinematicSelectorCore.h:217
ISelectorCore.h
KinematicSelectorCore::m_minAbsEta
double m_minAbsEta
minimum |eta| cut value
Definition: KinematicSelectorCore.h:315
KinematicSelectorCore::m_minPhi
double m_minPhi
minimum phi cut value
Definition: KinematicSelectorCore.h:332
KinematicSelectorCore::setminPhi
void setminPhi(double val)
set minimum phi cut value
Definition: KinematicSelectorCore.h:237
AraToolBase::PropertyMgr
PropertyHolder< CommonMessaging< implements< IAlgTool, IDataHandleHolder, IProperty, IStateful > > > PropertyMgr
Definition: AraToolBase.h:19
KinematicSelectorCore::finalize
virtual StatusCode finalize()
Gaudi Service Interface method implementations.
Definition: KinematicSelectorCore.cxx:111
KinematicSelectorCore::setmaxAbsEta
void setmaxAbsEta(double val)
set maximum |eta| cut value
Definition: KinematicSelectorCore.h:223
KinematicSelectorCore::passEt
bool passEt(const INavigable4Momentum *part) const
Only transverse energy cut is applied.
Definition: KinematicSelectorCore.h:88
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
KinematicSelectorCore::getminPt
double getminPt(void)
get minimum transverse momentum cut value
Definition: KinematicSelectorCore.h:155
KinematicSelectorCore::passAbsEta
bool passAbsEta(const INavigable4Momentum *part) const
Only |eta| cut is applied.
Definition: KinematicSelectorCore.h:115
AraToolBase.h
KinematicSelectorCore::getminAbsEta
double getminAbsEta(void)
get minimum |eta| cut value
Definition: KinematicSelectorCore.h:220
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
INavigable4Momentum
Definition: INavigable4Momentum.h:21
AraToolBase
Definition: AraToolBase.h:17
KinematicSelectorCore::getminE
double getminE(void)
get minimum energy cut value
Definition: KinematicSelectorCore.h:194
KinematicSelectorCore::getmaxEta
double getmaxEta(void)
get maximum eta cut value
Definition: KinematicSelectorCore.h:213
KinematicSelectorCore::m_minEta
double m_minEta
minimum eta cut value
Definition: KinematicSelectorCore.h:308
KinematicSelectorCore::m_maxPhi
double m_maxPhi
maximum phi cut value
Definition: KinematicSelectorCore.h:335
MakeTH3DFromTH2Ds.minVals
minVals
Definition: MakeTH3DFromTH2Ds.py:73
KinematicSelectorCore::m_maxE
double m_maxE
maximum energy cut value
Definition: KinematicSelectorCore.h:297
KinematicSelectorCore::setEtaVetoRanges
void setEtaVetoRanges(std::string &range)
set eta veto ranges
Definition: KinematicSelectorCore.cxx:300
IParticle
Definition: Event/EventKernel/EventKernel/IParticle.h:43
KinematicSelectorCore::m_minP
double m_minP
minimum momentum cut value
Definition: KinematicSelectorCore.h:287
KinematicSelectorCore::m_phiVetoRanges
std::string m_phiVetoRanges
phi veto ranges string
Definition: KinematicSelectorCore.h:339
KinematicSelectorCore::m_maxP
double m_maxP
maximum momentum cut value
Definition: KinematicSelectorCore.h:290
KinematicSelectorCore::interfaceID
static const InterfaceID & interfaceID()
AlgTool interface methods.
Definition: KinematicSelectorCore.h:47
KinematicSelectorCore::m_minPhiVeto
std::vector< double > m_minPhiVeto
phi veto ranges lower range boundaries
Definition: KinematicSelectorCore.h:342
KinematicSelectorCore::m_maxEt
double m_maxEt
maximum transverse energy cut value
Definition: KinematicSelectorCore.h:304
KinematicSelectorCore::getmaxPt
double getmaxPt(void)
get maximum transverse momentum cut value
Definition: KinematicSelectorCore.h:161
KinematicSelectorCore::setmaxEta
void setmaxEta(double val)
set maximum eta cut value
Definition: KinematicSelectorCore.h:210
KinematicSelectorCore::getmaxPhi
double getmaxPhi(void)
get maximum phi cut value
Definition: KinematicSelectorCore.h:246