Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
WilsonManager.h File Reference

High-level orchestration of Wilson coefficient groups (matching + running/hadronic). More...

#include <map>
#include <memory>
#include <string>
#include <stdexcept>
#include <set>
#include "Wilson.h"
#include "WilsonGroup.h"
#include "BWilsonGroup.h"
#include "MemoryManager.h"
#include "QCDHelper.h"
#include "Utils.h"
#include "HyperisoMaster.h"
#include "IParamSetter.h"
#include "IWilsonParameters.h"
#include "IMartyWilsonPathProxy.h"
#include "WilsonMatchingPatch.h"
Include dependency graph for WilsonManager.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  WilsonPortsConfig
 Aggregates “ports” / APIs that connect the manager to the rest of the framework. More...
 
class  CoefficientManager
 High-level orchestrator for Wilson coefficient groups. More...
 

Detailed Description

High-level orchestration of Wilson coefficient groups (matching + running/hadronic).

This module provides a “manager” that ties together:

  • a set of coefficient groups (CoefficientGroup),
  • the dependency engine / block composer (IBlockComposer),
  • access to input Wilson blocks (FWCOEF or equivalent) through a parameter proxy,
  • the chosen physics model (SM / SUSY / THDM) and backend selection (builtin vs Marty),
  • scale management (matching scale mu_W, hadronic scale mu_h).

It solves the practical problem of providing consistent triplets of coefficients:

  • SM contribution,
  • BSM contribution,
  • TOTAL = SM + BSM, at the matching scale and then at hadronic scales, for any supported group/basis/order.

Internally it uses the DependentBlock/DependentParameter composition mechanisms:

  • If coefficients must be computed, it composes dependent parameters that call group computations.
  • If coefficients are provided by input blocks (e.g. FWCOEF), it composes copy/subtraction rules so the final storage block always has the expected (SM, BSM, TOTAL) triplets.

Typical usage:

WilsonPortsConfig cfg{ iblock_c, wilson_proxy, use_marty, has_wilson, model_api, scale_setter };
cfg.build_group = ...; // optional factory hook (builder)
"SM", groups, muW, muH, "NLO", cfg,
{{Model::SM, std::make_shared<WilsonParameterHelper>(iblock_c)}}
);
auto C7tot = mgr->getFullRunCoefficient("B", "C7", "NLO", ContributionType::TOTAL);
static std::shared_ptr< CoefficientManager > Builder(std::map< std::string, std::shared_ptr< CoefficientGroup > > groups, double mu_W, double mu_h, std::string order, WilsonPortsConfig portconfig, std::map< Model, std::shared_ptr< IWilsonParameterHelper > > wilson_param_helpers={})
Factory that builds and initializes a manager from pre-created groups.
Aggregates “ports” / APIs that connect the manager to the rest of the framework.
std::function< std::shared_ptr< CoefficientGroup >(WGroupId, Model, bool, ContributionType, std::string)> build_group
Optional group builder hook.
See also
CoefficientGroup
IBlockComposer
IWilsonParameterHelper
WilsonBlockNames

Definition in file WilsonManager.h.