64template <
typename CovType>
68 YAML::Node Settings = FitManager->
raw()[
"General"][
"Systematics"];
69 auto CovMatrixName = Get<std::string>(Settings[std::string(PreFix) +
"CovName"], __FILE__, __LINE__);
73 auto CovMatrixFile = Get<std::vector<std::string>>(Settings[std::string(PreFix) +
"CovFile"], __FILE__, __LINE__);
76 auto PCAThreshold = GetFromManager<int>(Settings[std::string(PreFix) +
"PCAThreshold"], -1);
78 auto PCAParamRegion = GetFromManager<std::vector<int>>(Settings[std::string(PreFix) +
"PCAParams"], {-999, -999});
80 auto CovObject = std::make_unique<CovType>(CovMatrixFile, CovMatrixName, PCAThreshold, PCAParamRegion[0], PCAParamRegion[1]);
84 CovObject->SetParameters();
86 auto FixParams = GetFromManager<std::vector<std::string>>(Settings[std::string(PreFix) +
"Fix"], {});
89 if (FixParams.size() == 1 && FixParams.at(0) ==
"All") {
90 for (
int j = 0; j < CovObject->GetNumParams(); j++) {
91 CovObject->ToggleFixParameter(j);
94 for (
unsigned int j = 0; j < FixParams.size(); j++) {
95 CovObject->ToggleFixParameter(FixParams.at(j));
99 auto StepScale = Get<double>(Settings[std::string(PreFix) +
"StepScale"], __FILE__, __LINE__);
101 CovObject->SetStepScale(StepScale);
105 CovObject->InitialiseAdaption(FitManager->
raw());
123template <
typename SampleType>
127 std::vector<SampleType*> Handlers(SampleConfig.size());
128 for (
size_t i = 0; i < SampleConfig.size(); ++i)
131 SampleType* Sample =
new SampleType(SampleConfig[i], xsec);
135 std::string name = Sample->GetTitle();
136 TString NameTString = TString(name.c_str());
139 if (Sample->GetNDim() == 1) {
140 auto hist =
static_cast<TH1D*
>(Sample->GetMCHist(1));
141 Sample->AddData(hist);
143 auto hist =
static_cast<TH2D*
>(Sample->GetMCHist(2));
144 Sample->AddData(hist);
146 Handlers[i] = Sample;
std::unique_ptr< FitterBase > MaCh3FitterFactory(manager *fitMan)
std::unique_ptr< manager > MaCh3ManagerFactory(int argc, char **argv)
std::vector< SampleType * > MaCh3SampleHandlerFactory(const std::vector< std::string > &SampleConfig, ParameterHandlerGeneric *xsec)
Factory function for creating SampleHandler and initialisation with systematic.
std::unique_ptr< CovType > MaCh3CovarianceFactory(manager *FitManager, const std::string &PreFix)
MaCh3 Factory initiates one of implemented fitting algorithms.
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.