ATLAS Offline Software
Loading...
Searching...
No Matches
MomentumFilter< T > Class Template Reference

MomentumFilter can filter objects upon their four-momentum properties. More...

#include <MomentumFilter.h>

Inheritance diagram for MomentumFilter< T >:
Collaboration diagram for MomentumFilter< T >:

Public Member Functions

 MomentumFilter ()
 Default constructor:
 MomentumFilter (const MomentumFilter< T > &filter)
 Copy constructor:
virtual ~MomentumFilter ()
 Destructor:
MomentumFilter< T > & operator= (const MomentumFilter< T > &rhs)
 Assignment operator:
virtual bool isAccepted (const T *element) const
 Main filter method.
double pxMin () const
 Returns the minimum px required by the filter.
double pxMax () const
 Returns the maximum px required by the filter.
double pyMin () const
 Returns the minimum py required by the filter.
double pyMax () const
 Returns the maximum py required by the filter.
double pzMin () const
 Returns the minimum pz required by the filter.
double pzMax () const
 Returns the maximum pz required by the filter.
double eneMin () const
 Returns the minimum energy required by the filter.
double eneMax () const
 Returns the maximum energy required by the filter.
double etaMin () const
 Returns the minimum eta required by the filter.
double etaMax () const
 Returns the maximum eta required by the filter.
double phiMin () const
 Returns the minimum phi required by the filter.
double phiMax () const
 Returns the maximum phi required by the filter.
double massMin () const
 Returns the minimum mass required by the filter.
double massMax () const
 Returns the maximum mass required by the filter.
double ptMin () const
 Returns the minimum pt required by the filter.
double ptMax () const
 Returns the maximum pt required by the filter.
double atlasPhi (const double phi) const
 Convert a phi angle in the ATLAS conventional range -PI->PI inspired from FourMom package (could also use CaloPhiRange)
void setFilter (const IFilterCuts *filter)
 Copies the IFilterCuts properties of the given object to the current IFilterCuts object (ie: it copies all the ranges in px,py,... to the current object)
void setPxMin (const double pxMin)
 Sets the minimum px required by the filter.
void setPxMax (const double pxMax)
 Sets the maximum px required by the filter.
void setPyMin (const double pyMin)
 Sets the minimum py required by the filter.
void setPyMax (const double pyMax)
 Sets the maximum py required by the filter.
void setPzMin (const double pzMin)
 Sets the minimum pz required by the filter.
void setPzMax (const double pzMax)
 Sets the maximum pz required by the filter.
void setEneMin (const double eneMin)
 Sets the minimum energy required by the filter.
void setEneMax (const double eneMax)
 Sets the maximum energy required by the filter.
void setEtaMin (const double etaMin)
 Sets the minimum eta required by the filter.
void setEtaMax (const double etaMax)
 Sets the maximum eta required by the filter.
void setPhiMin (const double phiMin)
 Sets the minimum phi required by the filter.
void setPhiMax (const double phiMax)
 Sets the maximum phi required by the filter.
void setMassMin (const double massMin)
 Sets the minimum mass required by the filter.
void setMassMax (const double massMax)
 Sets the maximum mass required by the filter.
void setPtMin (const double ptMin)
 Sets the minimum pt required by the filter.
void setPtMax (const double ptMax)
 Sets the maximum pt required by the filter.
void setRange (const std::string &name, const double min, const double max)
 Set range for a given momentum component (by name)
bool operator() (const T *element) const

Protected Attributes

FilterRange m_pxRange
 The range in px required by the filter.
FilterRange m_pyRange
 The range in py required by the filter.
FilterRange m_pzRange
 The range in pz required by the filter.
FilterRange m_eneRange
 The range in energy required by the filter.
FilterRange m_etaRange
 The range in eta required by the filter.
PhiFilterRange m_phiRange
 The range in phi required by the filter.
FilterRange m_massRange
 The range in mass required by the filter.
FilterRange m_ptRange
 The range in pt required by the filter.

Detailed Description

template<typename T>
class MomentumFilter< T >

MomentumFilter can filter objects upon their four-momentum properties.

It can select particles based on their px,py,pz and energy as well as their mass, pt, eta or phi. One can requires minimum or maximum cuts (or both).

Definition at line 30 of file MomentumFilter.h.

Constructor & Destructor Documentation

◆ MomentumFilter() [1/2]

template<typename T>
MomentumFilter< T >::MomentumFilter ( )
inline

Default constructor:

