There are some functions, which are defined only on the in_particles of the PhaseSpacePoint.
One example is the total_cross_section, which can't be defined on the current implementation of PhaseSpacePoint (except for using dummy particles and momenta for the out channel).
As discussed offline with @AntonReinhard, we could extend the implementation of PhaseSpacePoint to allow an empty tuple (and the type length null exposed) for the channel, which is not there. To expose if a given PhaseSpacePoint has an out channel, convenience functions like has_out_channel are conceivable. Furthermore, one could implement some aliases InPhaseSpace{PROC,MODEL,PSDEF,Nin,ELTYPE} to dispatch only on in channels.
There are some functions, which are defined only on the
in_particles
of thePhaseSpacePoint
. One example is thetotal_cross_section
, which can't be defined on the current implementation ofPhaseSpacePoint
(except for using dummy particles and momenta for the out channel).As discussed offline with @AntonReinhard, we could extend the implementation of
PhaseSpacePoint
to allow an empty tuple (and the type length null exposed) for the channel, which is not there. To expose if a givenPhaseSpacePoint
has an out channel, convenience functions likehas_out_channel
are conceivable. Furthermore, one could implement some aliasesInPhaseSpace{PROC,MODEL,PSDEF,Nin,ELTYPE}
to dispatch only on in channels.