PMNSOpt.h
Go to the documentation of this file.
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 #ifndef PMNSOPT_H
33 #define PMNSOPT_H
34 #include <list>
35 #include <complex>
36 
37 // Some useful complex numbers
38 static std::complex<double> zero(0.0,0.0);
39 static std::complex<double> one (1.0,0.0);
40 
41 // Unit conversion constants
42 static const double kKm2eV = 5.06773103202e+09;
43 static const double kK2 = 4.62711492217e-09;
44 static const double kGeV2eV = 1.0e+09;
45 
46 //G_F in units of GeV^-2
47 static const double kGf = 1.166371e-5;
48 
49 namespace osc {
50  class PMNSOpt {
51  public:
52  PMNSOpt();
53  virtual ~PMNSOpt();
54 
55  virtual void SetMix(double th12, double th23, double th13, double deltacp);
56 
57  virtual void SetDeltaMsqrs(double dm21, double dm32);
58 
59  virtual void PropMatter(double L, double E, double Ne, int anti=1);
60  virtual void PropMatter(const std::list<double>& L,
61  double E,
62  const std::list<double>& Ne,
63  int anti);
64 
65  virtual void PropVacuum(double L, double E, int anti=1);
66 
67  virtual double P(int flv) const;
68 
69  virtual void ResetToFlavour(int flv=1);
70 
71  protected:
72  // A shorthand...
73  typedef std::complex<double> complex;
74 
75  virtual void BuildHlv();
76 
77  virtual void SolveHam(double E, double Ne, int anti);
78 
79  virtual void SetVacuumEigensystem(double E, int anti);
80 
81  double fDm21;
82  double fDm31;
83  double fTheta12;
84  double fTheta23;
85  double fTheta13;
86  double fDeltaCP;
87  complex fHlv[3][3];
88  complex fEvec[3][3];
89  double fEval[3];
90  complex fNuState[3];
91  double fCachedNe;
92  double fCachedE;
94  bool fBuiltHlv;
95  };
96 }
97 #endif
98 
static const double kGeV2eV
Definition: PMNSOpt.h:44
double fEval[3]
Definition: PMNSOpt.h:89
double fDeltaCP
Definition: PMNSOpt.h:86
double fCachedE
Definition: PMNSOpt.h:92
double fCachedNe
Definition: PMNSOpt.h:91
static const double kKm2eV
Definition: PMNSOpt.h:42
virtual void PropMatter(double L, double E, double Ne, int anti=1)
complex fEvec[3][3]
Definition: PMNSOpt.h:88
double fTheta12
Definition: PMNSOpt.h:83
static const double kGf
Definition: PMNSOpt.h:47
double fTheta13
Definition: PMNSOpt.h:85
virtual void PropVacuum(double L, double E, int anti=1)
virtual void SetVacuumEigensystem(double E, int anti)
virtual double P(int flv) const
std::complex< double > complex
Definition: PMNSOpt.h:73
double fDm31
Definition: PMNSOpt.h:82
virtual void ResetToFlavour(int flv=1)
double fTheta23
Definition: PMNSOpt.h:84
complex fNuState[3]
Definition: PMNSOpt.h:90
static std::complex< double > zero(0.0, 0.0)
virtual void SolveHam(double E, double Ne, int anti)
virtual void SetMix(double th12, double th23, double th13, double deltacp)
bool fBuiltHlv
Definition: PMNSOpt.h:94
virtual void SetDeltaMsqrs(double dm21, double dm32)
double fDm21
Definition: PMNSOpt.h:81
Definition: EarthModel.h:12
static const double kK2
Definition: PMNSOpt.h:43
virtual ~PMNSOpt()
int fCachedAnti
Definition: PMNSOpt.h:93
virtual void BuildHlv()
complex fHlv[3][3]
Definition: PMNSOpt.h:87
static std::complex< double > one(1.0, 0.0)