Definition at line 274 of file MomentumFilter.h.

274 :
275 IFilterCuts(),
276 IFilter<T>(),
277 m_pxRange(),
278 m_pyRange(),
279 m_pzRange(),
280 m_eneRange(),
281 m_etaRange(),
282 m_phiRange(),
283 m_massRange(),
284 m_ptRange()
285{}
IFilterCuts()
Default constructor:
Definition IFilterCuts.h:69
IFilter()
Default constructor:
Definition IFilter.h:78
FilterRange m_pzRange
The range in pz required by the filter.
FilterRange m_pyRange
The range in py required by the filter.
FilterRange m_massRange
The range in mass required by the filter.
FilterRange m_ptRange
The range in pt required by the filter.
FilterRange m_eneRange
The range in energy required by the filter.
FilterRange m_etaRange
The range in eta required by the filter.
FilterRange m_pxRange
The range in px required by the filter.
PhiFilterRange m_phiRange
The range in phi required by the filter.

◆ MomentumFilter() [2/2]

template<typename T>
MomentumFilter< T >::MomentumFilter ( const MomentumFilter< T > & filter)
inline

Copy constructor:

Definition at line 288 of file MomentumFilter.h.

288 :
290 IFilter<T>( rhs ),
299{}
MomentumFilter can filter objects upon their four-momentum properties.

◆ ~MomentumFilter()

template<typename T>
MomentumFilter< T >::~MomentumFilter ( )
virtual

Destructor:

Definition at line 302 of file MomentumFilter.h.

302{}

Member Function Documentation

◆ atlasPhi()

template<typename T>
double MomentumFilter< T >::atlasPhi ( const double phi) const
inline

Convert a phi angle in the ATLAS conventional range -PI->PI inspired from FourMom package (could also use CaloPhiRange)

Definition at line 457 of file MomentumFilter.h.

458{
459 return m_phiRange.atlasPhi( phi );
460}

◆ eneMax()

template<typename T>
double MomentumFilter< T >::eneMax ( ) const
inline

Returns the maximum energy required by the filter.

Definition at line 403 of file MomentumFilter.h.

404{
405 return m_eneRange.upper();
406}

◆ eneMin()

template<typename T>
double MomentumFilter< T >::eneMin ( ) const
inline

Returns the minimum energy required by the filter.

Definition at line 397 of file MomentumFilter.h.

398{
399 return m_eneRange.lower();
400}

◆ etaMax()

template<typename T>
double MomentumFilter< T >::etaMax ( ) const
inline

Returns the maximum eta required by the filter.

Definition at line 415 of file MomentumFilter.h.

416{
417 return m_etaRange.upper();
418}

◆ etaMin()

template<typename T>
double MomentumFilter< T >::etaMin ( ) const
inline

Returns the minimum eta required by the filter.

Definition at line 409 of file MomentumFilter.h.

410{
411 return m_etaRange.lower();
412}

◆ isAccepted()

template<typename T>
bool MomentumFilter< T >::isAccepted ( const T * element) const
virtual

Main filter method.

This method takes the decision whether or not the filter has to accept the element. It returns true or false accordingly if all the thresholds defined by the set_xyzMin or set_xyzMax are met. If no threshold has been defined, it returns true by default. Ex: a particle will be accepted if its px is as : pxMin() <= px <= pxMax()

Warning : it will not complain if you require a non-consistent set of cuts ( eg: ptMin < 10.*GeV and ptMax < 5.*GeV )

Implements IFilter< T >.

Definition at line 328 of file MomentumFilter.h.

329{
330 bool isAccepted = true;
331
332 if ( m_pxRange.isActive() ) {
333 isAccepted = isAccepted && m_pxRange.isInRange ( element->px() );
334 }
335 if ( m_pyRange.isActive() ) {
336 isAccepted = isAccepted && m_pyRange.isInRange ( element->py() );
337 }
338 if ( m_pzRange.isActive() ) {
339 isAccepted = isAccepted && m_pzRange.isInRange ( element->pz() );
340 }
341 if ( m_eneRange.isActive() ) {
342 isAccepted = isAccepted && m_eneRange.isInRange ( element->e() );
343 }
344 if ( m_etaRange.isActive() ) {
345 isAccepted = isAccepted && m_etaRange.isInRange ( element->eta() );
346 }
347 if ( m_phiRange.isActive() ) {
348 isAccepted = isAccepted && m_phiRange.isInRange( element->phi() );
349 }
350 if ( m_massRange.isActive() ) {
351 isAccepted = isAccepted && m_massRange.isInRange( element->m() );
352 }
353 if ( m_ptRange.isActive() ) {
354 isAccepted = isAccepted && m_ptRange.isInRange ( element->pt() );
355 }
356
357 return isAccepted;
358}
virtual bool isAccepted(const T *element) const
Main filter method.

