#include "/cvmfs/nova.opensciencegrid.org/externals/osclib/v00.07/src/OscLib/PMNS_NSI.h"
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) |
virtual void | SetMix (const T &th12, const T &th23, const T &th13, const T &deltacp) |
virtual void | SetDeltaMsqrs (const T &dm21, const T &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 T | P (int flv) const |
virtual void | ResetToFlavour (int flv=1) |
Protected Types | |
typedef std::complex< T > | complex |
Protected Member Functions | |
virtual void | SolveHam (double E, double Ne, int anti) |
virtual void | BuildHlv () |
virtual void | SetVacuumEigensystem (double E, int anti) |
Protected Attributes | |
double | fEps_ee |
NSI parameter ee. More... | |
double | fEps_mumu |
NSI parameter mumu. More... | |
double | fEps_tautau |
NSI parameter tautau. More... | |
complex | fEps_emu |
NSI parameter emu. More... | |
complex | fEps_etau |
NSI parameter etau. More... | |
complex | fEps_mutau |
NSI parameter mutau. More... | |
bool | fResetNSI |
True when NSI parameters are changed. More... | |
T | fDm21 |
m^2_2 - m^2_1 in vacuum More... | |
T | fDm31 |
m^2_3 - m^2_1 in vacuum More... | |
T | fTheta12 |
theta12 mixing angle More... | |
T | fTheta23 |
theta23 mixing angle More... | |
T | fTheta13 |
theta13 mixing angle More... | |
T | fDeltaCP |
CP violating phase. More... | |
complex | fHlv [3][3] |
dimensionless matrix H*lv More... | |
complex | fEvec [3][3] |
Eigenvectors of the Hamiltonian. More... | |
T | fEval [3] |
Eigenvalues of the Hamiltonian. More... | |
complex | fNuState [3] |
The neutrino current state. More... | |
double | fCachedNe |
Cached electron density. More... | |
double | fCachedE |
Cached neutrino energy. More... | |
int | fCachedAnti |
Cached nu/nubar selector. More... | |
bool | fBuiltHlv |
Tag to avoid rebuilding Hlv. More... | |
Definition at line 21 of file PMNS_NSI.h.
|
protectedinherited |
PMNS_NSI::PMNS_NSI | ( | ) |
Definition at line 38 of file PMNS_NSI.cxx.
References osc::_PMNSOpt< T >::fCachedAnti, osc::_PMNSOpt< T >::fCachedE, osc::_PMNSOpt< T >::fCachedNe, osc::_PMNSOpt< T >::ResetToFlavour(), osc::_PMNSOpt< T >::SetDeltaMsqrs(), osc::_PMNSOpt< T >::SetMix(), and SetNSI().
|
virtual |
Definition at line 49 of file PMNS_NSI.cxx.
|
protectedvirtualinherited |
Build H*lv, where H is the Hamiltonian in vacuum on flavour basis and lv is the oscillation length
Build H*lv, where H is the Hamiltonian in vacuum on flavour basis and lv is the oscillation length
This is a dimentionless hermitian matrix, so only the upper triangular part needs to be filled
The construction of the Hamiltonian avoids computing terms that are simply zero. This has a big impact in the computation time. This construction is described in DocDB-XXXX (to be posted)
Definition at line 140 of file PMNSOpt.cxx.
References std::cos(), h11, h12, std::sin(), and T.
Referenced by SolveHam().
Return the probability of final state in flavour flv
flv | - final flavor (0,1,2) = (nue,numu,nutau) |
Compute oscillation probability of flavour flv
0 = nue, 1 = numu, 2 = nutau
Definition at line 384 of file PMNSOpt.cxx.
References ana::assert(), and norm.
Referenced by osc::OscCalcPMNS_NSI::P().
|
virtualinherited |
Propagate a neutrino through a slab of matter
L | - length of slab (km) |
E | - neutrino energy in GeV |
Ne | - electron number density of matter in mole/cm^3 |
anti | - +1 = neutrino case, -1 = anti-neutrino case |
.....................................................................
Propagate the current neutrino state over a distance L in km with an energy E in GeV through constant matter of density Ne in mole/cm^3.
anti | - +1 = neutrino case, -1 = anti-neutrino case |
Definition at line 242 of file PMNSOpt.cxx.
References plot_validation_datamc::c, std::cos(), MECModelEnuComparisons::i, calib::j, osc::kKm2eV, and std::sin().
Referenced by osc::OscCalcPMNS_NSI::P().
|
virtualinherited |
Do several layers in a row. L and Ne must have the same length
Definition at line 278 of file PMNSOpt.cxx.
|
virtualinherited |
Propagate a neutrino through vacuum
L | - length of slab (km) |
E | - neutrino energy in GeV |
anti | - +1 = neutrino case, -1 = anti-neutrino case |
.....................................................................
Propagate the current neutrino state over a distance L in km with an energy E in GeV through vacuum
anti | - +1 = neutrino case, -1 = anti-neutrino case |
Definition at line 337 of file PMNSOpt.cxx.
References stan::math::exp(), MECModelEnuComparisons::i, calib::j, osc::kKm2eV, CLHEP::L, and T.
Erase memory of neutrino propagate and reset neutrino to pure flavour flv. Preserves values of mixing and mass-splittings
flv | - final flavor (0,1,2) = (nue,numu,nutau) |
Reset the neutrino state back to a pure flavour where it starts
Definition at line 368 of file PMNSOpt.cxx.
References MECModelEnuComparisons::i.
Referenced by osc::OscCalcPMNS_NSI::P(), and PMNS_NSI().
|
virtualinherited |
Set the mass-splittings
dm21 | - m2^2-m1^2 in eV^2 |
dm32 | - m3^2-m2^2 in eV^2 |
Set the mass-splittings. These are m_2^2-m_1^2, m_3^2-m_2^2 and m_3^2-m_1^2 in eV^2
Definition at line 115 of file PMNSOpt.cxx.
Referenced by osc::OscCalcPMNS_NSI::P(), and PMNS_NSI().
|
virtualinherited |
Set the parameters of the PMNS matrix
th12 | - The angle theta_12 in radians |
th23 | - The angle theta_23 in radians |
th13 | - The angle theta_13 in radians |
deltacp | - The CPV phase delta_CP in radians |
Definition at line 97 of file PMNSOpt.cxx.
References th12, th13, and th23.
Referenced by osc::OscCalcPMNS_NSI::P(), and PMNS_NSI().
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_NSI.cxx.
References std::cos(), fEps_ee, fEps_emu, fEps_etau, fEps_mumu, fEps_mutau, fEps_tautau, fResetNSI, and std::sin().
Referenced by osc::OscCalcPMNS_NSI::P(), and PMNS_NSI().
|
protectedvirtualinherited |
Set the eigensystem to the analytic solution of the vacuum Hamiltonian
E | - neutrino energy in GeV |
anti | - +1 = neutrino case, -1 = anti-neutrino case |
.....................................................................
We know the vacuum eigensystem, so just write it explicitly The eigenvalues depend on energy, so E needs to be provided in GeV
anti | - +1 = neutrino case, -1 = anti-neutrino case |
Definition at line 303 of file PMNSOpt.cxx.
References std::cos(), E, osc::kGeV2eV, std::sin(), and T.
Solve the full Hamiltonian for eigenvectors and eigenvalues
E | - neutrino energy in GeV |
Ne | - electron number density of matter in mole/cm^3 |
anti | - +1 = neutrino case, -1 = anti-neutrino case |
Solve the full Hamiltonian with Non-Standard Interactions for eigenvectors and eigenvalues.
Reimplemented from osc::_PMNSOpt< T >.
Definition at line 75 of file PMNS_NSI.cxx.
References genie::units::A, osc::_PMNSOpt< T >::BuildHlv(), E, osc::_PMNSOpt< T >::fBuiltHlv, osc::_PMNSOpt< T >::fCachedAnti, osc::_PMNSOpt< T >::fCachedE, osc::_PMNSOpt< T >::fCachedNe, osc::_PMNSOpt< T >::fDm31, fEps_ee, fEps_emu, fEps_etau, fEps_mumu, fEps_mutau, fEps_tautau, osc::_PMNSOpt< T >::fEval, osc::_PMNSOpt< T >::fEvec, osc::_PMNSOpt< T >::fHlv, fResetNSI, MECModelEnuComparisons::i, calib::j, osc::kGeV2eV, osc::kGf, osc::kK2, and zheevh3().
|
protectedinherited |
|
protectedinherited |
Cached nu/nubar selector.
Definition at line 125 of file PMNSOpt.h.
Referenced by PMNS_NSI(), and SolveHam().
|
protectedinherited |
Cached neutrino energy.
Definition at line 124 of file PMNSOpt.h.
Referenced by PMNS_NSI(), and SolveHam().
|
protectedinherited |
Cached electron density.
Definition at line 123 of file PMNSOpt.h.
Referenced by PMNS_NSI(), and SolveHam().
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protected |
|
protected |
NSI parameter emu.
Definition at line 40 of file PMNS_NSI.h.
Referenced by SetNSI(), and SolveHam().
|
protected |
NSI parameter etau.
Definition at line 41 of file PMNS_NSI.h.
Referenced by SetNSI(), and SolveHam().
|
protected |
NSI parameter mumu.
Definition at line 38 of file PMNS_NSI.h.
Referenced by SetNSI(), and SolveHam().
|
protected |
NSI parameter mutau.
Definition at line 42 of file PMNS_NSI.h.
Referenced by SetNSI(), and SolveHam().
|
protected |
NSI parameter tautau.
Definition at line 39 of file PMNS_NSI.h.
Referenced by SetNSI(), and SolveHam().
|
protectedinherited |
|
protectedinherited |
Eigenvectors of the Hamiltonian.
Definition at line 120 of file PMNSOpt.h.
Referenced by SolveHam().
|
protectedinherited |
|
protectedinherited |
|
protected |
True when NSI parameters are changed.
Definition at line 43 of file PMNS_NSI.h.
Referenced by SetNSI(), and SolveHam().
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |