File propagator.hpp๏ƒ

namespace nuTens
class Propagator

Setters

inline void setAntiNeutrino(bool newValue)

Set whether we are dealing with anti-neutrinos.

Parameters:

newValue โ€“

inline void setMatterSolver(const std::shared_ptr<BaseMatterSolver> &newSolver)

Set a matter solver to use to deal with matter effects.

Warning

Should be called before setMixingMatrix and setMasses

Parameters:

newSolver โ€“ A derivative of BaseMatterSolver

inline void setEnergies(Tensor &newEnergies)

Set the neutrino energies.

Todo:

Should add a check to tensors supplied to the setters to see how many dimensions they have, and if missing a batch dimension, add one.

Parameters:

newEnergies โ€“ The neutrino energies

inline void setMasses(Tensor &newMasses)

Set the masses corresponding to the vacuum hamiltonian eigenstates.

Parameters:

newMasses โ€“ The new masses to use. This tensor is expected to have a batch dimension + 1 more dimensions of size nGenerations. The batch dimension can (and probably should) be 1 and it will be broadcast to match the batch dimension of the energies supplied to calculateProbs(). So dimension should be {1, nGenerations}.

inline void setMixingMatrix(Tensor &newMatrix)

Set a whole new mixing matrix.

Parameters:

newMatrix โ€“ The new matrix to use

inline void setMixingMatrix(const std::vector<int> &indices, float value)

Set a single element of the mixing matrix.

Todo:

add setMixingMatrix(const std::vector<int> &indices, float value) methods to BaseMatterSolver? maybe have these setters in a base class of both Propagator and BaseMatterSolver ??

Parameters:
  • indices โ€“ The index of the value to set

  • value โ€“ The new value

inline void setMixingMatrix(const std::vector<int> &indices, std::complex<float> value)

Set a single element of the mixing matrix.

Parameters:
  • indices โ€“ The index of the value to set

  • value โ€“ The new value

inline void setBaseline(float newBaseline)

Set the baseline.

Parameters:

newBaseline โ€“ new value

Unnamed Group

inline float getBaseline() const

Getters.

Public Functions

inline Propagator(int nGenerations, float baseline, bool antiNeutrino = false)

Constructor.

Parameters:
  • nGenerations โ€“ The number of generations the propagator should expect

  • baseline โ€“ The baseline to propagate over

Tensor calculateProbs()

Calculate the oscillation probabilities.

Parameters:

energies โ€“ The energies of the neutrinos

Private Functions

Tensor _calculateProbs(const Tensor &masses, const Tensor &mixingMatrix)๏ƒ

Private Members

Tensor _mixingMatrix๏ƒ
Tensor _masses๏ƒ
Tensor _energies๏ƒ
Tensor _weightMatrix๏ƒ
Tensor _weightArgDenom๏ƒ
int _nGenerations๏ƒ
float _baseline๏ƒ
bool _antiNeutrino๏ƒ
std::shared_ptr<BaseMatterSolver> _matterSolver๏ƒ