OscProb
PMNS_NSI.h
Go to the documentation of this file.
1
20
21#ifndef PMNS_NSI_H
22#define PMNS_NSI_H
23
24#include "PMNS_Fast.h"
25
26namespace OscProb {
27
28 class PMNS_NSI : public PMNS_Fast {
29 public:
30 PMNS_NSI();
31 virtual ~PMNS_NSI();
32
34 virtual void SetEps(int flvi, int flvj, double val, double phase);
35
37 virtual complexD GetEps(int flvi, int flvj);
38
40 void SetNSI(double eps_ee, double eps_emu, double eps_etau,
41 double eps_mumu, double eps_mutau, double eps_tautau,
42 double delta_emu = 0, double delta_etau = 0,
43 double delta_mutau = 0);
44
45 // Set the diagonal real NSI parameters
46 virtual void SetEps_ee(double a);
47 virtual void SetEps_mumu(double a);
48 virtual void SetEps_tautau(double a);
49
50 // Set the off-diagonal complex NSI parameters
51 virtual void SetEps_emu(double a, double phi);
52 virtual void SetEps_etau(double a,
53 double phi);
54 virtual void SetEps_mutau(double a,
55 double phi);
56
57 // Set relative NSI couplings
58 virtual void SetElecCoup(double e);
59 virtual void SetUpCoup(double u);
60 virtual void SetDownCoup(double d);
61 virtual void SetFermCoup(double e, double u,
62 double d);
63 virtual void SetCoupByIndex(double c,
64 int i);
65
66 // Get relative NSI couplings
67 virtual double GetElecCoup();
68 virtual double GetUpCoup();
69 virtual double GetDownCoup();
70 virtual double GetZoACoup();
71
72 protected:
74 virtual void UpdateHam();
75
76 complexD fEps[3][3];
77
78 double fNSIcoup[3];
79 };
80
81} // namespace OscProb
82
83#endif
84
Implementation of oscillations of neutrinos in matter in a three-neutrino framework.
Definition: PMNS_Fast.h:40
Implementation of oscillations of neutrinos in matter in a three-neutrino framework with NSI.
Definition: PMNS_NSI.h:28
virtual void SetEps_ee(double a)
Set eps_ee parameter.
Definition: PMNS_NSI.cxx:158
double fNSIcoup[3]
Relative NSI couplings.
Definition: PMNS_NSI.h:78
virtual void SetCoupByIndex(double c, int i)
Set a given fermion coupling.
Definition: PMNS_NSI.cxx:261
virtual void SetUpCoup(double u)
Set u-quark couling.
Definition: PMNS_NSI.cxx:290
virtual double GetZoACoup()
Get effective Z/A coupling.
Definition: PMNS_NSI.cxx:341
virtual double GetDownCoup()
Get d-quark couling.
Definition: PMNS_NSI.cxx:335
virtual void SetEps_tautau(double a)
Set eps_tautau parameter.
Definition: PMNS_NSI.cxx:180
virtual double GetUpCoup()
Get u-quark couling.
Definition: PMNS_NSI.cxx:329
virtual complexD GetEps(int flvi, int flvj)
Get any given NSI parameter.
Definition: PMNS_NSI.cxx:129
virtual void SetEps_etau(double a, double phi)
Set eps_etau parameter.
Definition: PMNS_NSI.cxx:204
virtual void SetFermCoup(double e, double u, double d)
Set all fermion couplings.
Definition: PMNS_NSI.cxx:312
virtual void SetEps(int flvi, int flvj, double val, double phase)
Set any given NSI parameter.
Definition: PMNS_NSI.cxx:86
virtual void SetElecCoup(double e)
Set electron coupling.
Definition: PMNS_NSI.cxx:280
virtual ~PMNS_NSI()
Destructor.
Definition: PMNS_NSI.cxx:36
PMNS_NSI()
Constructor.
Definition: PMNS_NSI.cxx:25
virtual void UpdateHam()
Build the full Hamiltonian.
Definition: PMNS_NSI.cxx:226
complexD fEps[3][3]
Stores each NSI parameter.
Definition: PMNS_NSI.h:76
virtual void SetDownCoup(double d)
Set d-quark couling.
Definition: PMNS_NSI.cxx:300
virtual void SetEps_mumu(double a)
Set eps_mumu parameter.
Definition: PMNS_NSI.cxx:169
virtual void SetEps_mutau(double a, double phi)
Set eps_mutau parameter.
Definition: PMNS_NSI.cxx:216
virtual void SetEps_emu(double a, double phi)
Set eps_emu parameter.
Definition: PMNS_NSI.cxx:192
virtual double GetElecCoup()
Get electron coupling.
Definition: PMNS_NSI.cxx:323
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)
Set the NSI parameters all at once.
Definition: PMNS_NSI.cxx:55
Some useful general definitions.
Definition: Absorption.h:6
std::complex< double > complexD
Definition: Definitions.h:21