◆ massMax()

template<typename T>
double MomentumFilter< T >::massMax ( ) const
inline

Returns the maximum mass required by the filter.

Definition at line 439 of file MomentumFilter.h.

440{
441 return m_massRange.upper();
442}

◆ massMin()

template<typename T>
double MomentumFilter< T >::massMin ( ) const
inline

Returns the minimum mass required by the filter.

Definition at line 433 of file MomentumFilter.h.

434{
435 return m_massRange.lower();
436}

◆ operator()()

template<typename T>
bool IFilter< T >::operator() ( const T * element) const
inlineinherited

Definition at line 101 of file IFilter.h.

102{
103 return isAccepted(element);
104}
IFilter is the main interface to the filters.
Definition IFilter.h:31
virtual bool isAccepted(const T *element) const =0
Main filter method.

◆ operator=()

template<typename T>
MomentumFilter< T > & MomentumFilter< T >::operator= ( const MomentumFilter< T > & rhs)
inline

Assignment operator:

Definition at line 306 of file MomentumFilter.h.

307{
308 if ( this != &rhs ) {
319 }
320 return *this;
321}
IFilterCuts & operator=(const IFilterCuts &rhs)
Assignment operator:
Definition IFilterCuts.h:78
IFilter< T > & operator=(const IFilter< T > &rhs)
Assignment operator:
Definition IFilter.h:91

◆ phiMax()

template<typename T>
double MomentumFilter< T >::phiMax ( ) const
inline

Returns the maximum phi required by the filter.

Definition at line 427 of file MomentumFilter.h.

428{
429 return m_phiRange.upper();
430}

◆ phiMin()

template<typename T>
double MomentumFilter< T >::phiMin ( ) const
inline

Returns the minimum phi required by the filter.

Definition at line 421 of file MomentumFilter.h.

422{
423 return m_phiRange.lower();
424}

◆ ptMax()

template<typename T>
double MomentumFilter< T >::ptMax ( ) const
inline

Returns the maximum pt required by the filter.

Definition at line 451 of file MomentumFilter.h.

452{
453 return m_ptRange.upper();
454}

◆ ptMin()

template<typename T>
double MomentumFilter< T >::ptMin ( ) const
inline

Returns the minimum pt required by the filter.

Definition at line 445 of file MomentumFilter.h.

446{
447 return m_ptRange.lower();
448}

◆ pxMax()

template<typename T>
double MomentumFilter< T >::pxMax ( ) const
inline

Returns the maximum px required by the filter.

Definition at line 367 of file MomentumFilter.h.

368{
369 return m_pxRange.upper();
370}

◆ pxMin()

template<typename T>
double MomentumFilter< T >::pxMin ( ) const
inline

Returns the minimum px required by the filter.

Definition at line 361 of file MomentumFilter.h.

362{
363 return m_pxRange.lower();
364}

◆ pyMax()

template<typename T>
double MomentumFilter< T >::pyMax ( ) const
inline

Returns the maximum py required by the filter.

Definition at line 379 of file MomentumFilter.h.

380{
381 return m_pyRange.upper();
382}

◆ pyMin()

template<typename T>
double MomentumFilter< T >::pyMin ( ) const
inline

Returns the minimum py required by the filter.

Definition at line 373 of file MomentumFilter.h.

374{
375 return m_pyRange.lower();
376}

◆ pzMax()

template<typename T>
double MomentumFilter< T >::pzMax ( ) const
inline

Returns the maximum pz required by the filter.

Definition at line 391 of file MomentumFilter.h.

392{
393 return m_pzRange.upper();
394}

◆ pzMin()

template<typename T>
double MomentumFilter< T >::pzMin ( ) const
inline

Returns the minimum pz required by the filter.

Definition at line 385 of file MomentumFilter.h.

386{
387 return m_pzRange.lower();
388}

◆ setEneMax()

template<typename T>
void MomentumFilter< T >::setEneMax ( const double eneMax)
inline

Sets the maximum energy required by the filter.

Definition at line 534 of file MomentumFilter.h.

535{
536 m_eneRange.setMax(eneMax);
537}
double eneMax() const
Returns the maximum energy required by the filter.

