12 #ifndef HAMMER_PROCESS_HH
13 #define HAMMER_PROCESS_HH
18 #include <unordered_map>
48 using TreeMap = std::map<ParticleIndex, ParticleIndices>;
119 const std::set<HashId>&
fullId()
const;
148 void read(
const Serial::FBProcIDs* msgreader);
const_iterator begin() const
const_iterator end() const
ParticleIndex findFirstVertex() const
HashId getVertexId(std::string vertex) const
ParticleIndices getSiblingsIds(ParticleIndex particle=0) const
Forward declaration of serialization related typedefs and includes.
ParticleList getSiblings(ParticleIndex particle=0, bool sorted=false) const
Hammer data types declarations.
void read(const Serial::FBProcIDs *msgreader)
ParticleList sortByParent(ParticleIndex parent, ParticleList parts) const
void addVertex(ParticleIndex parent, const ParticleIndices &daughters)
const ParticleIndices & getDaughtersIds(ParticleIndex parent=0) const
const ParticleIndices & daughtersId(Process::const_iterator it)
const Particle & getParent(ParticleIndex daughter) const
void write(flatbuffers::FlatBufferBuilder *msgwriter, flatbuffers::Offset< Serial::FBProcIDs > *msg) const
ParticleIndex getParentId(ParticleIndex daughter) const
ParticleList getDaughters(ParticleIndex parent=0, bool sorted=false) const
Process & operator=(const Process &other)=default
UniqueParticleIndices _erasedGammas
std::set< VertexUID > VertexUIDSet
Base class to access the settings repository.
std::map< ParticleIndex, ParticleIndices > TreeMap
void cacheParticleDependencies()
std::vector< Particle > ParticleList
~Process() noexcept=default
Log & getLog() const
logging facility
ParticleIndex _firstVertexIdx
std::pair< Particle, ParticleList > getParticlesByVertex(PdgId parent, std::vector< PdgId > daughters) const
size_t numParticles(bool withoutPhotons=false) const
ParticleIndex getFirstVertex() const
ParticleIndex parentId(Process::const_iterator it)
Base class for accessing Hammer settings repository.
const Particle & getParticle(ParticleIndex id) const
std::unordered_map< ParticleIndex, ParticleIndex > _parentDict
virtual void defineSettings()
purely virtual function for a class to define new settings
std::vector< ParticleIndex > ParticleIndices
std::map< ProcessUID, T > ProcIdDict
const_iterator find(ParticleIndex particle) const
ProcIdDict< ParticleIndex > _idTree
std::set< ParticleIndex > UniqueParticleIndices
ParticleIndex addParticle(const Particle &p)
bool isParent(ParticleIndex particle) const
TreeMap::const_iterator const_iterator
const std::set< HashId > & fullId() const
void removeVertex(ParticleIndex parent, bool prune=false)