TwoToTwoParticleScattering¶
- class madspace.TwoToTwoParticleScattering(self: madspace._madspace_py.TwoToTwoParticleScattering, com: bool, invariant_power: SupportsFloat = 0.0, mass: SupportsFloat = 0.0, width: SupportsFloat = 0.0, has_cut: bool = False, y_max1: SupportsFloat = -1.0, y_max2: SupportsFloat = -1.0, beam_sign: SupportsFloat = 1.0)¶
Bases:
MappingTwo-particle phase-space block parametrized by the azimuth and the momentum transfer \(t\).
Same two-particle phase space as TwoBodyDecay. The polar angle is traded for the Mandelstam invariant \(t = (p_\mathrm{in,1} - p_1)^2 < 0\), which is linear in \(\cos\theta\) [1]. The azimuth is uniform, \(\phi = 2\pi\,r_\phi\). \(|t|\) is drawn with an Invariant (from
invariant_power/mass/width) so a t-channel propagator pole is flattened (Sec. 2.2.4 of [1]). The momenta are built in the scattering center-of-mass frame and boosted out.batchis the leading batch dimension. The masses are inputs here. They are supplied on the forward call and recovered by the inverse.Inputs
random_phi–float, shape(batch,)– azimuthal-angle random number.random_inv–float, shape(batch,)– random number for \(|t|\).mass1–float, shape(batch,)– first outgoing mass.mass2–float, shape(batch,)– second outgoing mass.
Conditions
momentum_in1–float, shape(batch, 4)– first incoming momentum.momentum_in2–float, shape(batch, 4)– second incoming momentum.etmin_1–float, shape(batch,)– transverse-energy cut on the first outgoing particle. Present only whenhas_cutis true.etmin_2–float, shape(batch,)– transverse-energy cut on the second outgoing particle. Present only whenhas_cutis true.x1,x2–float, shape(batch,)– beam momentum fractions. Present only when a rapidity bound is given (see the constructor).
Outputs
momentum1–float, shape(batch, 4)– first outgoing momentum.momentum2–float, shape(batch, 4)– second outgoing momentum.
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.4)
- Parameters:
com – If true, momenta are built in the scattering center-of-mass frame.
invariant_power – Exponent of the \(1/|t|^{\,p}\) sampling of the momentum transfer; see Invariant.
mass – t-channel propagator mass; see Invariant.
width – t-channel propagator width; a nonzero value selects Breit-Wigner sampling. See Invariant.
has_cut – If true, the
etmin_*conditions restrict \(|t|\) to the region passing the transverse cuts; see Cuts.y_max1 – Bound on the absolute lab rapidity of
momentum1(the recoil); negative, or 100 and above, for none.y_max2 – The same for
momentum2.beam_sign – +1 if
momentum_in1is beam 1 (along +z), -1 if it is beam 2.
The rapidity bounds are only valid when the two incoming momenta are the beams in the partonic centre-of-mass frame (the first step of a t-channel chain). There t fixes pb.p2 and, with the masses, pa.p2, so each bound becomes an interval of \(|t|\). With a bound set, the mapping takes the beam momentum fractions
x1,x2(float, shape(batch,)) as two further conditions.