1#ifndef RIVET_TauFinder_HH
2#define RIVET_TauFinder_HH
4#include "Rivet/Projections/UnstableParticles.hh"
5#include "Rivet/Projections/FinalState.hh"
27 static bool isHadronic(
const Particle& tau) {
28 assert(tau.
abspid() == PID::TAU);
32 static bool isLeptonic(
const Particle& tau) {
33 return !isHadronic(tau);
49 using Projection::operator =;
52 const Particles& taus()
const {
return _theParticles; }
Representation of a HepMC event, and enabler of Projection caching.
Definition Event.hh:22
Project out all final-state particles in an event. Probably the most important projection in Rivet!
Definition FinalState.hh:12
Particle representation, either from a HepMC::GenEvent or reconstructed.
Definition Particle.hh:45
PdgId abspid() const
Absolute value of the PDG ID code.
Definition Particle.hh:193
Particles stableDescendants(const Cut &c=Cuts::OPEN) const
Specialised vector of Particle objects.
Definition Particle.hh:21
const PROJ & declare(const PROJ &proj, const std::string &name) const
Register a contained projection (user-facing version)
Definition ProjectionApplier.hh:175
Base class for all Rivet projections.
Definition Projection.hh:29
void setName(const std::string &name)
Used by derived classes to set their name.
Definition Projection.hh:148
Convenience finder of unstable taus.
Definition TauFinder.hh:24
virtual CmpState compare(const Projection &p) const
Compare with other projections.
TauFinder(TauDecay decaymode=TauDecay::ANY, const Cut &cut=Cuts::open())
Definition TauFinder.hh:37
RIVET_DEFAULT_PROJ_CLONE(TauFinder)
Clone on the heap.
void project(const Event &e)
Apply the projection on the supplied event.
Project out all physical-but-decayed particles in an event.
Definition UnstableParticles.hh:25
bool any(const CONTAINER &c)
Return true if x is true for any x in container c, otherwise false.
Definition Utils.hh:330
const Cut & open()
Fully open cut singleton, accepts everything.
Definition MC_CENT_PPB_Projections.hh:10
TauDecay
Enumerate types of tau decay.
Definition TauFinder.hh:11