OscCalcPMNS_CPT.h
Go to the documentation of this file.
1 #ifndef OSC_OSCCALCULATORPMNSCPT_H
2 #define OSC_OSCCALCULATORPMNSCPT_H
3 
4 //////////////////////////////////////////////////////////////////////////
5 // //
6 // \file OscCalcPMNS_CPT.h //
7 // //
8 // \brief Adapt the PMNS calculator to standard interface and include //
9 // neutrino and anti neutrino oscillations seperately //
10 // \author <m.tamsett@sussex.ac.uk> //
11 // //
12 //////////////////////////////////////////////////////////////////////////
13 
14 #include "OscLib/IOscCalc.h"
15 #include "OscLib/PMNS.h"
16 
17 namespace osc
18 {
19  /// Adapt the \ref PMNS calculator to standard interface and include neutrino and anti neutrino oscillations seperately
21  {
22  public:
23  using IOscCalc::P;
25  virtual ~OscCalcPMNS_CPT();
26 
27  virtual IOscCalcAdjustable* Copy() const override;
28 
29  virtual double P(int flavBefore, int flavAfter, double E) override;
30 
31  virtual void SetL (double L ) override {fPropDirty = true; fL = L;}
32  virtual void SetRho (double rho ) override {fPropDirty = true; fRho = rho;}
33  // Neutrino parameters
34  virtual void SetDmsq21(const double& dmsq21) override {fDmDirty = true; fDmsq21 = dmsq21;}
35  virtual void SetDmsq32(const double& dmsq32) override {fDmDirty = true; fDmsq32 = dmsq32;}
36  virtual void SetTh12 (const double& th12 ) override {fMixDirty = true; fTh12 = th12;}
37  virtual void SetTh13 (const double& th13 ) override {fMixDirty = true; fTh13 = th13;}
38  virtual void SetTh23 (const double& th23 ) override {fMixDirty = true; fTh23 = th23;}
39  virtual void SetdCP (const double& dCP ) override {fMixDirty = true; fdCP = dCP;}
40  // Anti neutrino parameters
41  virtual void SetDmsq21Bar(double dmsq21_bar){fDmDirty_bar = true; fDmsq21_bar = dmsq21_bar;}
42  virtual void SetDmsq32Bar(double dmsq32_bar){fDmDirty_bar = true; fDmsq32_bar = dmsq32_bar;}
43  virtual void SetTh12Bar (double th12_bar ){fMixDirty_bar = true; fTh12_bar = th12_bar;}
44  virtual void SetTh13Bar (double th13_bar ){fMixDirty_bar = true; fTh13_bar = th13_bar;}
45  virtual void SetTh23Bar (double th23_bar ){fMixDirty_bar = true; fTh23_bar = th23_bar;}
46  virtual void SetdCPBar (double dCP_bar ){fMixDirty_bar = true; fdCP_bar = dCP_bar;}
47  virtual double GetDmsq21Bar() const { return fDmsq21_bar ; }
48  virtual double GetDmsq32Bar() const { return fDmsq32_bar ; }
49  virtual double GetTh12Bar () const { return fTh12_bar ; }
50  virtual double GetTh13Bar () const { return fTh13_bar ; }
51  virtual double GetTh23Bar () const { return fTh23_bar ; }
52  virtual double GetdCPBar () const { return fdCP_bar ; }
53 
54  virtual TMD5* GetParamsHash() const override
55  {
57  }
58  TMD5* GetParamsHashDefaultBar() const;
59  protected:
61  bool fMixDirty;
62  bool fDmDirty;
63  bool fPropDirty;
64  double fPrevE;
65  int fPrevAnti;
66 
67  double fDmsq21_bar;
68  double fDmsq32_bar;
69  double fTh12_bar;
70  double fTh13_bar;
71  double fTh23_bar;
72  double fdCP_bar;
77  double fPrevE_bar;
79  };
80 
81 } // namespace
82 
83 #endif
virtual void SetTh23(const double &th23) override
TMD5 * GetParamsHashDefaultBar() const
virtual void SetTh12(const double &th12) override
double th23
Definition: runWimpSim.h:98
virtual double GetTh12Bar() const
virtual IOscCalcAdjustable * Copy() const override
double th12
Definition: runWimpSim.h:98
virtual double GetDmsq21Bar() const
virtual double GetTh13Bar() const
TMD5 * GetParamsHashDefault(const std::string &txt) const
This is only a safe implementation if your calculator only depends on these eight parameters...
Adapt the PMNS calculator to standard interface and include neutrino and anti neutrino oscillations s...
virtual double GetDmsq32Bar() const
virtual void SetDmsq21Bar(double dmsq21_bar)
static constexpr double L
Float_t E
Definition: plot.C:20
double dCP
virtual void SetRho(double rho) override
virtual void SetdCP(const double &dCP) override
virtual void SetTh12Bar(double th12_bar)
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)
virtual TMD5 * GetParamsHash() const override
Use to check two calculators are in the same state.
virtual void SetdCPBar(double dCP_bar)
virtual void SetTh13(const double &th13) override
virtual double P(int flavBefore, int flavAfter, double E) override
E in GeV; flavors as PDG codes (so, neg==>antinu)
double dmsq32
virtual void SetTh13Bar(double th13_bar)
virtual void SetL(double L) override
virtual double GetdCPBar() const
virtual void SetTh23Bar(double th23_bar)
virtual void SetDmsq21(const double &dmsq21) override
virtual void SetDmsq32(const double &dmsq32) override
virtual void SetDmsq32Bar(double dmsq32_bar)
double th13
Definition: runWimpSim.h:98
virtual double GetTh23Bar() const