1#ifndef OBSERVABLE_TYPE_ID_H
2#define OBSERVABLE_TYPE_ID_H
57 unsigned int daughter_position
59 const long kind_digit =
static_cast<long>(kind);
60 if (kind_digit < 1 || kind_digit > 3) {
61 throw std::invalid_argument(
"polarization kind must be encoded by i=1,2,3");
63 if (daughter_position < 1 || daughter_position > 9) {
64 throw std::invalid_argument(
"polarized daughter position must be in [1,9]");
66 return 9200L + 10L * kind_digit +
static_cast<long>(daughter_position);
constexpr long kTransverseFractionTypeId
FLHA observable type for the transverse fraction .
constexpr long kLegacyFermionPolarizationTypeId
Legacy v1.0.0–v1.0.1 type used for charged-lepton polarization.
PolarizationKind
Polarization category encoded by the project-specific FLHA pattern 92ij.
constexpr long kAlphaKTypeId
FLHA observable type for the angular coefficient .
constexpr long kLegacyLongitudinalVectorPolarizationTypeId
Legacy v1.0.0–v1.0.1 type used for longitudinal vector polarization.
constexpr long make_polarization_type_id(PolarizationKind kind, unsigned int daughter_position)
Build a project-defined FLHA polarization type id using 92ij.