Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
osc::PMNS_NSI Class Reference

#include <PMNS_NSI.h>

Inheritance diagram for osc::PMNS_NSI:
osc::PMNSOpt

Public Member Functions

 PMNS_NSI ()
 
virtual ~PMNS_NSI ()
 
void SetNSI (double eps_ee, double eps_emu, double eps_etau, double eps_mumu, double eps_mutau, double eps_tautau, double delta_emu=0, double delta_etau=0, double delta_mutau=0)
 
- Public Member Functions inherited from osc::PMNSOpt
 PMNSOpt ()
 
virtual ~PMNSOpt ()
 
virtual void SetMix (double th12, double th23, double th13, double deltacp)
 
virtual void SetDeltaMsqrs (double dm21, double dm32)
 
virtual void PropMatter (double L, double E, double Ne, int anti=1)
 
virtual void PropMatter (const std::list< double > &L, double E, const std::list< double > &Ne, int anti)
 
virtual void PropVacuum (double L, double E, int anti=1)
 
virtual double P (int flv) const
 
virtual void ResetToFlavour (int flv=1)
 

Protected Member Functions

virtual void SolveHam (double E, double Ne, int anti)
 
- Protected Member Functions inherited from osc::PMNSOpt
virtual void BuildHlv ()
 
virtual void SetVacuumEigensystem (double E, int anti)
 

Protected Attributes

double fEps_ee
 
double fEps_mumu
 
double fEps_tautau
 
complex fEps_emu
 
complex fEps_etau
 
complex fEps_mutau
 
bool fResetNSI
 
- Protected Attributes inherited from osc::PMNSOpt
double fDm21
 
double fDm31
 
double fTheta12
 
double fTheta23
 
double fTheta13
 
double fDeltaCP
 
complex fHlv [3][3]
 
complex fEvec [3][3]
 
double fEval [3]
 
complex fNuState [3]
 
double fCachedNe
 
double fCachedE
 
int fCachedAnti
 
bool fBuiltHlv
 

Additional Inherited Members

- Protected Types inherited from osc::PMNSOpt
typedef std::complex< double > complex
 

Detailed Description

Definition at line 21 of file PMNS_NSI.h.

Constructor & Destructor Documentation

PMNS_NSI::PMNS_NSI ( )

Definition at line 38 of file PMNS_NCI.cxx.

39 {
40  this->SetMix(0.,0.,0.,0.);
41  this->SetDeltaMsqrs(0.,0.);
42  this->SetNSI(0.,0.,0.,0.,0.,0.,0.,0.,0.);
43  this->ResetToFlavour(1);
44  fCachedNe = 0.0;
45  fCachedE = 1.0;
46  fCachedAnti = 1;
47 }
double fCachedE
Definition: PMNSOpt.h:92
double fCachedNe
Definition: PMNSOpt.h:91
virtual void ResetToFlavour(int flv=1)
void SetNSI(double eps_ee, double eps_emu, double eps_etau, double eps_mumu, double eps_mutau, double eps_tautau, double delta_emu=0, double delta_etau=0, double delta_mutau=0)
Definition: PMNS_NCI.cxx:54
virtual void SetMix(double th12, double th23, double th13, double deltacp)
virtual void SetDeltaMsqrs(double dm21, double dm32)
int fCachedAnti
Definition: PMNSOpt.h:93
PMNS_NSI::~PMNS_NSI ( )
virtual

Definition at line 49 of file PMNS_NCI.cxx.

49  {
50 }

Member Function Documentation

void PMNS_NSI::SetNSI ( double  eps_ee,
double  eps_emu,
double  eps_etau,
double  eps_mumu,
double  eps_mutau,
double  eps_tautau,
double  delta_emu = 0,
double  delta_etau = 0,
double  delta_mutau = 0 
)

Definition at line 54 of file PMNS_NCI.cxx.

57 {
58 
59  fEps_ee = eps_ee;
60  fEps_mumu = eps_mumu;
61  fEps_tautau = eps_tautau;
62  fEps_emu = eps_emu * complex(cos(delta_emu) , sin(delta_emu));
63  fEps_etau = eps_etau * complex(cos(delta_etau) , sin(delta_etau));
64  fEps_mutau = eps_mutau * complex(cos(delta_mutau) , sin(delta_mutau));
65 
66  fResetNSI = true;
67 
68 }
complex fEps_emu
Definition: PMNS_NSI.h:36
bool fResetNSI
Definition: PMNS_NSI.h:39
std::complex< double > complex
Definition: PMNSOpt.h:73
complex fEps_mutau
Definition: PMNS_NSI.h:38
double fEps_mumu
Definition: PMNS_NSI.h:34
double fEps_tautau
Definition: PMNS_NSI.h:35
double fEps_ee
Definition: PMNS_NSI.h:33
complex fEps_etau
Definition: PMNS_NSI.h:37
void PMNS_NSI::SolveHam ( double  E,
double  Ne,
int  anti 
)
protectedvirtual

