2#ifndef RIVET_Particle_FHH
3#define RIVET_Particle_FHH
5#include "Rivet/Tools/RivetSTL.hh"
10 /// @name Particle declarations
13 // Forward declarations
18 /// @name Particle function/functor declarations
21 /// std::function instantiation for functors taking a Particle and returning a bool
22 using ParticleSelector = function<bool(const Particle&)>;
24 /// std::function instantiation for functors taking two Particles and returning a bool
25 using ParticleSorter = function<bool(const Particle&, const Particle&)>;
30 /// @name PdgId declarations
33 /// Typedefs for a PDG ID code.
35 //typedef PdgId PID; //< can't do this, because it's also a (sub)namespace
37 /// Typedef for a pair of particle names.
38 typedef std::pair<PdgId, PdgId> PdgIdPair;
43 /// Enum to enable different orderings for particles
44 enum class ObjOrdering { ENERGY, ETA, ET };