Topology¶
-
class Topology¶
One integration channel derived from a Diagram.
Splits the diagram into its
t-channel momentum transfers (an ordered list of propagators) and itss-channel Topology::Decay tree, and records the order in which their invariants are sampled.Topology::topologies()enumerates the sub-channels of a diagram, one per set of propagators that can be simultaneously on shell (Sec. 2.2.7 of [1]). The constructor builds the single canonical channel. All particle indices are 0-based, with the two beams at 0 and 1, or the single decaying particle at 0.References
[1] T. Heimel, O. Mattelaer, R. Winterhalder, “MadSpace”, https://arxiv.org/abs/2602.06895 (Sec. 2.2)
Public Functions
-
Topology(const Diagram &diagram)¶
Build the single canonical channel of a diagram.
- Parameters:
diagram – The diagram to decompose.
-
inline std::size_t t_propagator_count() const¶
Number of space-like momentum transfers.
-
inline const std::vector<std::size_t> &t_integration_order() const¶
Sampling order of the
t-channel propagators.
-
inline const std::vector<double> &t_propagator_masses() const¶
Masses of the
t-channel propagators.
-
inline const std::vector<double> &t_propagator_widths() const¶
Widths of the
t-channel propagators.
-
inline void raise_decay_e_min(std::size_t index, double e_min)¶
Raise the lower energy bound of one
s-channel decay node.Hands a cut that bounds the pair this propagator decays into straight to the sampler, so the region the cut forbids is never generated. Lowering the bound is a no-op.
- Parameters:
index – Index of the node in decays().
e_min – The new lower bound.
-
inline const std::vector<std::size_t> &decay_integration_order() const¶
Sampling order of the
s-channel invariants.
-
inline const std::vector<std::size_t> &outgoing_indices() const¶
Diagram indices of the outgoing particles, in decay-tree order.
-
inline const std::vector<double> &incoming_masses() const¶
Masses of the incoming particles.
-
inline const std::vector<double> &outgoing_masses() const¶
Masses of the outgoing particles.
-
inline bool is_decay() const¶
Whether this channel is a decay, with a single incoming particle.
A decay has no
t-channel chain and a root virtuality fixed by the mass of the decaying particle.
-
std::vector<std::tuple<std::vector<int>, double, double>> propagator_momentum_terms(bool only_decays = false) const¶
For each propagator, the outgoing momenta summed to form it and the energy window
(indices, e_min, e_max).- Parameters:
only_decays – Restrict the result to the
s-channel decay nodes.
-
std::string to_string() const¶
Human-readable description of the channel.
Public Static Functions
Public Static Attributes
-
static constexpr std::size_t no_propagator¶
Decay::flat_propagator_indexvalue for a node with no entry inDiagram::propagators()(an outgoing leaf or the virtualt-channel root).
-
struct Decay¶
One node of the
s-channel decay tree built by Topology.Public Members
-
std::size_t index¶
Index of this node in the decay list.
-
std::size_t parent_index¶
Index of the parent node.
-
std::vector<std::size_t> child_indices¶
Indices of the child nodes.
-
double mass¶
Propagator mass of this node.
-
double width¶
Propagator width of this node.
-
double e_min¶
Lower bound on the node energy.
-
double e_max¶
Upper bound on the node energy.
-
int pdg_id¶
PDG id of the propagator.
-
bool on_shell¶
Whether this node’s invariant is fixed to
mass(a resonance).
-
bool on_shell_boundary¶
Whether the on-shell condition sits on the integration boundary.
-
std::size_t flat_propagator_index¶
Position in the flat
Diagram::propagators()list, or no_propagator; lets callers apply a per-diagram PDG override.
-
double flat_window¶
Flattened Breit-Wigner window of the propagator, see Propagator::flat_window.
-
std::size_t index¶