OscCalcPMNS.h
Go to the documentation of this file.
1 #ifndef OSC_OSCCALCULATORPMNS_H
2 #define OSC_OSCCALCULATORPMNS_H
3 
4 //////////////////////////////////////////////////////////////////////////
5 // //
6 // \file OscCalcPMNS.h //
7 // //
8 // \brief Adapt the PMNS calculator to standard interface //
9 // \author <c.backhouse@ucl.ac.uk> //
10 // //
11 //////////////////////////////////////////////////////////////////////////
12 
13 #include <cassert>
14 
15 #include "OscLib/IOscCalc.h"
16 #include "OscLib/PMNS.h"
17 
18 namespace osc
19 {
20  /// Adapt the \ref PMNS calculator to standard interface
21  template <typename T>
22  class _OscCalcPMNS: public _IOscCalcAdjustable<T>
23  {
24  public:
25  using _IOscCalc<T>::P;
26  _OscCalcPMNS();
27  virtual ~_OscCalcPMNS();
28 
29  virtual _IOscCalcAdjustable<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 SetDmsq21(const T &dmsq21) override
Definition: OscCalcPMNS.h:35
void SetTh12(const T &th12) override
Definition: OscCalcPMNS.h:37
void SetTh23(const T &th23) override
Definition: OscCalcPMNS.h:39
double th23
Definition: runWimpSim.h:98
Adapt the PMNS calculator to standard interface.
Definition: StanTypedefs.h:28
void SetL(double L) override
Definition: OscCalcPMNS.h:33
double th12
Definition: runWimpSim.h:98
virtual ~_OscCalcPMNS()
Definition: OscCalcPMNS.cxx:14
TMD5 * GetParamsHashDefault(const std::string &txt) const
This is only a safe implementation if your calculator only depends on these eight parameters...
Definition: IOscCalc.cxx:49
TMD5 * GetParamsHash() const override
Use to check two calculators are in the same state.
Definition: OscCalcPMNS.h:42
static constexpr double L
Float_t E
Definition: plot.C:20
double dCP
void SetdCP(const T &dCP) override
Definition: OscCalcPMNS.h:40
void SetDmsq32(const T &dmsq32) override
Definition: OscCalcPMNS.h:36
virtual T P(int flavBefore, int flavAfter, double E) override
E in GeV; flavors as PDG codes (so, neg==>antinu)
Definition: OscCalcPMNS.cxx:27
void SetTh13(const T &th13) override
Definition: OscCalcPMNS.h:38
void SetRho(double rho) override
Definition: OscCalcPMNS.h:34
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)
_PMNS< T > fPMNS
Definition: OscCalcPMNS.h:48
_OscCalcPMNS< double > OscCalcPMNS
Definition: OscCalcPMNS.h:57
double dmsq32
double T
Definition: Xdiff_gwt.C:5
double th13
Definition: runWimpSim.h:98
virtual _IOscCalcAdjustable< T > * Copy() const override
Definition: OscCalcPMNS.cxx:20