#ifndef EWSudakov_CoefficientChecker_H #define EWSudakov_CoefficientChecker_H #include "AddOns/EWSud/Amplitudes.H" #include "AddOns/EWSud/Calculator.H" #include #include namespace EWSud { class Coefficient_Checker { public: Coefficient_Checker( const std::string& _procname, const std::set& _activecoeffs) : procname {_procname}, activecoeffs {_activecoeffs} { } // set a log file name for writing out checked results and references for // later analysis void SetLogFileName(const std::string& f) { logfilename = f; } // check coefficients against a ref value when available bool CheckCoeffs(const Coeff_Map& coeffs, const METOOLS::Spin_Amplitudes&, const Mandelstam_Variables&, const EWGroupConstants&); private: using HelicityCoeffMap = std::map, double>; std::map ReferenceCoeffs(const Mandelstam_Variables&, const EWGroupConstants&); const std::string procname; const std::set activecoeffs; std::string logfilename; bool CheckCoeff(const Coeff_Value&, Complex ref, const std::vector& helicities, const EWSudakov_Log_Type ewlt) const; }; } #endif