◆ setEneMin()

template<typename T>
void MomentumFilter< T >::setEneMin ( const double eneMin)
inline

Sets the minimum energy required by the filter.

Definition at line 528 of file MomentumFilter.h.

529{
530 m_eneRange.setMin(eneMin);
531}
double eneMin() const
Returns the minimum energy required by the filter.

◆ setEtaMax()

template<typename T>
void MomentumFilter< T >::setEtaMax ( const double etaMax)
inline

Sets the maximum eta required by the filter.

Definition at line 546 of file MomentumFilter.h.

547{
548 m_etaRange.setMax(etaMax);
549}
double etaMax() const
Returns the maximum eta required by the filter.

◆ setEtaMin()

template<typename T>
void MomentumFilter< T >::setEtaMin ( const double etaMin)
inline

Sets the minimum eta required by the filter.

Definition at line 540 of file MomentumFilter.h.

541{
542 m_etaRange.setMin(etaMin);
543}
double etaMin() const
Returns the minimum eta required by the filter.

◆ setFilter()

template<typename T>
void MomentumFilter< T >::setFilter ( const IFilterCuts * filter)
virtual

Copies the IFilterCuts properties of the given object to the current IFilterCuts object (ie: it copies all the ranges in px,py,... to the current object)

Implements IFilterCuts.

Definition at line 466 of file MomentumFilter.h.

467{
468 if ( filter ) {
469 try {
471 dynamic_cast<const MomentumFilter<T> *>(filter);
472
473 if ( momFilter ) {
475 } else {
476 MsgStream log( Athena::getMessageSvc(), "MomentumFilter" );
477 log << MSG::ERROR
478 << "Can't dynamic_cast " << typeid(filter).name()
479 << " to a MomentumFilter"
480 << endmsg;
481 }
482 } catch (...) {
483 MsgStream log( Athena::getMessageSvc(), "MomentumFilter" );
484 log << MSG::ERROR
485 << "Can't dynamic_cast " << filter << " to a MomentumFilter"
486 << endmsg;
487 }
488 } //> filter is a valid pointer
489}
MomentumFilter()
Default constructor:
MomentumFilter< T > & operator=(const MomentumFilter< T > &rhs)
Assignment operator:

◆ setMassMax()

template<typename T>
void MomentumFilter< T >::setMassMax ( const double massMax)
inline

Sets the maximum mass required by the filter.

Definition at line 572 of file MomentumFilter.h.

573{
574 m_massRange.setMax(massMax);
575}
double massMax() const
Returns the maximum mass required by the filter.

◆ setMassMin()

template<typename T>
void MomentumFilter< T >::setMassMin ( const double massMin)
inline

Sets the minimum mass required by the filter.

Definition at line 566 of file MomentumFilter.h.

567{
568 m_massRange.setMin(massMin);
569}
double massMin() const
Returns the minimum mass required by the filter.

◆ setPhiMax()

template<typename T>
void MomentumFilter< T >::setPhiMax ( const double phiMax)
inline

Sets the maximum phi required by the filter.

Phi range convention -PI,PI is enforced within the PhiFilterRange

Definition at line 559 of file MomentumFilter.h.

560{
562 m_phiRange.setMax(phiMax);
563}
double phiMax() const
Returns the maximum phi required by the filter.

◆ setPhiMin()

template<typename T>
void MomentumFilter< T >::setPhiMin ( const double phiMin)
inline

Sets the minimum phi required by the filter.

Phi range convention -PI,PI is enforced within the PhiFilterRange

Definition at line 552 of file MomentumFilter.h.

553{
555 m_phiRange.setMin(phiMin);
556}
double phiMin() const
Returns the minimum phi required by the filter.

◆ setPtMax()

template<typename T>
void MomentumFilter< T >::setPtMax ( const double ptMax)
inline

Sets the maximum pt required by the filter.

Definition at line 584 of file MomentumFilter.h.

585{
586 m_ptRange.setMax(ptMax);
587}
double ptMax() const
Returns the maximum pt required by the filter.

◆ setPtMin()

template<typename T>
void MomentumFilter< T >::setPtMin ( const double ptMin)
inline

Sets the minimum pt required by the filter.

Definition at line 578 of file MomentumFilter.h.

579{
580 m_ptRange.setMin(ptMin);
581}
double ptMin() const
Returns the minimum pt required by the filter.

◆ setPxMax()

template<typename T>
void MomentumFilter< T >::setPxMax ( const double pxMax)
inline

