10#ifndef HEPMC3_SELECTOR_H
11#define HEPMC3_SELECTOR_H
84template<
typename Feature_type>
163#if defined(WIN32) && !defined(HEPMC3search_NO_StandardSelector_EXPORTS)
164#ifdef HepMC3search_EXPORTS
165#define HEPMC3search_StandardSelector_EXPORT_API __declspec(dllexport)
167#define HEPMC3search_StandardSelector_EXPORT_API __declspec(dllimport)
170#define HEPMC3search_StandardSelector_EXPORT_API
Defines AttributeFeature for obtaining Filters to search by Attribute.
Defines Feature interface for selecting Particles according to extracted Features.
Defines Filter operations for combingin Filters.
Filter for the attributes.
Expose GenericFeature interface to derived Feature class.
std::function< Feature_type(ConstGenParticlePtr)> Evaluator_type
evaluator type
Forward declaration of SelectorWrapper.
Filter operator==(int value) const override
Operator ==.
Filter operator>(int value) const override
Operator >
ConstSelectorPtr abs() const override
Function abs.
Filter operator<=(int value) const override
Operator <=.
Filter operator!=(int value) const override
Operator !=.
Feature< Feature_type > m_internal
Internal feauture holder.
Filter operator>=(int value) const override
Operator >=.
SelectorWrapper(typename Feature< Feature_type >::Evaluator_type functor)
Constructor.
Filter operator<(int value) const override
Operator <.
Selector is an interface to "standard" Features that are valid for both integral and floating point c...
virtual ~Selector()
Destructor.
virtual ConstSelectorPtr abs() const =0
abs function
virtual Filter operator>(int value) const =0
Operator >
virtual Filter operator<(int value) const =0
Operator <.
virtual Filter operator>=(int value) const =0
Operator >=.
virtual Filter operator!=(int value) const =0
NonEquality.
virtual Filter operator<=(int value) const =0
Operator <=.
virtual Filter operator==(int value) const =0
Equality.
static HEPMC3search_StandardSelector_EXPORT_API const SelectorWrapper< double > MASS
Mass.
static HEPMC3search_StandardSelector_EXPORT_API const SelectorWrapper< double > PT
Transverse momentum.
static HEPMC3search_StandardSelector_EXPORT_API const SelectorWrapper< int > PDG_ID
PDG ID.
static HEPMC3search_StandardSelector_EXPORT_API const SelectorWrapper< double > PHI
Azimuthal angle.
static HEPMC3search_StandardSelector_EXPORT_API const SelectorWrapper< double > ETA
Pseudorapidity.
static HEPMC3search_StandardSelector_EXPORT_API const SelectorWrapper< double > ET
Transverse energy.
static HEPMC3search_StandardSelector_EXPORT_API const SelectorWrapper< int > STATUS
Status.
static HEPMC3search_StandardSelector_EXPORT_API const SelectorWrapper< double > RAPIDITY
Rapidity.
static HEPMC3search_StandardSelector_EXPORT_API const SelectorWrapper< double > ENERGY
Energy.
std::function< bool(ConstGenParticlePtr)> Filter
type of Filter
std::shared_ptr< const Selector > ConstSelectorPtr
Declaration of ConstSelectorPtr.
Feature< Feature_type > abs(const Feature< Feature_type > &input)
Obtain the absolute value of a Feature. This works as you'd expect. If foo is a valid Feature,...