#include "AddOns/EWSud/Variation_Generator.H" #include <ostream> using namespace PHASIC; using namespace ATOOLS; using namespace EWSud; using Base = Hard_Process_Variation_Generator_Base; using Args = Hard_Process_Variation_Generator_Arguments; Variation_Generator::Variation_Generator(const Args& args): m_kfactor{KFactor_Setter_Arguments{"EWSud", args.p_proc}} { auto s = Settings::GetMainSettings()["EWSUD"]; m_ewsudakov_rs = s["RS"].SetDefault(true).Get<bool>(); if(Settings::GetMainSettings()["EWSUDAKOV_RS"].IsSetExplicitly()){ THROW(fatal_error, "Avoid Using old syntax, prefer the new EWSUD: RS"); } } void Variation_Generator::GenerateAndFillWeightsMap(Weights_Map& wgtmap) { if (m_kfactor.Process()->GetSubevtList() == nullptr || m_ewsudakov_rs) { m_kfactor.CalculateAndFillWeightsMap(wgtmap); } else { ResetWeightsMap(wgtmap); } } void Variation_Generator::ResetWeightsMap(Weights_Map& wgtmap) { m_kfactor.ResetWeightsMap(wgtmap); } DECLARE_GETTER(Variation_Generator, "EWSud", Base, Args); Base* ATOOLS::Getter<Base, Args, Variation_Generator>:: operator()(const Args& args) const { return new Variation_Generator(args); } void ATOOLS::Getter<Base, Args, Variation_Generator>:: PrintInfo(std::ostream& str, const size_t width) const { str << "EWSud is implemented in arXiv:2006.14635 and arXiv:2111.13453.\n"; }