DifferentialCrossSection

class madspace.DifferentialCrossSection(self: madspace._madspace_py.DifferentialCrossSection, matrix_element: madspace._madspace_py.MatrixElement, cm_energy: SupportsFloat, running_coupling: madspace._madspace_py.RunningCoupling | None, energy_scale: None | madspace._madspace_py.EnergyScale | madspace._madspace_py.CachedScale, pid_options: collections.abc.Sequence[collections.abc.Sequence[SupportsInt]] = [], pdf1: None | madspace._madspace_py.PdfGrid | madspace._madspace_py.CachedPdf = None, pdf2: None | madspace._madspace_py.PdfGrid | madspace._madspace_py.CachedPdf = None, input_momentum_fraction: bool = True, decay: bool = False)

Bases: FunctionGenerator

The fully differential cross section \(f(x)\).

Assembles the integrand of the phase-space integral: a MatrixElement evaluation multiplied by the flux factor, the PartonDensity values for the two beams, and \(\alpha_s\) from a RunningCoupling, all at the EnergyScale of the event [1]. The Cached* variants of the PDF and scale arguments reuse values already computed elsewhere in the graph.

With decay the generator instead describes the decay of a single incoming particle. The differential rate is then \(|M|^2 / (2 M)\) with \(M\) = cm_energy, in GeV, rather than a hadronic cross section in pb. There are no beams, hence no momentum fractions and no PDFs.

batch is the leading batch dimension.

Arguments

  • the arguments of matrix_element, plus

  • x1, x2 – float, shape (batch,) – parton momentum fractions (when input_momentum_fraction is true).

  • pdf_id – int, shape (batch,) – selected flavour combination.

  • pdf1, pdf2 – float, shape (batch,) – cached PDF values (with a CachedPdf argument).

  • alpha_s – float, shape (batch,) – cached coupling (with a CachedScale argument).

Returns

  • the return values of matrix_element, scaled to the differential cross section.

References

Parameters:
  • matrix_element – The squared matrix element.

  • cm_energy – Total collision energy.

  • running_coupling – Optional \(\alpha_s\) source.

  • energy_scale – An EnergyScale, a CachedScale tag, or nothing.

  • pid_options – Allowed flavour combinations of the two initial partons.

  • pdf1 – A PdfGrid, a CachedPdf tag, or nothing, for the first beam.

  • pdf2 – Likewise for the second beam.

  • input_momentum_fraction – If true, x1 / x2 are taken as inputs rather than reconstructed.

  • decay – If true, describe the decay of a single incoming particle instead of a collision.

has_pdf(self: madspace._madspace_py.DifferentialCrossSection, pdf_index: SupportsInt) → bool

Whether beam pdf_index (0 or 1) has a PDF attached.

matrix_element(self: madspace._madspace_py.DifferentialCrossSection) → madspace._madspace_py.MatrixElement

The matrix element.

pid_options(self: madspace._madspace_py.DifferentialCrossSection) → list[list[int]]

The allowed initial-parton flavour combinations.

running_coupling(self: madspace._madspace_py.DifferentialCrossSection) → madspace._madspace_py.RunningCoupling | None

The strong-coupling source, if any.