68 template <
typename CovType>
72 YAML::Node Settings = FitManager->
raw()[
"General"][
"Systematics"];
73 auto CovMatrixName = Get<std::string>(Settings[std::string(PreFix) +
"CovName"], __FILE__, __LINE__);
77 auto CovMatrixFile = Get<std::vector<std::string>>(Settings[std::string(PreFix) +
"CovFile"], __FILE__, __LINE__);
80 auto PCAThreshold = GetFromManager<int>(Settings[std::string(PreFix) +
"PCAThreshold"], -1, __FILE__ , __LINE__);
82 auto PCAParamRegion = GetFromManager<std::vector<int>>(Settings[std::string(PreFix) +
"PCAParams"], {-999, -999}, __FILE__ , __LINE__);
84 auto CovObject = std::make_unique<CovType>(CovMatrixFile, CovMatrixName, PCAThreshold, PCAParamRegion[0], PCAParamRegion[1]);
88 CovObject->SetParameters();
90 auto FixParams = GetFromManager<std::vector<std::string>>(Settings[std::string(PreFix) +
"Fix"], {}, __FILE__ , __LINE__);
93 if (FixParams.size() == 1 && FixParams.at(0) ==
"All") {
94 CovObject->SetFixAllParameters();
96 for (
unsigned int j = 0; j < FixParams.size(); j++) {
97 CovObject->SetFixParameter(FixParams.at(j));
103 CovObject->SetTune(Get<std::string>(Settings[std::string(PreFix) +
"Tune"], __FILE__, __LINE__));
107 auto StepScale = Get<double>(Settings[std::string(PreFix) +
"StepScale"], __FILE__, __LINE__);
109 CovObject->SetStepScale(StepScale);
113 CovObject->InitialiseAdaption(FitManager->
raw());
131 template <
typename SampleType>
135 std::vector<SampleType*> Handlers(SampleConfig.size());
136 for (
size_t i = 0; i < SampleConfig.size(); ++i)
139 SampleType* Sample =
new SampleType(SampleConfig[i], xsec);
140 Handlers[i] = Sample;
std::unique_ptr< CovType > MaCh3CovarianceFactory(Manager *FitManager, const std::string &PreFix)
Factory function for creating a covariance class for systematic handling.
std::vector< SampleType * > MaCh3SampleHandlerFactory(const std::vector< std::string > &SampleConfig, ParameterHandlerGeneric *xsec)
Factory function for creating SampleHandler and initialisation with systematic.
std::unique_ptr< Manager > MaCh3ManagerFactory(int argc, char **argv)
Initializes the config Manager class and allows overriding settings via command-line arguments.
bool CheckNodeExists(const YAML::Node &node, Args... args)
KS: Wrapper function to call the recursive helper.
The manager class is responsible for managing configurations and settings.
YAML::Node const & raw() const
Return config.
Class responsible for handling of systematic error parameters with different types defined in the con...
std::unique_ptr< FitterBase > MaCh3FitterFactory(Manager *FitManager)
MaCh3 Factory initiates one of implemented fitting algorithms.