12 #ifndef HAMMER_EXTERNALDATA
13 #define HAMMER_EXTERNALDATA
20 #include <unordered_map>
22 #include <boost/thread/tss.hpp>
88 void specializeWCInWeights(
const std::string& prefixName,
const std::map<std::string, std::complex<double>>& settings);
93 void specializeWCInWeights(
const std::string& prefixName,
const std::vector<std::complex<double>>& values);
119 const std::map<std::string, std::complex<double>>& values);
124 const std::vector<std::complex<double>>& values)
const;
126 const std::map<std::string, std::complex<double>>& values)
const;
147 const std::vector<double>& values);
167 const std::vector<double>& values)
const;
169 const std::map<std::string, double>& values)
const;
172 void init(std::vector<std::string> schemeNames);
virtual MultiDimensional::SharedTensorData getWilsonCoefficients(PdgId parent, const std::vector< PdgId > &daughters, const std::vector< PdgId > &granddaughters={}, WTerm what=WTerm::NUMERATOR) const
virtual void defineSettings()
purely virtual function for a class to define new settings
MultiDimensional::SharedTensorData getTempFFEigenVectors(const FFPrefixGroup &process, const std::vector< double > &values) const
void setWilsonCoefficients(const std::string &prefixName, const std::vector< std::complex< double >> &values, WTerm what=WTerm::NUMERATOR)
Forward declaration of serialization related typedefs and includes.
void setWilsonCoefficientsLocal(const std::string &prefixName, const std::vector< std::complex< double >> &values)
Base class for amplitudes.
Hammer data types declarations.
virtual MultiDimensional::SharedTensorData getFFEigenVectors(FormFactorBase *ff, const std::string &schemeName) const
void init(std::vector< std::string > schemeNames)
void resetFFEigenVectors(const FFPrefixGroup &process)
boost::thread_specific_ptr< processWilsonCoefficientsType > _processWilsonCoefficients
virtual MultiDimensional::SharedTensorData getSpecializedWilsonCoefficients(AmplitudeBase *amp) const
void resetWilsonCoefficients(const std::string &prefixName, WTerm what=WTerm::NUMERATOR)
std::map< IndexLabel, std::array< MultiDimensional::SharedTensorData, 2 >> processWilsonCoefficientsType
virtual ~ExternalData() noexcept
std::map< IndexLabel, MultiDimensional::SharedTensorData > _processSpecializedWilsonCoefficients
void initFormFactorErrors()
void setFFEigenVectorsLocal(const FFPrefixGroup &process, const std::vector< double > &values)
std::map< std::string, bool > _isWCSpecializedDict
ExternalData & operator=(const ExternalData &other)=delete
ExternalData(const ProvidersRepo *provs)
void initWilsonCoefficients()
Base class to access the settings repository.
Forward declarations of types used in the tensor classes.
std::shared_ptr< IContainer > SharedTensorData
boost::thread_specific_ptr< externalVectorsType > _externalVectors
std::map< IndexLabel, SchemeDict< MultiDimensional::SharedTensorData >> processFFEigenVectorsType
Pdg forward declarations.
void initExternalVectors()
void setFFEigenVectors(const FFPrefixGroup &process, const std::vector< double > &values)
std::unordered_map< std::string, UMap< LabelsList, Tensor >> externalVectorsType
virtual const Tensor & getExternalVectors(std::string schemeName, LabelsList labels) const
Multidimensional tensor class with complex numbers as elements.
Base class for accessing Hammer settings repository.
MultiDimensional::SharedTensorData getTempWilsonCoefficients(const std::string &prefixName, const std::vector< std::complex< double >> &values) const
std::vector< std::string > _schemes
std::vector< IndexLabel > LabelsList
void specializeWCInWeights(const std::string &prefixName, const std::map< std::string, std::complex< double >> &settings)
const ProvidersRepo * _providers
boost::thread_specific_ptr< processFFEigenVectorsType > _processFFEigenVectors
void resetSpecializeWCInWeights(const std::string &prefixName)
bool isWCSpecialized(AmplitudeBase *ampl) const