Sets the maximum px required by the filter.

Definition at line 498 of file MomentumFilter.h.

499{
500 m_pxRange.setMax(pxMax);
501}
double pxMax() const
Returns the maximum px required by the filter.

◆ setPxMin()

template<typename T>
void MomentumFilter< T >::setPxMin ( const double pxMin)
inline

Sets the minimum px required by the filter.

Definition at line 492 of file MomentumFilter.h.

493{
494 m_pxRange.setMin(pxMin);
495}
double pxMin() const
Returns the minimum px required by the filter.

◆ setPyMax()

template<typename T>
void MomentumFilter< T >::setPyMax ( const double pyMax)
inline

Sets the maximum py required by the filter.

Definition at line 510 of file MomentumFilter.h.

511{
512 m_pyRange.setMax(pyMax);
513}
double pyMax() const
Returns the maximum py required by the filter.

◆ setPyMin()

template<typename T>
void MomentumFilter< T >::setPyMin ( const double pyMin)
inline

Sets the minimum py required by the filter.

Definition at line 504 of file MomentumFilter.h.

505{
506 m_pyRange.setMin(pyMin);
507}
double pyMin() const
Returns the minimum py required by the filter.

◆ setPzMax()

template<typename T>
void MomentumFilter< T >::setPzMax ( const double pzMax)
inline

Sets the maximum pz required by the filter.

Definition at line 522 of file MomentumFilter.h.

523{
524 m_pzRange.setMax(pzMax);
525}
double pzMax() const
Returns the maximum pz required by the filter.

◆ setPzMin()

template<typename T>
void MomentumFilter< T >::setPzMin ( const double pzMin)
inline

Sets the minimum pz required by the filter.

Definition at line 516 of file MomentumFilter.h.

517{
518 m_pzRange.setMin(pzMin);
519}
double pzMin() const
Returns the minimum pz required by the filter.

◆ setRange()

template<typename T>
void MomentumFilter< T >::setRange ( const std::string & name,
const double min,
const double max )

Set range for a given momentum component (by name)

Definition at line 590 of file MomentumFilter.h.

592{
593 if ( name == "px" ) { m_pxRange .setRange( min, max );
594 } else if ( name == "py" ) { m_pyRange .setRange( min, max );
595 } else if ( name == "pz" ) { m_pzRange .setRange( min, max );
596 } else if ( name == "ene" ) { m_eneRange .setRange( min, max );
597 } else if ( name == "eta" ) { m_etaRange .setRange( min, max );
598 } else if ( name == "phi" ) { m_phiRange .setRange( min, max );
599 } else if ( name == "mass" ) { m_massRange .setRange( min, max );
600 } else if ( name == "pt" ) { m_ptRange .setRange( min, max );
601 } else {
602 const std::string error = "Range of name <"+name+"> is UNKNOWN !!";
604 }
605
606 return;
607}

Member Data Documentation

◆ m_eneRange

template<typename T>
FilterRange MomentumFilter< T >::m_eneRange
protected

The range in energy required by the filter.

Definition at line 243 of file MomentumFilter.h.

◆ m_etaRange

template<typename T>
FilterRange MomentumFilter< T >::m_etaRange
protected

The range in eta required by the filter.

Definition at line 247 of file MomentumFilter.h.

◆ m_massRange

template<typename T>
FilterRange MomentumFilter< T >::m_massRange
protected

The range in mass required by the filter.

Definition at line 255 of file MomentumFilter.h.

◆ m_phiRange

template<typename T>
PhiFilterRange MomentumFilter< T >::m_phiRange
protected

The range in phi required by the filter.

Definition at line 251 of file MomentumFilter.h.

◆ m_ptRange

template<typename T>
FilterRange MomentumFilter< T >::m_ptRange
protected

The range in pt required by the filter.

Definition at line 259 of file MomentumFilter.h.

◆ m_pxRange

template<typename T>
FilterRange MomentumFilter< T >::m_pxRange
protected

The range in px required by the filter.

Definition at line 231 of file MomentumFilter.h.

◆ m_pyRange

template<typename T>
FilterRange MomentumFilter< T >::m_pyRange
protected

The range in py required by the filter.

Definition at line 235 of file MomentumFilter.h.

◆ m_pzRange

template<typename T>
FilterRange MomentumFilter< T >::m_pzRange
protected

The range in pz required by the filter.

Definition at line 239 of file MomentumFilter.h.


The documentation for this class was generated from the following file: