7#include <unordered_set>
653 friend std::ostream&
operator<<(std::ostream&, std::shared_ptr<Parameters>);
680 explicit Parameters(std::shared_ptr<ModelStrategy> modelStrategy);
682 static std::map<ParameterType, std::shared_ptr<Parameters>> instances;
683 std::shared_ptr<ModelStrategy> strategy;
684 std::shared_ptr<BlockAccessor> blockAccessor;
740 const std::function<
void(
const std::shared_ptr<Parameters>&)>& register_before_postinit
754 static std::map<ParameterType, std::shared_ptr<Parameters>> instances;
773 static std::shared_ptr<ModelStrategy> createStrategy(
ParameterType id);
Alias-aware façade for accessing and manipulating multiple parameter blocks.
Defines parameters whose values are lazily computed from other parameters.
Electroweak helper utilities and dependent-block initialization.
Declares generic calculator interfaces and the general calculator factory.
#define LOG_DEBUG(...)
Macro for logging debug messages.
Defines structures and classes for routing and categorizing parameter blocks.
ParameterMode
Defines the modes in which a parameter can operate.
Core QCD utilities for α_s running and quark mass evolution.
Strategy responsible for BSM parameters.
std::unordered_set< BlockName > initializeParameters(class Parameters ¶ms) override
Initializes the block set for the target parameter repository.
void postInitialization(Parameters ¶ms) override
Performs additional initialization after raw blocks are loaded.
Block identifier with alias support.
Strategy responsible for decay-related parameter blocks.
std::unordered_set< BlockName > initializeParameters(class Parameters ¶ms) override
Initializes the block set for the target parameter repository.
void postInitialization(Parameters &) override
Performs additional initialization after raw blocks are loaded.
Static class for handling dependent blocks and parameters across different Parameters instances.
Strategy responsible for flavor-sector input blocks.
std::unordered_set< BlockName > initializeParameters(class Parameters ¶ms) override
Initializes the block set for the target parameter repository.
void postInitialization(Parameters &) override
Performs additional initialization after raw blocks are loaded.
Placeholder / generic strategy class.
std::unordered_set< BlockName > initializeParameters(class Parameters ¶ms) override
Initializes the block set for the target parameter repository.
void postInitialization(Parameters &) override
Performs additional initialization after raw blocks are loaded.
Abstract initialization strategy for one parameter namespace.
void remove_absent_block()
Clears the list of absent blocks.
std::unordered_set< BlockName > absent_blocks
virtual ~ModelStrategy()=default
Virtual destructor.
virtual void postInitialization(Parameters ¶ms)=0
Performs additional initialization after raw blocks are loaded.
void add_absent_block(std::unordered_set< BlockName > _)
Stores the set of blocks absent during initialization.
virtual std::unordered_set< BlockName > initializeParameters(class Parameters ¶ms)=0
Initializes the block set for the target parameter repository.
Strategy responsible for observable-related blocks.
std::unordered_set< BlockName > initializeParameters(class Parameters ¶ms) override
Initializes the block set for the target parameter repository.
void postInitialization(Parameters &) override
Performs additional initialization after raw blocks are loaded.
Factory/cache for Parameters instances.
static std::shared_ptr< Parameters > CreateUncachedRegistered(ParameterType id, const std::function< void(const std::shared_ptr< Parameters > &)> ®ister_before_postinit)
Creates a fresh uncached repository and registers it before post-initialization.
static std::shared_ptr< Parameters > CreateUncached(ParameterType id)
Creates a fresh uncached repository for a runtime context.
static std::shared_ptr< Parameters > GetParameters(ParameterType id)
Returns the cached repository for one parameter type.
static void removeParameters(ParameterType id)
Removes one cached repository.
Block-based parameter repository for one ParameterType namespace.
void reattach_block(const BlockName &blockName)
Reattaches one previously detached dependent block.
void detach_param(const BlockName &blockName, const LhaID &id)
Detaches one dependent parameter from its upstream dependencies.
std::vector< std::string > get_dependent_blocks(const BlockName &blockName) const
Returns the direct blocks depending on one block.
std::vector< std::string > get_all_dependent_blocks(const BlockName &blockName) const
Returns all transitive blocks depending on one block.
std::unordered_set< BlockName > get_blocks_list()
Returns the list of blocks currently held in this repository.
void unfreeze_block(const BlockName &blockName)
Freezes one whole block.
void reattach_param(const BlockName &blockName, const LhaID &id)
Reattaches one previously detached dependent parameter.
std::shared_ptr< BlockAccessor > get_block_accessor()
Returns the underlying block accessor.
void shiftParameter(const ParamId ¶m_id, scalar_t shift_value)
Applies an additive shift to a parameter by rewriting its value.
void CleanupInstance(ParameterType id=ParameterType::SM)
Removes one repository instance from the factory cache.
bool exist(const BlockName &block, LhaID pdgCode)
Checks whether a parameter exists in a given block.
std::unordered_set< BlockName > init_blocks(ParameterType type)
Loads the raw blocks for one parameter namespace from MemoryManager.
scalar_t operator()(const BlockName &block, LhaID pdgCode) const
Reads the current scalar value of a parameter.
void setBlockValue(const BlockName &name, LhaID pdgCode, scalar_t value)
Sets or creates a scalar value inside a block.
void detach_block(const BlockName &blockName)
Detaches one dependent block from its upstream dependency graph.
void changeParameterMode(const ParamId ¶m_id, ParameterMode new_mode)
Changes the mode of one parameter.
std::shared_ptr< Parameter > get_parameter(const BlockName &block, LhaID pdgCode)
Returns the full Parameter object for one entry.
static std::shared_ptr< Parameters > GetInstance(ParameterType id=ParameterType::SM)
Returns the singleton-like repository for a given parameter type.
std::vector< std::string > get_source_blocks(const BlockName &blockName) const
Returns the direct source blocks of one block.
double get_block_scale(BlockName blockName) const
Returns the scale attached to a block.
void unfreeze_param(const BlockName &blockName, const LhaID &id)
Unfreezes one parameter inside a block.
std::map< LhaID, scalar_t > get_block_infos(BlockName blockName)
Returns all scalar values stored in one block.
void freeze_param(const BlockName &blockName, const LhaID &id)
Freezes one parameter inside a block.
void freeze_block(const BlockName &blockName)
Freezes one whole block.
friend std::ostream & operator<<(std::ostream &, std::shared_ptr< Parameters >)
Stream output operator for the whole repository.
void print_block(const std::string blockname)
Prints one block to stdout.
std::vector< std::string > get_all_source_blocks(const BlockName &blockName) const
Returns all transitive source blocks of one block.
bool is_dependent_block(const BlockName &blockName) const
Checks whether one block is a dependent block.
Strategy responsible for passthrough / output-preserved blocks.
std::unordered_set< BlockName > initializeParameters(class Parameters ¶ms) override
Initializes the block set for the target parameter repository.
void postInitialization(Parameters &) override
Performs additional initialization after raw blocks are loaded.
Strategy responsible for Standard Model parameters.
void postInitialization(Parameters ¶ms) override
Performs additional initialization after raw blocks are loaded.
std::unordered_set< BlockName > initializeParameters(class Parameters ¶ms) override
Initializes the block set for the target parameter repository.
Represents an identifier of a LHA element, possibly containing several sub-ids.
Composite identifier for a single parameter.