TwoToThreeParticleScattering¶
- class madspace.TwoToThreeParticleScattering(self: madspace._madspace_py.TwoToThreeParticleScattering, t_invariant_power: SupportsFloat = 0.0, t_mass: SupportsFloat = 0.0, t_width: SupportsFloat = 0.0, s_invariant_power: SupportsFloat = 0.0, s_mass: SupportsFloat = 0.0, s_width: SupportsFloat = 0.0, has_cut: bool = False, arcsine_s23: bool = True)¶
Bases:
MappingTwo-particle block in the double-invariant \((\tilde s, t)\) parametrization.
Replaces both angles of the two-particle block by Lorentz invariants. The polar angle becomes the momentum transfer \(t_{i-1}\) and the azimuth an extra time-like invariant \(\tilde s_i\) [1]. The pair \((\tilde s, t)\) alone does not fix the momenta. A recoil momentum (
momentum3) supplies the scattering plane. This block therefore peels one on-shell momentum off a composite cluster and appears inside a recursive chain. The measure carries an inverse square-root Gram determinant,\[\int \mathrm{d}\Phi_2^{(\tilde s, t)} = \int \mathrm{d}\tilde s_i \int \mathrm{d}|t_{i-1}|\; \frac{1}{8\sqrt{-\Delta_4}}.\]\(|t_{i-1}|\) is drawn with an Invariant (from
t_invariant_power/t_mass/t_width) and \(\tilde s_i\) with another (froms_invariant_power/s_mass/s_width). Thediscrete_choiceinput selects one of the two \(\cos\phi\) branches. See Sec. 2.2.5 of [1], following [2, 3].On its kinematic range \(\tilde s_i\) is linear in \(\cos\phi\), and \(8\sqrt{-\Delta_4} = \sqrt{\lambda}\,(\tilde s^{\max} - \tilde s^{\min}) \,|\sin\phi|\), so the measure is flat in \(\phi\). Any density in \(\tilde s_i\) that is finite at the kinematic limits leaves an integrable \(1/|\sin\phi|\) in the weight, whose variance diverges logarithmically. With
arcsine_s23(the default) the random number of \(\tilde s_i\) is first mapped by an arcsine map that is flat in \(\phi/2\) between the limits of the sampled range, and only then handed to the power-law sampling of Invariant (a Breit-Wigner is not supported there). The weight stays bounded at the kinematic limits, and the importance sampling of \(\tilde s_i\) is kept.batchis the leading batch dimension.Inputs
discrete_choice–int, shape(batch,)– which of the two two-body solutions to take.random_s23–float, shape(batch,)– random number for \(\tilde s_i\).random_t1–float, shape(batch,)– random number for \(|t_{i-1}|\).mass1,mass2–float, shape(batch,)– the two resolved masses.
Conditions
momentum_in1–float, shape(batch, 4)– first incoming momentum.momentum_in2–float, shape(batch, 4)– second incoming momentum;momentum12, the system p1 + p2, whenp12_conditionis true.momentum3–float, shape(batch, 4)– recoil momentum defining the scattering plane.etmin_1,etmin_2–float, shape(batch,)– transverse-energy cuts. Present only whenhas_cutis true.drcut–float, shape(batch,)– minimum angular separation. Present only whenhas_cutis true.s23_min_cut–float, shape(batch,)– minimum \(\tilde s\). Present only whenhas_cutis true.
Outputs
momentum1,momentum2–float, shape(batch, 4)– the two resolved momenta.
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.5)
[2] E. Byckling, K. Kajantie, Phys. Rev. 187 (1969) 2008, https://doi.org/10.1103/PhysRev.187.2008
[3] R. Frederix, T. Vitos, “Leading-colour-based unweighted event generation for multi-parton tree-level processes”, https://arxiv.org/abs/2409.12128
- Parameters:
t_invariant_power – Exponent of the \(1/|t|^{\,p}\) sampling; see Invariant.
t_mass – t-channel propagator mass; see Invariant.
t_width – t-channel propagator width; see Invariant.
s_invariant_power – Exponent of the \(1/\tilde s^{\,p}\) sampling; see Invariant.
s_mass – s-channel resonance mass; see Invariant.
s_width – s-channel resonance width; see Invariant.
has_cut – If true, the
etmin_*,drcutands23_min_cutconditions restrict the invariants to the region passing the cuts; see Cuts.arcsine_s23 – If true, remap the random number of \(\tilde s\) with the arcsine map in \(\phi\) before the invariant sampling, which removes the \(1/|\sin\phi|\) edge peak of the weight. Power-law sampling only: requires
s_width= 0 (no resonance is expected in this block).p12_condition – If true, the second condition is the outgoing system
momentum12= p1 + p2 itself instead of the second incoming momentum. A caller that holds it more precisely than pa + pb - p3 (a soft system next to the beams) keeps that precision.
- discrete_dim(self: madspace._madspace_py.TwoToThreeParticleScattering) int¶
Number of discrete inputs (1): which of the two two-body solutions.