#include "/cvmfs/nova.opensciencegrid.org/externals/osclib/v00.07/src/OscLib/PMNS_Sterile.h"
Classes | |
struct | Priv |
Public Member Functions | |
PMNS_Sterile (int NumNus) | |
virtual | ~PMNS_Sterile () |
virtual void | SetAngle (int i, int j, double th) |
virtual void | SetDelta (int i, int j, double delta) |
virtual void | SetDm (int i, double dm) |
virtual void | SetStdPars () |
Set standard 3-flavor parameters. More... | |
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 double | P (int flv) const |
virtual void | ResetToFlavour (int flv=1) |
virtual int | GetNFlavors () const |
Getters. More... | |
virtual double | GetDm (int i) const |
virtual double | GetAngle (int i, int j) const |
virtual double | GetDelta (int i, int j) const |
Protected Types | |
typedef std::complex< double > | complex |
Protected Member Functions | |
virtual void | InitializeVectors () |
virtual void | RotateH (int i, int j) |
Rotate the Hamiltonian by theta_ij and delta_ij. More... | |
virtual void | BuildHms () |
virtual void | SolveHam (double E, double Ne, int anti) |
Protected Attributes | |
int | fNumNus |
std::vector< double > | fDm |
m^2_i - m^2_1 in vacuum More... | |
std::vector< std::vector< double > > | fTheta |
theta[i][j] mixing angle More... | |
std::vector< std::vector< double > > | fDelta |
delta[i][j] CP violating phase More... | |
std::vector< complex > | fNuState |
The neutrino current state. More... | |
std::vector< std::vector< complex > > | fHms |
matrix H*2E in eV^2 More... | |
double | fCachedNe |
Cached electron density. More... | |
double | fCachedE |
Cached neutrino energy. More... | |
int | fCachedAnti |
Cached nu/nubar selector. More... | |
bool | fBuiltHms |
Tag to avoid rebuilding Hms. More... | |
Priv * | d |
Definition at line 18 of file PMNS_Sterile.h.
|
protected |
Definition at line 65 of file PMNS_Sterile.h.
PMNS_Sterile::PMNS_Sterile | ( | int | NumNus | ) |
Definition at line 96 of file PMNS_Sterile.cxx.
References fCachedAnti, fCachedE, fCachedNe, fNumNus, ResetToFlavour(), and SetStdPars().
|
virtual |
Definition at line 108 of file PMNS_Sterile.cxx.
References d.
|
protectedvirtual |
Build Hms = H*2E, where H is the Hamiltonian in vacuum on flavour basis and E is the neutrino energy. This is effectively the matrix of masses squared.
Build Hms = H*2E, where H is the Hamiltonian in vacuum on flavour basis and E is the neutrino energy in eV. Hms is effectively the matrix of masses squared.
This is a 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 361 of file PMNS_Sterile.cxx.
References fBuiltHms, fDm, fHms, fNumNus, MECModelEnuComparisons::i, calib::j, and RotateH().
Referenced by SolveHam().
Definition at line 59 of file PMNS_Sterile.h.
References fTheta.
Referenced by osc::OscCalcSterile::GetAngle().
Definition at line 60 of file PMNS_Sterile.h.
References fDelta.
Referenced by osc::OscCalcSterile::GetDelta().
|
inlinevirtual |
Definition at line 58 of file PMNS_Sterile.h.
References fDm.
Referenced by osc::OscCalcSterile::GetDm().
|
inlinevirtual |
Getters.
Definition at line 57 of file PMNS_Sterile.h.
References fNumNus.
Referenced by osc::OscCalcSterile::GetNFlavors().
|
protectedvirtual |
Definition at line 113 of file PMNS_Sterile.cxx.
References fDelta, fDm, fHms, fNumNus, fNuState, fTheta, and zero().
Referenced by SetStdPars().
|
virtual |
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 509 of file PMNS_Sterile.cxx.
References ana::assert(), fNumNus, fNuState, and norm.
Referenced by osc::OscCalcSterile::P().
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 439 of file PMNS_Sterile.cxx.
References d, stan::math::exp(), osc::PMNS_Sterile::Priv::fEval, osc::PMNS_Sterile::Priv::fEvec, fNumNus, fNuState, MECModelEnuComparisons::i, calib::j, osc::kKm2eV, SolveHam(), and zero().
Referenced by osc::OscCalcSterile::P(), and PropMatter().
|
virtual |
Do several layers in a row. L and Ne must have the same length
Definition at line 473 of file PMNS_Sterile.cxx.
References PropMatter().
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 494 of file PMNS_Sterile.cxx.
References fNumNus, fNuState, MECModelEnuComparisons::i, one(), and zero().
Referenced by osc::OscCalcSterile::P(), and PMNS_Sterile().
Rotate the Hamiltonian by theta_ij and delta_ij.
Rotate the Hamiltonian by the angle theta_ij and phase delta_ij. The rotations assume all off-diagonal elements with i > j are zero. This is correct if the order of rotations is chosen appropriately and it speeds up computation by skipping null terms
Definition at line 226 of file PMNS_Sterile.cxx.
References std::cos(), fDelta, fHms, fTheta, MECModelEnuComparisons::i, calib::j, and std::sin().
Referenced by BuildHms().
Set the parameters of the PMNS matrix
th | - The angle theta_ij in radians |
Set mixing angles in radians. Requires i < j.
Definition at line 148 of file PMNS_Sterile.cxx.
References om::cout, allTimeWatchdog::endl, fBuiltHms, fNumNus, fTheta, MECModelEnuComparisons::i, calib::j, and APDHVSetting::temp.
Referenced by osc::OscCalcSterile::SetAngle(), and SetStdPars().
Set CP violating phases in radians. Requires i+1 < j.
Definition at line 174 of file PMNS_Sterile.cxx.
References om::cout, delta, allTimeWatchdog::endl, fBuiltHms, fDelta, fNumNus, MECModelEnuComparisons::i, calib::j, and APDHVSetting::temp.
Referenced by osc::OscCalcSterile::SetDelta().
Set the mass-splittings
dmi1 | - mi^2-m1^2 in eV^2 |
Set the mass-splittings. These are m_j^2-m_1^2
Definition at line 204 of file PMNS_Sterile.cxx.
References om::cout, allTimeWatchdog::endl, fBuiltHms, fDm, and fNumNus.
Referenced by osc::OscCalcSterile::SetDm(), and SetStdPars().
|
virtual |
Set standard 3-flavor parameters.
Definition at line 125 of file PMNS_Sterile.cxx.
References e, fNumNus, InitializeVectors(), SetAngle(), and SetDm().
Referenced by PMNS_Sterile().
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 for eigenvectors and eigenvalues This uses GSL to solve the eigensystem.
The matter effect assumes # of neutrons = # of electrons.
Definition at line 392 of file PMNS_Sterile.cxx.
References BuildHms(), d, E, fBuiltHms, fCachedAnti, fCachedE, fCachedNe, osc::PMNS_Sterile::Priv::fEval, osc::PMNS_Sterile::Priv::fEvec, fHms, fNumNus, osc::PMNS_Sterile::Priv::H_GSL, MECModelEnuComparisons::i, calib::j, osc::kGeV2eV, osc::kGf, osc::kK2, and osc::PMNS_Sterile::Priv::W_GSL.
Referenced by PropMatter().
|
protected |
Definition at line 96 of file PMNS_Sterile.h.
Referenced by PropMatter(), SolveHam(), and ~PMNS_Sterile().
|
protected |
Tag to avoid rebuilding Hms.
Definition at line 94 of file PMNS_Sterile.h.
Referenced by BuildHms(), SetAngle(), SetDelta(), SetDm(), and SolveHam().
|
protected |
Cached nu/nubar selector.
Definition at line 93 of file PMNS_Sterile.h.
Referenced by PMNS_Sterile(), and SolveHam().
|
protected |
Cached neutrino energy.
Definition at line 92 of file PMNS_Sterile.h.
Referenced by PMNS_Sterile(), and SolveHam().
|
protected |
Cached electron density.
Definition at line 91 of file PMNS_Sterile.h.
Referenced by PMNS_Sterile(), and SolveHam().
|
protected |
delta[i][j] CP violating phase
Definition at line 86 of file PMNS_Sterile.h.
Referenced by GetDelta(), InitializeVectors(), RotateH(), and SetDelta().
|
protected |
m^2_i - m^2_1 in vacuum
Definition at line 84 of file PMNS_Sterile.h.
Referenced by BuildHms(), GetDm(), InitializeVectors(), and SetDm().
|
protected |
matrix H*2E in eV^2
Definition at line 89 of file PMNS_Sterile.h.
Referenced by BuildHms(), InitializeVectors(), RotateH(), and SolveHam().
|
protected |
Definition at line 82 of file PMNS_Sterile.h.
Referenced by BuildHms(), GetNFlavors(), InitializeVectors(), P(), PMNS_Sterile(), PropMatter(), ResetToFlavour(), SetAngle(), SetDelta(), SetDm(), SetStdPars(), and SolveHam().
|
protected |
The neutrino current state.
Definition at line 88 of file PMNS_Sterile.h.
Referenced by InitializeVectors(), P(), PropMatter(), and ResetToFlavour().
|
protected |
theta[i][j] mixing angle
Definition at line 85 of file PMNS_Sterile.h.
Referenced by GetAngle(), InitializeVectors(), RotateH(), and SetAngle().