12 #ifndef HAMMER_TOOLS_ParticleUtils
13 #define HAMMER_TOOLS_ParticleUtils
48 const std::vector<PdgId>& subDaughters = {});
53 std::vector<PdgId>
flipSigns(
const std::vector<PdgId>& list);
64 bool particlesByPdg(
const std::function<
PdgId(
const Particle&)>& pdgGetter,
const Particle& a,
const Particle& b);
Hammer data types declarations.
std::vector< PdgId > combineDaughters(const std::vector< PdgId > &daughters, const std::vector< PdgId > &subDaughters)
combine list of codes of daughters and grandaughters (for processes which parameterise two subsequent...
bool particlesByPdg(const std::function< PdgId(const Particle &)> &pdgGetter, const Particle &a, const Particle &b)
checks whether two particles are ordered according to the PDG code ordering used in computing hashes ...
bool pdgSorter(PdgId a, PdgId b)
sorting function for PDG ids for computing hashes.
std::vector< PdgId > flipSigns(const std::vector< PdgId > &list)
return the PDG codes of the conjugate particles (itself if self-conjugate) for all the PDG codes in a...
Pdg forward declarations.
HashId combineProcessIDs(const std::set< HashId > &allIds)
PdgId flipSign(const PdgId &id)
return the PDG code of the conjugate particle (itself if self-conjugate)
HashId processID(PdgId parent, const std::vector< PdgId > &allDaughters)
compute a unique ID for a given process based on the PDG codes of the parent particle and the ordered...