SubchannelWeights¶
-
class SubchannelWeights : public madspace::FunctionGenerator¶
Splits each channel weight among its on-shell sub-channels.
A single decay topology admits several sampling orders, one per set of propagators that can be simultaneously on shell (Sec. 2.2.7 of [1]). This distributes an incoming per-channel weight over those sub-channels in proportion to their on-shell propagator denominators.
batchis the leading batch dimension.Arguments
momenta–float, shape(batch, n, 4)– all momenta of the event.channel_weights_in–float, shape(batch, c_in)– the per-channel weights to split.
Returns
channel_weights_out–float, shape(batch, c_out)– the per-sub-channel weights.
References
[1] T. Heimel, O. Mattelaer, R. Winterhalder, “MadSpace”, https://arxiv.org/abs/2602.06895 (Sec. 2.2.7)
Public Functions
-
SubchannelWeights(const nested_vector2<Topology> &topologies, const nested_vector3<std::size_t> &permutations, const nested_vector2<std::size_t> &channel_indices)¶
- Parameters:
topologies – Per channel, its list of on-shell sub-channel topologies.
permutations – Per channel, the outgoing-particle permutations.
channel_indices – Per channel, the global channel indices.
-
inline std::size_t channel_count() const¶
Number of input channels.