DiagramCut
DiagramCut
class DiagramCutA 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: DiagramCutSideReturn 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_signaturesorientations
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.orientationsparticles
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.particlesright
DiagramCut.right: DiagramCutSideReturn 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: SubgraphReturn the oriented crossing half-edges as a reusable selection.
Examples
Using the setup in the DiagramCut class example:
crossing_region = cut.subgraphMethods
| 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.