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]).
batchis the leading batch dimension.kappais the number oft-channel propagators,len(integration_order).Inputs
random_i–float, shape(batch,)– the3 * kappa - 1random numbers (i = 0 … 3*kappa-2).
Conditions
com_energy–float, shape(batch,)– total collision energy.mass_i–float, shape(batch,)– thekappa + 1outgoing 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)– thekappa + 3momenta (incoming and outgoing) of thet-channel chain.
In addition every mapping returns a
weight(float, shape(batch,)), the Jacobian of the transformation.References
[1] T. Heimel, O. Mattelaer, R. Winterhalder, “MadSpace”, https://arxiv.org/abs/2602.06895 (Sec. 2.2.8)
[2] O. Mattelaer, K. Ostrolenk, “Speeding up MadGraph5_aMC@NLO”, https://arxiv.org/abs/2102.00773
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|^psampling 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,x2as conditions).