OscCalcPMNS_NSI.h
Go to the documentation of this file.
1 #ifndef OSC_OSCCALCULATORPMNS_NSI_H
2 #define OSC_OSCCALCULATORPMNS_NSI_H
3 
4 //////////////////////////////////////////////////////////////////////////
5 // //
6 // \file OscCalcPMNS_NSI.h //
7 // //
8 // Adapt the PMNS_NSI calculator to standard interface //
9 // <c.backhouse@ucl.ac.uk> //
10 // Modifications by MAAceroO <marioacero@mail.uniatlantico.edu.co> //
11 //////////////////////////////////////////////////////////////////////////
12 
13 #include "OscLib/IOscCalc.h"
14 #include "OscLib/PMNS_NSI.h"
15 
16 namespace osc
17 {
18  /// \brief Optimized version of \ref OscCalcPMNS
19  ///
20  /// Adapt the \ref PMNS_NSI calculator to standard interface
22  {
23  public:
24  using IOscCalc::P;
26  virtual ~OscCalcPMNS_NSI();
27 
28  IOscCalcAdjustable* Copy() const override;
29 
30  virtual double P(int flavBefore, int flavAfter, double E) override;
31 
32  // Standard oscillation parameters
33  virtual void SetL (double L ) override {fPropDirty = true; fL = L;}
34  virtual void SetRho (double rho ) override {fPropDirty = true; fRho = rho;}
35  virtual void SetDmsq21(const double& dmsq21) override {fDmDirty = true; fDmsq21 = dmsq21;}
36  virtual void SetDmsq32(const double& dmsq32) override {fDmDirty = true; fDmsq32 = dmsq32;}
37  virtual void SetTh12 (const double& th12 ) override {fMixDirty = true; fTh12 = th12;}
38  virtual void SetTh13 (const double& th13 ) override {fMixDirty = true; fTh13 = th13;}
39  virtual void SetTh23 (const double& th23 ) override {fMixDirty = true; fTh23 = th23;}
40  virtual void SetdCP (const double& dCP ) override {fMixDirty = true; fdCP = dCP;}
41 
42  // Non-Standard Interactions parameters (three real -diagonal- and thee complex -off-diagonal: norm and phase-)
43  virtual void SetEps_ee (double eps_ee ){fEpsDirty = true; fEps_ee = eps_ee;}
44  virtual void SetEps_emu (double eps_emu ){fEpsDirty = true; fEps_emu = eps_emu;}
45  virtual void SetEps_etau (double eps_etau ){fEpsDirty = true; fEps_etau = eps_etau;}
46  virtual void SetEps_mumu (double eps_mumu ){fEpsDirty = true; fEps_mumu = eps_mumu;}
47  virtual void SetEps_mutau (double eps_mutau ){fEpsDirty = true; fEps_mutau = eps_mutau;}
48  virtual void SetEps_tautau (double eps_tautau ){fEpsDirty = true; fEps_tautau = eps_tautau;}
49  virtual void SetDelta_emu (double Delta_emu ){fEpsDirty = true; fDelta_emu = Delta_emu;}
50  virtual void SetDelta_etau (double Delta_etau ){fEpsDirty = true; fDelta_etau = Delta_etau;}
51  virtual void SetDelta_mutau (double Delta_mutau){fEpsDirty = true; fDelta_mutau = Delta_mutau;}
52 
53  // Setting the state (oscillation parameters)
54  void SetState(std::vector<double> state);
55 
56  // Getters
57  double GetEps_ee() const { return fEps_ee; }
58  double GetEps_emu() const { return fEps_emu; }
59  double GetEps_etau() const { return fEps_etau; }
60  double GetEps_mumu() const { return fEps_mumu; }
61  double GetEps_mutau() const { return fEps_mutau; }
62  double GetEps_tautau() const { return fEps_tautau; }
63  double GetDelta_emu() const { return fDelta_emu; }
64  double GetDelta_etau() const { return fDelta_etau; }
65  double GetDelta_mutau() const { return fDelta_mutau; }
66 
67  // Getting the state (oscillation parameters)
68  std::vector<double> GetState() const;
69 
70  protected:
72 
73  bool fMixDirty;
74  bool fDmDirty;
75  bool fPropDirty;
76  bool fEpsDirty;
77  double fPrevE;
78  int fPrevAnti;
79 
80  double fEps_ee;
81  double fEps_mumu;
82  double fEps_tautau;
83  double fEps_emu;
84  double fEps_etau;
85  double fEps_mutau;
86  double fDelta_emu;
87  double fDelta_etau;
88  double fDelta_mutau;
89 
90  };
91 
94 
95 } // namespace
96 
97 #endif
double GetEps_etau() const
virtual void SetRho(double rho) override
Optimized version of OscCalcPMNS.
virtual void SetDmsq32(const double &dmsq32) override
virtual void SetTh13(const double &th13) override
double th23
Definition: runWimpSim.h:98
virtual void SetEps_tautau(double eps_tautau)
std::vector< double > GetState() const
General interface to oscillation calculators.
Definition: StanTypedefs.h:22
virtual void SetDelta_etau(double Delta_etau)
double GetEps_ee() const
virtual void SetTh12(const double &th12) override
double th12
Definition: runWimpSim.h:98
osc::OscCalcDumb calc
double GetEps_emu() const
double GetEps_mumu() const
double GetEps_mutau() const
virtual void SetL(double L) override
virtual void SetEps_mutau(double eps_mutau)
static constexpr double L
Float_t E
Definition: plot.C:20
double dCP
virtual void SetDelta_mutau(double Delta_mutau)
virtual void SetDelta_emu(double Delta_emu)
virtual void SetEps_mumu(double eps_mumu)
Oscillation probability calculators.
Definition: Calcs.h:5
const OscCalcPMNS_NSI * DowncastToNSI(const IOscCalc *calc)
IOscCalcAdjustable * Copy() const override
virtual T P(int flavBefore, int flavAfter, double E)=0
E in GeV; flavors as PDG codes (so, neg==>antinu)
virtual void SetdCP(const double &dCP) override
double dmsq32
void SetState(std::vector< double > state)
virtual void SetEps_ee(double eps_ee)
double GetEps_tautau() const
virtual double P(int flavBefore, int flavAfter, double E) override
E in GeV; flavors as PDG codes (so, neg==>antinu)
virtual void SetEps_emu(double eps_emu)
double GetDelta_emu() const
virtual void SetDmsq21(const double &dmsq21) override
double GetDelta_mutau() const
double th13
Definition: runWimpSim.h:98
virtual void SetTh23(const double &th23) override
double GetDelta_etau() const
virtual void SetEps_etau(double eps_etau)