7#include <unordered_map>
67 virtual void calculateSpectrum(
const std::string& inputFilePath,
const std::string& outputFilePath) = 0;
108 std::string inputFilePath;
109 std::string outputFilePath;
120 : calculator(calculator_), inputFilePath(
std::move(inputFilePath_)), outputFilePath(
std::move(outputFilePath_)) {}
179 static void executeCommand(
CalculatorType type,
const std::string& commandName,
const std::string& inputFilePath,
const std::string& outputFilePath);
@ TwoHDM
Use 2HDMC–based calculator.
@ Softsusy
Use SOFTSUSY–based calculator.
Command to calculate the spectrum using a given calculator.
CalculateSpectrumCommand(ICalculator &calculator_, std::string inputFilePath_, std::string outputFilePath_)
Constructs a new CalculateSpectrumCommand.
void execute() override
Executes the command to calculate the spectrum.
Factory and dispatcher for spectrum calculators and commands.
static void executeCommand(CalculatorType type, const std::string &commandName, const std::string &inputFilePath, const std::string &outputFilePath)
Executes a named command on a chosen calculator type.
static std::shared_ptr< ICalculator > createCalculator(CalculatorType type)
Creates a concrete calculator for a given type.
Interface for calculator classes.
virtual void calculateSpectrum(const std::string &inputFilePath, const std::string &outputFilePath)=0
Performs the spectrum calculation.
virtual ~ICalculator()=default
Virtual destructor.
Minimal command interface.
virtual ~ICommand()=default
Virtual destructor.
virtual void execute()=0
Executes the command.
Hash specialization for SymbolId<Tag>.