Reimplemented from osc::PMNSOpt.

Definition at line 71 of file PMNS_NCI.cxx.

72 {
73 
74  // Check if anything has changed before recalculating
75  if(Ne!=fCachedNe || E!=fCachedE || anti!=fCachedAnti || !fBuiltHlv || fResetNSI){
76  fCachedNe = Ne;
77  fCachedE = E;
78  fCachedAnti = anti;
79  fResetNSI = false;
80  this->BuildHlv();
81  }
82  else return;
83 
84  double lv = 2 * kGeV2eV*E / fDm31; // Osc. length in eV^-1
85  double kr2GNe = kK2*M_SQRT2*kGf*Ne; // Matter potential in eV
86 
87  // Finish build Hamiltonian in matter with dimension of eV
88  complex A[3][3];
89  for(int i=0;i<3;i++){
90  A[i][i] = fHlv[i][i]/lv;
91  for(int j=i+1;j<3;j++){
92  if(anti>0) A[i][j] = fHlv[i][j]/lv;
93  else A[i][j] = conj(fHlv[i][j])/lv;
94  }
95  }
96  if(anti>0){
97  A[0][0] += kr2GNe * (1 + fEps_ee);
98  A[0][1] += kr2GNe * fEps_emu;
99  A[0][2] += kr2GNe * fEps_etau;
100  A[1][1] += kr2GNe * fEps_mumu;
101  A[1][2] += kr2GNe * fEps_mutau;
102  A[2][2] += kr2GNe * fEps_tautau;
103  }
104  else{
105  A[0][0] -= kr2GNe * (1 + fEps_ee);
106  A[0][1] -= kr2GNe * fEps_emu;
107  A[0][2] -= kr2GNe * fEps_etau;
108  A[1][1] -= kr2GNe * fEps_mumu;
109  A[1][2] -= kr2GNe * fEps_mutau;
110  A[2][2] -= kr2GNe * fEps_tautau;
111  }
112 
113  // Solve Hamiltonian for eigensystem using the GLoBES method
114  zheevh3(A,fEvec,fEval);
115 
116 }
double fEval[3]
Definition: PMNSOpt.h:89
double fCachedE
Definition: PMNSOpt.h:92
double fCachedNe
Definition: PMNSOpt.h:91
complex fEps_emu
Definition: PMNS_NSI.h:36
complex fEvec[3][3]
Definition: PMNSOpt.h:88
static const double kGf
Definition: PMNSOpt.h:47
bool fResetNSI
Definition: PMNS_NSI.h:39
std::complex< double > complex
Definition: PMNSOpt.h:73
double fDm31
Definition: PMNSOpt.h:82
static const double kK2
Definition: PMNS.cxx:47
complex fEps_mutau
Definition: PMNS_NSI.h:38
double fEps_mumu
Definition: PMNS_NSI.h:34
bool fBuiltHlv
Definition: PMNSOpt.h:94
double fEps_tautau
Definition: PMNS_NSI.h:35
double fEps_ee
Definition: PMNS_NSI.h:33
E
Definition: 018_def.c:13
static const double kGeV2eV
Definition: PMNS.cxx:48
#define A
Definition: memgrp.cpp:38
int fCachedAnti
Definition: PMNSOpt.h:93
virtual void BuildHlv()
complex fHlv[3][3]
Definition: PMNSOpt.h:87
complex fEps_etau
Definition: PMNS_NSI.h:37

Member Data Documentation

double osc::PMNS_NSI::fEps_ee
protected

Definition at line 33 of file PMNS_NSI.h.

complex osc::PMNS_NSI::fEps_emu
protected

Definition at line 36 of file PMNS_NSI.h.

complex osc::PMNS_NSI::fEps_etau
protected

Definition at line 37 of file PMNS_NSI.h.

double osc::PMNS_NSI::fEps_mumu
protected

Definition at line 34 of file PMNS_NSI.h.

complex osc::PMNS_NSI::fEps_mutau
protected

Definition at line 38 of file PMNS_NSI.h.

double osc::PMNS_NSI::fEps_tautau
protected

Definition at line 35 of file PMNS_NSI.h.

bool osc::PMNS_NSI::fResetNSI
protected

Definition at line 39 of file PMNS_NSI.h.


The documentation for this class was generated from the following files: