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.

batch is 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

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.