1#ifndef WILSONINTERFACE_H
2#define WILSONINTERFACE_H
78 std::shared_ptr<WilsonBuilder> builder;
79 std::shared_ptr<WilsonProvider> provider;
82 std::vector<WilsonMatchingPatch> pending_matching_patches;
Base type for lightweight configuration structures.
High-level orchestration of Wilson coefficient groups (matching + running/hadronic).
Returns an uppercase copy of the input string.
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.
WilsonInterface()=default
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.
Configuration of a user-defined Wilson group built from lambdas.
Configuration for building sets of Wilson coefficients.