Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
ObservableTypeId.h
Go to the documentation of this file.
1#ifndef OBSERVABLE_TYPE_ID_H
2#define OBSERVABLE_TYPE_ID_H
3
4#include <stdexcept>
5
21enum class PolarizationKind : long {
22 Fermion = 1,
25};
26
28inline constexpr long kTransverseFractionTypeId = 932;
29
31inline constexpr long kAlphaKTypeId = 933;
32
34inline constexpr long kLegacyFermionPolarizationTypeId = 92015;
35
37inline constexpr long kLegacyLongitudinalVectorPolarizationTypeId = 921423;
38
57 unsigned int daughter_position
58) {
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");
62 }
63 if (daughter_position < 1 || daughter_position > 9) {
64 throw std::invalid_argument("polarized daughter position must be in [1,9]");
65 }
66 return 9200L + 10L * kind_digit + static_cast<long>(daughter_position);
67}
68
72
73#endif // OBSERVABLE_TYPE_ID_H
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.