/////////////////////////////////////////////////////////////////////////////// /// \class OscProb::PMNS_Iter /// /// \brief Implementation of oscillations of neutrinos in matter in a /// three-neutrino framework. /// /// Based on an approximate iterative model from: /// /// https://doi.org/10.3390/universe6010016 /// ///
///
///............................................................................
///
///                      Universe 6 (2020) no.1, 16
///
///    Effects of Atomic-Scale Electron Density Profile and a Fast and
/// Efficient Iteration Algorithm for Matter Effect of Neutrino Oscillation
///
///            Mihai Horoi, Adam Zettel (Central Michigan U.)
///
///............................................................................
/// 
/// /// \author Joao Coelho - jcoelho\@apc.in2p3.fr /////////////////////////////////////////////////////////////////////////////// #ifndef PMNS_Iter_H #define PMNS_Iter_H #include "PMNS_Fast.h" namespace OscProb { class PMNS_Iter : public PMNS_Fast { public: PMNS_Iter(); ///< Constructor virtual ~PMNS_Iter(); ///< Destructor /// Set the iterative precision virtual void SetPrec(double prec); protected: /// Just use the vacuum to start virtual void SolveHam(); /// Propagate through matter part virtual void PropMatter(); /// Set the matter propagation term virtual void SetExpVL(NuPath p); /// Reimplement propagation virtual void PropagatePath(NuPath p); /// Iterative precision double fPrec; double fVL; ///< Matter potential complexD fExpVL; ///< Matter phase shift double fPrevEnergy; }; } // namespace OscProb #endif ///////////////////////////////////////////////////////////////////////////////