2#ifndef RIVET_PrimaryParticles_HH
3#define RIVET_PrimaryParticles_HH
5#include "Rivet/Projections/ParticleFinder.hh"
6#include "Rivet/Tools/Cuts.hh"
36 using Projection::operator =;
53 if (!other)
return CmpState::NEQ;
54 if (_cuts != other->_cuts || _pdgIds != other->_pdgIds)
return CmpState::NEQ;
74 virtual bool isPrimary(ConstGenParticlePtr
p)
const;
99 virtual bool isBeam(ConstGenParticlePtr
p)
const;
106 ConstGenParticlePtr
ancestor(ConstGenParticlePtr
p)
const;
114 ConstGenParticlePtr
ancestor(ConstGenParticlePtr
p,
bool)
const;
117 std::vector<int> _pdgIds;
Representation of a HepMC event, and enabler of Projection caching.
Definition Event.hh:22
Base class for projections which return subsets of an event's particles.
Definition ParticleFinder.hh:11
Project out primary particles according to definition.
Definition PrimaryParticles.hh:19
ConstGenParticlePtr ancestor(ConstGenParticlePtr p, bool) const
virtual bool isIgnored(ConstGenParticlePtr p) const
Check if the particle should be ignored, via its status code.
virtual bool isBeam(ConstGenParticlePtr p) const
virtual bool isPrimaryPID(ConstGenParticlePtr p) const
PrimaryParticles(std::initializer_list< int > pids, const Cut &c=Cuts::open())
Definition PrimaryParticles.hh:26
virtual bool hasDecayed(ConstGenParticlePtr p) const
PrimaryParticles(const PrimaryParticles &other)
Copy constructor.
Definition PrimaryParticles.hh:40
ConstGenParticlePtr ancestor(ConstGenParticlePtr p) const
virtual void project(const Event &e)
virtual CmpState compare(const Projection &p) const
Definition PrimaryParticles.hh:50
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:142
double p(const ParticleBase &p)
Unbound function access to p.
Definition ParticleBaseUtils.hh:684
PdgIdPair pids(const ParticlePair &pp)
Definition ParticleUtils.hh:749
const Cut & open()
Fully open cut singleton, accepts everything.
Definition MC_Cent_pPb.hh:10