12 #ifndef HAMMER_PROCESSGRAPH_HH
13 #define HAMMER_PROCESSGRAPH_HH
27 class DictionaryManager;
double getMassFactor(AmplEntry ampl, ParticleIndex parent, ParticleIndex daughter) const
std::vector< VertexEntry > VertexListType
NumDenPair< bool > parentPSFlags
Base class for amplitudes.
const DictionaryManager * _dictionaries
std::tuple< Particle, ParticleList, ParticleList > getParticleVectors(AmplType ampltype, ParticleIndex parent, ParticleIndex daughter) const
AmplitudeBase * amplitude
ProcGraph & operator=(const ProcGraph &other)=delete
UniqueParticleIndices _assignedVertices
void makeVertexEdgeTrees()
double getMultFactor(AmplEntry ampl, AmplEntry ancestorAmpl, bool isAncestorGrandparent) const
void initialize(const DictionaryManager *dictionaries, const Process *inputs)
NumDenPair< bool > parentPSFlags
const UniqueParticleIndices & assignedVertices() const
void selectEdgeVertices()
SelAmplitudeDict _selectedAmplitudes
const SelAmplitudeDict & selectedAmplitudes() const
std::map< size_t, T, std::greater< size_t >> DepthLevelDict
std::map< size_t, T, std::less< size_t >> EdgeWeightDict
EdgeDictType _implementedEdges
VertexDict< SelectedAmplEntry > SelAmplitudeDict
~ProcGraph() noexcept=default
void makeDepthMap(ParticleIndex parent, size_t seed)
std::map< ParticleIndex, T > VertexDict
AmplEntry resolvePurePS(bool parentPS, bool daughterPS) const
ParticleIndex daughterIdx
bool isAssignedVertex(ParticleIndex index) const
VertexListType _implementedVertices
std::set< ParticleIndex > UniqueParticleIndices
Declarations of process graph data structures.
VertexDict< size_t > _depthMap
Log & getLog() const
logging facility
NumDenPair< bool > daughterPSFlags
Log & getLog() const
logging facility
EdgeWeightDict< DepthLevelDict< std::vector< EdgeEntry >>> EdgeDictType