69 template <
typename CovType>
73 YAML::Node Settings = FitManager->
raw()[
"General"][
"Systematics"];
74 auto CovMatrixName = Get<std::string>(Settings[std::string(PreFix) +
"CovName"], __FILE__, __LINE__);
78 auto CovMatrixFile = Get<std::vector<std::string>>(Settings[std::string(PreFix) +
"CovFile"], __FILE__, __LINE__);
81 auto PCAThreshold = GetFromManager<int>(Settings[std::string(PreFix) +
"PCAThreshold"], -1);
83 auto PCAParamRegion = GetFromManager<std::vector<int>>(Settings[std::string(PreFix) +
"PCAParams"], {-999, -999});
85 auto CovObject = std::make_unique<CovType>(CovMatrixFile, CovMatrixName, PCAThreshold, PCAParamRegion[0], PCAParamRegion[1]);
89 CovObject->SetParameters();
91 auto FixParams = GetFromManager<std::vector<std::string>>(Settings[std::string(PreFix) +
"Fix"], {});
94 if (FixParams.size() == 1 && FixParams.at(0) ==
"All") {
95 for (
int j = 0; j < CovObject->GetNumParams(); j++) {
96 CovObject->ToggleFixParameter(j);
99 for (
unsigned int j = 0; j < FixParams.size(); j++) {
100 CovObject->ToggleFixParameter(FixParams.at(j));
106 CovObject->SetTune(Get<std::string>(Settings[std::string(PreFix) +
"Tune"], __FILE__, __LINE__));
110 auto StepScale = Get<double>(Settings[std::string(PreFix) +
"StepScale"], __FILE__, __LINE__);
112 CovObject->SetStepScale(StepScale);
116 CovObject->InitialiseAdaption(FitManager->
raw());
134 template <
typename SampleType>
138 std::vector<SampleType*> Handlers(SampleConfig.size());
139 for (
size_t i = 0; i < SampleConfig.size(); ++i)
142 SampleType* Sample =
new SampleType(SampleConfig[i], xsec);
145 for(
int iSample = 0; iSample < Sample->GetNsamples(); iSample++)
148 std::string name = Sample->GetSampleTitle(iSample);
149 TString NameTString = TString(name.c_str());
152 Sample->AddData(iSample, Sample->GetMCArray(iSample));
154 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.