HepMC3 event record library
Public Member Functions | Static Public Member Functions | Static Public Attributes
Selector Class Referenceabstract

Detailed Description

Selector is an interface to "standard" Features that are valid for both integral and floating point comparisons.

You would use this in preference to the more general Feature<> templated type. A Selector is constructed from a function to extract features from particles, e.g.

ConstSelectorPtr status = std::make_shared<SelectorWrapper<int> >([](ConstParticlePtr p)->int{return p->status();}); ConstSelectorPtr pt = std::make_shared<SelectorWrapper<double> >([](ConstParticlePtr p)->double{return p->momentum().pt();});

You can then use the Selector to construct Filter functions that evaluate on particles, e.g. Filter is_stable = (*status) == 1; bool stable = is_stable(p); bool beam = (*status == 4)(p);

Selector contains a few standard Selectors already defined, e.g.

ConstGenParticlePtr p; (Selector::STATUS == 1)(p); (Selector::PT > 15.)(p); (abs(Selector::RAPIDITY) < 2.5)(p);

you can also combined them e.g.

Filter myCuts = (Selector::PT > 15.) && (*abs(Selector::RAPIDITY) < 2.5) || (Selector::PT > 100.); bool passCuts = myCuts(p);

Definition at line 55 of file Selector.h.

#include <Selector.h>

+ Inheritance diagram for Selector:
+ Collaboration diagram for Selector:

Public Member Functions

virtual Filter operator> (int value) const =0
 
virtual Filter operator> (double value) const =0
 
virtual Filter operator>= (int value) const =0
 
virtual Filter operator>= (double value) const =0
 
virtual Filter operator< (int value) const =0
 
virtual Filter operator< (double value) const =0
 
virtual Filter operator<= (int value) const =0
 
virtual Filter operator<= (double value) const =0
 
virtual Filter operator== (int value) const =0
 
virtual Filter operator== (double value) const =0
 
virtual Filter operator!= (int value) const =0
 
virtual Filter operator!= (double value) const =0
 
virtual ConstSelectorPtr abs () const =0
 

Static Public Member Functions

static AttributeFeature ATTRIBUTE (const std::string &name)
 

Static Public Attributes

static const SelectorWrapper< int > STATUS = SelectorWrapper<int>([](ConstGenParticlePtr p)->int{return p->status();})
 
static const SelectorWrapper< int > PDG_ID = SelectorWrapper<int>([](ConstGenParticlePtr p)->int{return p->pdg_id();})
 
static const SelectorWrapper< double > PT = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().pt();})
 
static const SelectorWrapper< double > ENERGY = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().e();})
 
static const SelectorWrapper< double > RAPIDITY = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().rap();})
 
static const SelectorWrapper< double > ETA = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().eta();})
 
static const SelectorWrapper< double > PHI = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().phi();})
 
static const SelectorWrapper< double > ET = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().e() * (p->momentum().pt() / p->momentum().p3mod());})
 
static const SelectorWrapper< double > MASS = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().m();})
 

Constructor & Destructor Documentation

◆ ~Selector()

virtual ~Selector ( )
inlinevirtual

Definition at line 59 of file Selector.h.

Member Function Documentation

◆ ATTRIBUTE()

AttributeFeature ATTRIBUTE ( const std::string &  name)
static

Definition at line 31 of file Selector.cc.

Field Documentation

◆ ENERGY

const SelectorWrapper< double > ENERGY = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().e();})
static

Definition at line 84 of file Selector.h.

◆ ET

const SelectorWrapper< double > ET = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().e() * (p->momentum().pt() / p->momentum().p3mod());})
static

Definition at line 88 of file Selector.h.

◆ ETA

const SelectorWrapper< double > ETA = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().eta();})
static

Definition at line 86 of file Selector.h.

◆ MASS

const SelectorWrapper< double > MASS = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().m();})
static

Definition at line 89 of file Selector.h.

◆ PDG_ID

const SelectorWrapper< int > PDG_ID = SelectorWrapper<int>([](ConstGenParticlePtr p)->int{return p->pdg_id();})
static

Definition at line 82 of file Selector.h.

◆ PHI

const SelectorWrapper< double > PHI = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().phi();})
static

Definition at line 87 of file Selector.h.

◆ PT

const SelectorWrapper< double > PT = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().pt();})
static

Definition at line 83 of file Selector.h.

◆ RAPIDITY

const SelectorWrapper< double > RAPIDITY = SelectorWrapper<double>([](ConstGenParticlePtr p)->double{return p->momentum().rap();})
static

Definition at line 85 of file Selector.h.

◆ STATUS

const SelectorWrapper< int > STATUS = SelectorWrapper<int>([](ConstGenParticlePtr p)->int{return p->status();})
static

Definition at line 81 of file Selector.h.


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