#ifndef PHOTONS_MEs_Scalar_To_Vector_Lepton_Neutrino_H #define PHOTONS_MEs_Scalar_To_Vector_Lepton_Neutrino_H #include "PHOTONS++/MEs/PHOTONS_ME_Base.H" #include "PHOTONS++/Tools/Dipole_FF.H" #include "ATOOLS/Math/Tensor.H" namespace PHOTONS { class Scalar_To_Vector_Lepton_Neutrino: public PHOTONS_ME_Base, public Dipole_FF { private: bool m_switch; bool m_ffmodel; double m_fplusprimezero; double m_fpluszero; virtual void BoostOriginalPVVToMultipoleCMS(); virtual Complex InfraredSubtractedME_0_0(); virtual Complex InfraredSubtractedME_0_1(); virtual Complex InfraredSubtractedME_0_2(); virtual Complex InfraredSubtractedME_1_05(unsigned int); virtual Complex InfraredSubtractedME_1_15(unsigned int); virtual Complex InfraredSubtractedME_2_1(unsigned int, unsigned int); double FormFactorAp(double); double FormFactorAm(double); double FormFactorF(double); double FormFactorG(double); Lorentz_Ten2D AuxiliaryTensor(Vec4D,Vec4D,double); public: Scalar_To_Vector_Lepton_Neutrino(const Particle_Vector_Vector&); virtual ~Scalar_To_Vector_Lepton_Neutrino(); virtual double GetBeta_0_0(); virtual double GetBeta_0_1(); virtual double GetBeta_0_2(); virtual double GetBeta_1_1(unsigned int); virtual double GetBeta_1_2(unsigned int); virtual double GetBeta_2_2(unsigned int, unsigned int); virtual void FillMomentumArrays(const Particle_Vector_Vector&); virtual double Smod(unsigned int); }; } #endif