OscCalculatorPMNS.h
Go to the documentation of this file.
1 #ifndef OSC_OSCCALCULATORPMNS_H
2 #define OSC_OSCCALCULATORPMNS_H
3 
4 //////////////////////////////////////////////////////////////////////////
5 // //
6 // \file OscCalculatorPMNS.h //
7 // //
8 // \brief Adapt the PMNS calculator to standard interface //
9 // \author <bckhouse@caltech.edu> //
10 // //
11 //////////////////////////////////////////////////////////////////////////
12 
13 #include <cassert>
14 
16 #include "OscLib/func/PMNS.h"
17 
18 namespace osc
19 {
20  /// Adapt the \ref PMNS calculator to standard interface
21  template <typename T>
22  class _OscCalculatorPMNS: public _IOscCalculatorAdjustable<T>
23  {
24  public:
27  virtual ~_OscCalculatorPMNS();
28 
29  virtual _IOscCalculatorAdjustable<T>* Copy() const override;
30 
31  virtual T P(int flavBefore, int flavAfter, double E) override;
32 
33  void SetL (double L ) override {fPropDirty = true; this->fL = L;}
34  void SetRho (double rho ) override {fPropDirty = true; this->fRho = rho;}
35  void SetDmsq21(const T& dmsq21) override {fDmDirty = true; this->fDmsq21 = dmsq21;}
36  void SetDmsq32(const T& dmsq32) override {fDmDirty = true; this->fDmsq32 = dmsq32;}
37  void SetTh12 (const T& th12 ) override {fMixDirty = true; this->fTh12 = th12;}
38  void SetTh13 (const T& th13 ) override {fMixDirty = true; this->fTh13 = th13;}
39  void SetTh23 (const T& th23 ) override {fMixDirty = true; this->fTh23 = th23;}
40  void SetdCP (const T& dCP ) override {fMixDirty = true; this->fdCP = dCP;}
41 
42  TMD5* GetParamsHash() const override
43  {
45  }
46 
47  protected:
49 
50  bool fMixDirty;
51  bool fDmDirty;
52  bool fPropDirty;
53  double fPrevE;
54  int fPrevAnti;
55  };
56 
58 
59 } // namespace
60 
61 #endif
void SetL(double L) override
void SetDmsq21(const T &dmsq21) override
virtual _IOscCalculatorAdjustable< T > * Copy() const override
void SetRho(double rho) override
double th23
Definition: runWimpSim.h:98
TMD5 * GetParamsHashDefault(const std::string &txt) const
This is only a safe implementation if your calculator only depends on these eight parameters...
void SetTh23(const T &th23) override
double th12
Definition: runWimpSim.h:98
Adapt the PMNS calculator to standard interface.
Definition: StanTypedefs.h:28
void SetDmsq32(const T &dmsq32) override
TMD5 * GetParamsHash() const override
Use to check two calculators are in the same state.
virtual T P(int flavBefore, int flavAfter, double E) override
E in GeV; flavors as PDG codes (so, neg==>antinu)
static constexpr double L
Float_t E
Definition: plot.C:20
_OscCalculatorPMNS< double > OscCalculatorPMNS
double dCP
void SetdCP(const T &dCP) override
Oscillation probability calculators.
Definition: Calcs.h:5
virtual T P(int flavBefore, int flavAfter, double E)=0
E in GeV; flavors as PDG codes (so, neg==>antinu)
void SetTh12(const T &th12) override
double dmsq32
double T
Definition: Xdiff_gwt.C:5
void SetTh13(const T &th13) override
double th13
Definition: runWimpSim.h:98