TPropagatorMapping

class TPropagatorMapping : public madspace::Mapping

t-channel part of a phase-space mapping: a chain of \(2 \to 2\) blocks.

Builds the \(\kappa\) space-like momentum transfers of a topology and the associated outgoing momenta [1]. Restricting to orderings that grow inward from the two incoming legs reduces the \(\kappa!\) possible orders to \(2^{\kappa-1}\). The mapping first draws \(\kappa-1\) time-like invariants. It then walks \(i = 1 \dots \kappa\), emitting one TwoToTwoParticleScattering block per step and updating the incoming momentum on the chosen side by subtraction (Sec. 2.2.8 of [1], following [2]).

batch is the leading batch dimension. kappa is the number of t-channel propagators, len(integration_order).

Inputs

  • random_i – float, shape (batch,) – the 3 * kappa - 1 random numbers (i = 0 … 3*kappa-2).

Conditions

  • com_energy – float, shape (batch,) – total collision energy.

  • mass_i – float, shape (batch,) – the kappa + 1 outgoing masses.

  • x1, x2 – float, shape (batch,) – beam momentum fractions. Present only when a rapidity bound is given (see the constructor).

Outputs

  • momentum_i – float, shape (batch, 4) – the kappa + 3 momenta (incoming and outgoing) of the t-channel chain.

In addition every mapping returns a weight (float, shape (batch,)), the Jacobian of the transformation.

References

Public Functions

TPropagatorMapping(const std::vector<std::size_t> &integration_order, double invariant_power = 0.8, const std::vector<double> &pt_min = {}, const std::vector<double> &y_max = {})
Parameters:
  • integration_order – Order in which the t-channel invariants are sampled; 0-based, and each step must extend the currently sampled range at its low or high end (see Topology).

  • invariant_power – Exponent of the 1/|t|^p sampling of every momentum transfer; see Invariant.

  • pt_min – Per-outgoing-particle minimum transverse momentum; empty disables the cut. See Cuts.

  • y_max – Per-outgoing-particle bound on the absolute lab rapidity, negative (or empty) for none. Only the first scattering of the chain, between the two beams, can use it: there |t| fixes both light-cone components of the peeled particle, so its bound and that of the recoil (the bound of all other particles, if each has one) narrow the |t| range exactly. The mapping then takes the beam momentum fractions x1, x2 (float, shape (batch,)) as two further conditions.

inline std::size_t random_dim() const

Number of uniform random inputs consumed by the forward mapping, equal to 3 * len(integration_order) - 1.

inline bool has_rapidity_window() const

Whether the first scattering is narrowed by rapidity bounds (and the mapping therefore takes x1, x2 as conditions).