1 #ifndef OSC_OSCCALCULATORPMNSOPT_H 2 #define OSC_OSCCALCULATORPMNSOPT_H 17 #include <unordered_map> 25 class _OscCalcPMNSOpt:
public _IOscCalcAdjustable<T>
32 _IOscCalcAdjustable<T>*
Copy()
const override;
34 T P(
int flavBefore,
int flavAfter,
double E)
override;
void SetTh13(const T &th13) override
_OscCalcPMNSOpt< double > OscCalcPMNSOpt
void SetL(double L) override
Optimized version of PMNS.
TMD5 * GetParamsHashDefault(const std::string &txt) const
This is only a safe implementation if your calculator only depends on these eight parameters...
TMD5 * GetParamsHash() const override
Use to check two calculators are in the same state.
static constexpr double L
Optimized version of OscCalcPMNS.
T P(int flavBefore, int flavAfter, double E) override
E in GeV; flavors as PDG codes (so, neg==>antinu)
void SetTh23(const T &th23) override
_IOscCalcAdjustable< T > * Copy() const override
void SetDmsq21(const T &dmsq21) override
Oscillation probability calculators.
void SetDmsq32(const T &dmsq32) override
virtual T P(int flavBefore, int flavAfter, double E)=0
E in GeV; flavors as PDG codes (so, neg==>antinu)
void SetdCP(const T &dCP) override
T P[3][3]
Cache of oscillation probabilities.
void SetTh12(const T &th12) override
std::unordered_map< double, Val_t > fPMNSOpt[2]
virtual ~_OscCalcPMNSOpt()
_PMNSOpt< T > * pmns
The calculator itself.
void SetRho(double rho) override