//////////////////////////////////////////////////////////////////////// /// \class OscProb::PMNS_Fast /// /// \brief Implementation of oscillations of neutrinos in matter in a /// three-neutrino framework. /// /// Two optimizations are relevant:\n /// - The construction of the Hamiltonian avoids computing null terms\n /// - The eigensystem determination is based on the following reference:\n /// /// ///
/// ///...................................................................... /// /// Int. J. Mod. Phys. C VOLUME 19, NUMBER 03 MARCH 2008 /// /// Efficient numerical diagonalization of hermitian 3x3 matrices /// /// Joachim Kopp /// Max-Planck-Institut für Kernphysik /// Postfach 10 39 80, 69029 Heidelberg, Germany /// (Received 19 October 2007) /// /// 523 ///...................................................................... ////// /// \author Joao Coelho - jcoelho\@apc.in2p3.fr //////////////////////////////////////////////////////////////////////// #ifndef PMNS_Fast_H #define PMNS_Fast_H #include "PMNS_Base.h" namespace OscProb { class PMNS_Fast : public PMNS_Base { public: PMNS_Fast(); ///< Constructor virtual ~PMNS_Fast(); ///< Destructor /// Set the all mixing parameters at once virtual void SetMix(double th12, double th23, double th13, double deltacp); /// Set both mass-splittings at once virtual void SetDeltaMsqrs(double dm21, double dm32); protected: /// Build the full Hamiltonian virtual void UpdateHam(); /// Solve the full Hamiltonian for eigenvectors and eigenvalues virtual void SolveHam(); /// Set the eigensystem to the analytic solution of the vacuum Hamiltonian virtual void SetVacuumEigensystem(); complexD fHam[3][3]; ///< The full hamiltonian }; } #endif ////////////////////////////////////////////////////////////////////////