This is the declaration of the SelectorBase class.
Classes derived from the SelectorBase class are used to extract particles from an Event with Event::select method. There are five different kinds of checks done by a selector object in the Event::select method. If the allCollisions() method returns false, only particles which belongs to the primary collision in an event will be considered for extraction. Furthermore if the allSteps() method returns false, only particles present in the final step of each collision wikk be considered. If finalState() returns false, final state particles will not be considered and if intermediate() returns false, intermediate particles will not be considered. Finally among all considered particles, only the ones for which the check(const Particle &) returns true will be extracted.
The templated SelectParticle class may be used to implement derived classes from the SelectorBase class. The requirement on the template class is that it implements the static AllCollisions(), AllSteps(), FinalState(), Intermediate() and Check(const Particle &) (corresponding to the virtual ones in SelectParticle).
The SelectIfNot, SelectIfEither, SelectIfBoth classes can be used to combine other selector classes.
CLASS
SelectorBase
STRUCT
ParticleSelector:
CLASS
SelectIfNot:
CLASS
SelectIfBoth:
CLASS
SelectIfEither: