DiagramCut

Symbolica documentation for getting started, symbolic expressions, numerical evaluation, pattern matching, and APIs in Python and Rust.

DiagramCut

class DiagramCut

A generated physical final-state cut; each side retains its physics metadata.

Examples

from symbolica import S, E
from symbolica.community import hepkit as hep
model = hep.Model.phi4()
process = model.process(["phi", "phi"], ["phi", "phi"])
result = process.generate_cross_section(loops=1)
diagram = result.diagrams[0]
cut = diagram.cuts[0]
factors = cut.propagators()
assert len(factors) == len(cut.edges)

Attributes

Name Description
edges Return the crossing particle lines in their stored cut order.
left Return the left amplitude and its generation metadata.
momentum_signatures Return stored edge momenta in the diagram’s selected routing
orientations Orient crossing lines from the left side to the right side.
particles Return physical final-state particles in the stored cut-edge order
right Return the right amplitude and its generation metadata.
subgraph Return the oriented crossing half-edges as a reusable selection.

edges

DiagramCut.edges: builtins.list[DiagramEdge]

Return the crossing particle lines in their stored cut order.

Examples

Using the setup in the DiagramCut class example:

cut_edge_ids = [edge.id for edge in cut.edges]

left

DiagramCut.left: DiagramCutSide

Return the left amplitude and its generation metadata.

Examples

Using the setup in the DiagramCut class example:

left_numerator = cut.left.subgraph.numerator_expression()

momentum_signatures

DiagramCut.momentum_signatures: builtins.dict[builtins.int, MomentumSignature]

Return stored edge momenta in the diagram’s selected routing. Multiply by :attr:orientations for momenta directed from left to right.

Examples

Using the setup in the DiagramCut class example:

cut_momenta = cut.momentum_signatures

orientations

DiagramCut.orientations: builtins.dict[builtins.int, builtins.int]

Orient crossing lines from the left side to the right side.

Examples

Using the setup in the DiagramCut class example:

cut_directions = cut.orientations

particles

DiagramCut.particles: builtins.list[Particle]

Return physical final-state particles in the stored cut-edge order.

The finalized left side contains the incoming initial-state endpoints. A source-oriented cut line carries its stored species into the final state; a target-oriented line carries its antiparticle. Momentum orientations use the same left-to-right positive-energy routing.

Examples

Using the setup in the DiagramCut class example:

cut_particles = cut.particles

right

DiagramCut.right: DiagramCutSide

Return the right amplitude and its generation metadata.

Examples

Using the setup in the DiagramCut class example:

right_numerator = cut.right.subgraph.numerator_expression()

subgraph

DiagramCut.subgraph: Subgraph

Return the oriented crossing half-edges as a reusable selection.

Examples

Using the setup in the DiagramCut class example:

crossing_region = cut.subgraph

Methods

Name Description
propagators Construct the oriented cut-propagator distributions, separately from the remaining numerator, uncut propagators, and global factors.

propagators

DiagramCut.propagators(
    *,
    edge_powers: typing.Optional[typing.Mapping[builtins.int, builtins.int]] = None,
    prescription: builtins.int = 1,
    normalization: typing.Optional[Expression | int | Float | builtins.int | builtins.float | builtins.str | decimal.Decimal | ComplexFloat | Float | builtins.int | builtins.float | builtins.str | decimal.Decimal | builtins.complex | tuple[Float | builtins.int | builtins.float | builtins.str | decimal.Decimal, Float | builtins.int | builtins.float | builtins.str | decimal.Decimal]] = None,
) -> builtins.list[CutPropagator]

Construct the oriented cut-propagator distributions, separately from the remaining numerator, uncut propagators, and global factors.

Examples

Using the setup in the DiagramCut class example:

factors = diagram.cuts[0].propagators(edge_powers={2: 2})
distributions = [factor.to_expression() for factor in factors]

Parameters

  • edge_powers (mapping[int, int] or None, optional) Positive propagator powers by diagram edge ID; omitted edges have power one.
  • prescription (int, optional) Sign of the imaginary prescription, either +1 or -1.
  • normalization (Expression or None, optional) Explicit replacement normalization; defaults to -2pii.