Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
TemplateManager.h
Go to the documentation of this file.
1#ifndef TEMPLATE_MANAGER_H
2#define TEMPLATE_MANAGER_H
3
4#include <string>
5#include <fstream>
6#include <memory>
7
8#include "ModelModifier.h"
10
32public:
38
39 virtual ~TemplateManagerBase() = default;
40
50 void generateTemplate(const std::string& templateName, const std::string& outputPath) {
51 generateTemplateImpl(templateName, outputPath);
52 }
53
58 void setModelModifier(std::unique_ptr<ModelModifier> modifier) { modelModifier = std::move(modifier); }
59
64 void setNumModelModifier(std::unique_ptr<GeneralNumModelModifier> modifier) { numModifier = std::move(modifier); }
65
71 void setModelAndWilson(std::string model, std::string wilson) { this->model = model; this->wilson = wilson; }
72
82 std::unordered_set<InterpretedParam> get_dependencies();
83
84protected:
86 std::string templatesDir;
88 std::string wilson;
90 std::string model;
91
93 std::unique_ptr<ModelModifier> modelModifier;
95 std::unique_ptr<GeneralNumModelModifier> numModifier;
96
109 virtual void generateTemplateImpl(const std::string& templateName, const std::string& outputPath) = 0;
110
122 bool already_generated(const std::string& path);
123};
124
125
137public:
145
146private:
148 void generateTemplateImpl(const std::string& templateName, const std::string& outputPath) override;
149};
150
162public:
168
169private:
171 void generateTemplateImpl(const std::string& templateName, const std::string& outputPath) override;
172};
173
174
175#endif // TEMPLATE_MANAGER_H
Declares the helper used to prepare numeric MARTY models and parameter files.
Declares the base interface for source-level model transformations.
Template manager for non-numeric model templates.
NonNumericTemplateManager(const std::string &templatesDir)
Constructs a non-numeric template manager.
Template manager for numeric examples.
NumericTemplateManager(const std::string &templatesDir)
Constructs a numeric template manager.
Base class for managing template generation.
void setNumModelModifier(std::unique_ptr< GeneralNumModelModifier > modifier)
Injects a numeric model modifier.
virtual ~TemplateManagerBase()=default
std::string wilson
Wilson basis name.
std::string templatesDir
Directory containing the template sources.
void generateTemplate(const std::string &templateName, const std::string &outputPath)
Public entry point for template generation.
std::unique_ptr< GeneralNumModelModifier > numModifier
Optional modifier for numeric templates.
bool already_generated(const std::string &path)
Checks whether a file was already generated by this system.
std::unordered_set< InterpretedParam > get_dependencies()
Returns the set of interpreted parameters used by the numeric modifier.
std::unique_ptr< ModelModifier > modelModifier
Optional modifier for non-numeric templates.
std::string model
Model name.
TemplateManagerBase(const std::string &templatesDir)
Constructs a manager with a given templates directory.
void setModelAndWilson(std::string model, std::string wilson)
Sets both model and Wilson names used during generation.
virtual void generateTemplateImpl(const std::string &templateName, const std::string &outputPath)=0
Actual implementation for generating a specific template.
void setModelModifier(std::unique_ptr< ModelModifier > modifier)
Injects a custom model modifier.