66 template <
typename CovType>
70 YAML::Node Settings = FitManager->
raw()[
"General"][
"Systematics"];
71 auto CovMatrixName = Get<std::string>(Settings[std::string(PreFix) +
"CovName"], __FILE__, __LINE__);
75 auto CovMatrixFile = Get<std::vector<std::string>>(Settings[std::string(PreFix) +
"CovFile"], __FILE__, __LINE__);
78 auto PCAThreshold = GetFromManager<int>(Settings[std::string(PreFix) +
"PCAThreshold"], -1);
80 auto PCAParamRegion = GetFromManager<std::vector<int>>(Settings[std::string(PreFix) +
"PCAParams"], {-999, -999});
82 auto CovObject = std::make_unique<CovType>(CovMatrixFile, CovMatrixName, PCAThreshold, PCAParamRegion[0], PCAParamRegion[1]);
86 CovObject->SetParameters();
88 auto FixParams = GetFromManager<std::vector<std::string>>(Settings[std::string(PreFix) +
"Fix"], {});
91 if (FixParams.size() == 1 && FixParams.at(0) ==
"All") {
92 for (
int j = 0; j < CovObject->GetNumParams(); j++) {
93 CovObject->ToggleFixParameter(j);
96 for (
unsigned int j = 0; j < FixParams.size(); j++) {
97 CovObject->ToggleFixParameter(FixParams.at(j));
101 auto StepScale = Get<double>(Settings[std::string(PreFix) +
"StepScale"], __FILE__, __LINE__);
103 CovObject->SetStepScale(StepScale);
107 CovObject->InitialiseAdaption(FitManager->
raw());
125 template <
typename SampleType>
129 std::vector<SampleType*> Handlers(SampleConfig.size());
130 for (
size_t i = 0; i < SampleConfig.size(); ++i)
133 SampleType* Sample =
new SampleType(SampleConfig[i], xsec);
137 std::string name = Sample->GetTitle();
138 TString NameTString = TString(name.c_str());
141 if (Sample->GetNDim() == 1) {
142 auto hist =
static_cast<TH1D*
>(Sample->GetMCHist(1));
143 Sample->AddData(hist);
145 auto hist =
static_cast<TH2D*
>(Sample->GetMCHist(2));
146 Sample->AddData(hist);
148 Handlers[i] = Sample;
std::unique_ptr< FitterBase > MaCh3FitterFactory(manager *fitMan)
std::unique_ptr< manager > MaCh3ManagerFactory(int argc, char **argv)
std::unique_ptr< CovType > MaCh3CovarianceFactory(manager *FitManager, const std::string &PreFix)
MaCh3 Factory initiates one of implemented fitting algorithms.
std::vector< SampleType * > MaCh3SampleHandlerFactory(const std::vector< std::string > &SampleConfig, ParameterHandlerGeneric *xsec)
Factory function for creating SampleHandler and initialisation with systematic.
bool CheckNodeExists(const YAML::Node &node, Args... args)
KS: Wrapper function to call the recursive helper.
Class responsible for handling of systematic error parameters with different types defined in the con...
The manager class is responsible for managing configurations and settings.
YAML::Node const & raw()
Return config.