5 LOG_WARN(
"Using MARTY defaults all calculations to LO in QCD.");
13 this->builder = std::make_shared<WilsonBuilder>(config);
14 this->provider = this->builder->get_wilson_provider();
17 for (
const auto& patch : pending_matching_patches) {
18 this->builder->add_matching_patch(patch);
20 pending_matching_patches.clear();
25 LOG_ERROR(
"AccessError",
"Please build the interface first before adding groups");
27 this->builder->add(config);
41 LOG_ERROR(
"LogicError",
"WilsonInterface has no builder available for custom Wilson group registration.");
44 this->builder->add_custom_group(config);
45 this->provider = this->builder->get_wilson_provider();
55 if (built && this->builder) {
56 this->builder->add_matching_patch(patch);
57 this->provider = this->builder->get_wilson_provider();
59 pending_matching_patches.push_back(patch);
69 for (
const auto& patch : patches) {
85 LOG_ERROR(
"LogicError",
"Interface has not been built");
96 return this->provider->get(std::make_shared<WilsonRequest>(request));
113 LOG_ERROR(
"LogicError",
"Interface has not been built");
124 return this->provider->get(std::make_shared<WilsonRequest>(request));
141 LOG_ERROR(
"LogicError",
"Interface has not been built");
152 request.basis = basis;
153 return this->provider->get(std::make_shared<WilsonRequest>(request));
170 LOG_ERROR(
"LogicError",
"Interface has not been built");
181 request.basis = basis;
182 return this->provider->get(std::make_shared<WilsonRequest>(request));
198 std::map<QCDOrder, scalar_t> C {{
219 std::map<QCDOrder, scalar_t> C {{
241 std::map<WCoef, scalar_t> Cs;
255 std::map<WCoef, scalar_t> Cs;
269 std::map<WCoef, scalar_t> Cs;
283 std::map<WCoef, scalar_t> Cs;
#define LOG_ERROR(type,...)
Macro for logging error messages and terminating the application.
#define LOG_WARN(...)
Macro for logging warning messages.
static IdOf< WGroupTag > to_id(WGroup e)
Converts an enum value to an IdOf<Tag>.
Sets Wilson scale values through the Parameters mutation layer.
void set(double value) override
Sets the value of the currently selected scale.
Returns an uppercase copy of the input string.
Core API returning whether MARTY is used as backend.
static std::vector< WCoef > get_group(WGroup g)
Returns the list of Wilson coefficients belonging to a WGroup.
User-facing API to build and query Wilson coefficients at matching and hadronic scales.
WilsonInterface & addMatchingPatches(const std::vector< WilsonMatchingPatch > &patches)
Add several additive Wilson matching patches.
std::map< QCDOrder, scalar_t > getSepOrderMatchingCoefficient(WGroupId group, WCoefId coeff, ContributionType cont_type)
Returns a map {LO,NLO,NNLO} -> matching coefficient for a dynamic coefficient.
void addWilsonGroup(WilsonBuildConfig config)
Adds one or more Wilson groups to an existing built interface.
std::map< WCoef, scalar_t > getAllRunCoefficients(WGroup group, QCDOrder order, ContributionType cont_type, WilsonBasis basis=WilsonBasis::B_STANDARD)
Returns {coef -> hadronic coefficient} for all coefficients in the group at a given order and basis.
scalar_t getRunCoefficient(WGroupId group, WCoefId coeff, QCDOrder order, ContributionType cont_type, WilsonBasis basis=WilsonBasis::B_STANDARD)
Returns the hadronic/run coefficient at the requested order.
scalar_t getMatchingCoefficient(WGroupId group, WCoefId coeff, QCDOrder order, ContributionType cont_type)
Returns the matching-scale coefficient at the requested QCD order.
void set_matching_scale(double mu_W)
Sets the matching scale (mu_W) in the global parameter system.
std::map< QCDOrder, scalar_t > getSR(WGroupId group, WCoefId coeff, ContributionType cont_type, WilsonBasis basis=WilsonBasis::B_STANDARD)
Alias for getSepOrderRunCoefficient(WGroupId,WCoefId,ContributionType,WilsonBasis).
WilsonInterface & add_matching_patch(const WilsonMatchingPatch &patch)
Snake-case alias for addMatchingPatch.
scalar_t getFullMatchingCoefficient(WGroupId group, WCoefId coeff, QCDOrder order, ContributionType cont_type)
Returns the matching coefficient with perturbative summation up to order.
std::map< WCoef, scalar_t > getAllFullRunCoefficients(WGroup group, QCDOrder order, ContributionType cont_type, WilsonBasis basis=WilsonBasis::B_STANDARD)
Returns {coef -> full hadronic coefficient} (summed up to order) for all coefficients in the group.
std::map< WCoef, scalar_t > getAR(WGroup group, QCDOrder order, ContributionType cont_type, WilsonBasis basis=WilsonBasis::B_STANDARD)
Alias for getAllRunCoefficients.
std::map< WCoef, scalar_t > getAllMatchingCoefficients(WGroup group, QCDOrder order, ContributionType cont_type)
Returns {coef -> matching coefficient} for all coefficients in the group at a given order.
scalar_t getM(WGroupId group, WCoefId coeff, QCDOrder order, ContributionType cont_type)
Alias for getMatchingCoefficient(WGroupId,WCoefId,QCDOrder,ContributionType).
void set_hadronic_scale(double mu_h)
Sets the hadronic scale (mu_h) in the global parameter system.
scalar_t getFullRunCoefficient(WGroupId group, WCoefId coeff, QCDOrder order, ContributionType cont_type, WilsonBasis basis=WilsonBasis::B_STANDARD)
Returns the full hadronic/run coefficient summed up to order.
std::map< WCoef, scalar_t > getAM(WGroup group, QCDOrder order, ContributionType cont_type)
Alias for getAllMatchingCoefficients.
std::map< QCDOrder, scalar_t > getSM(WGroupId group, WCoefId coeff, ContributionType cont_type)
Alias for getSepOrderMatchingCoefficient(WGroupId,WCoefId,ContributionType).
WilsonInterface & addMatchingPatch(const WilsonMatchingPatch &patch)
Add an additive Wilson matching patch.
std::map< WCoef, scalar_t > getAllFullMatchingCoefficients(WGroup group, QCDOrder order, ContributionType cont_type)
Returns {coef -> full matching coefficient} (summed up to order) for all coefficients in the group.
std::map< QCDOrder, scalar_t > getSepOrderRunCoefficient(WGroupId group, WCoefId coeff, ContributionType cont_type, WilsonBasis basis=WilsonBasis::B_STANDARD)
Returns a map {LO,NLO,NNLO} -> hadronic coefficient for a dynamic coefficient.
WilsonInterface & addCustomWilsonGroup(const CustomWilsonGroupConfig &config)
Register and initialize a runtime Wilson group described by lambdas.
scalar_t getFM(WGroupId group, WCoefId coeff, QCDOrder order, ContributionType cont_type)
Alias for getFullMatchingCoefficient(WGroupId,WCoefId,QCDOrder,ContributionType).
scalar_t getFR(WGroupId group, WCoefId coeff, QCDOrder order, ContributionType cont_type, WilsonBasis basis=WilsonBasis::B_STANDARD)
Alias for getFullRunCoefficient(WGroupId,WCoefId,QCDOrder,ContributionType,WilsonBasis).
std::map< WCoef, scalar_t > getAFR(WGroup group, QCDOrder order, ContributionType cont_type, WilsonBasis basis=WilsonBasis::B_STANDARD)
Alias for getAllFullRunCoefficients.
std::map< WCoef, scalar_t > getAFM(WGroup group, QCDOrder order, ContributionType cont_type)
Alias for getAllFullMatchingCoefficients.
scalar_t getR(WGroupId group, WCoefId coeff, QCDOrder order, ContributionType cont_type, WilsonBasis basis=WilsonBasis::B_STANDARD)
Alias for getRunCoefficient(WGroupId,WCoefId,QCDOrder,ContributionType,WilsonBasis).
void build(WilsonBuildConfig config)
Builds the full Wilson pipeline and makes queries available.
WilsonInterface & add_custom_group(const CustomWilsonGroupConfig &config)
Snake-case alias for addCustomWilsonGroup.
const GroupDefinition & get(WGroupId g)
Returns the definition for a given group id.
Configuration of a user-defined Wilson group built from lambdas.
double hadronic_scale
Hadronic/running scale used when the group is added to the manager.
QCDOrder order
Highest QCD order to initialize.
double matching_scale
Matching scale used when the group is added to the manager.
Configuration for building sets of Wilson coefficients.
double hadronic_scale
Hadronic scale (in GeV) at which the Wilson coefficients are evaluated in the effective theory.
QCDOrder order
Perturbative QCD order used for the evolution and matching of Wilson coefficients....
double matching_scale
Matching scale (in GeV) at which the high-energy theory is matched to the effective theory.
Dynamic configuration for requesting a specific Wilson coefficient.