Skip to content

Commit

Permalink
simplify applying the spectrum generator settings
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander Voigt committed Jun 10, 2015
1 parent ebb07c1 commit d0fc768
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 20 deletions.
33 changes: 33 additions & 0 deletions templates/low_scale_spectrum_generator.hpp.in
Expand Up @@ -28,6 +28,7 @@
#include "@ModelName@_two_scale_initial_guesser.hpp"
#include "@ModelName@_utilities.hpp"

#include "spectrum_generator_settings.hpp"
#include "coupling_monitor.hpp"
#include "error.hpp"
#include "two_loop_corrections.hpp"
Expand Down Expand Up @@ -80,6 +81,7 @@ public:
void set_force_output(bool flag) { force_output = flag; }
void set_threshold_corrections_loop_order(unsigned t) { threshold_corrections_loop_order = t; }
void set_two_loop_corrections(const Two_loop_corrections& c) { model.set_two_loop_corrections(c); }
void set_settings(const Spectrum_generator_settings&);

void run(const QedQcd& oneset, const @ModelName@_input_parameters& input);
void write_running_couplings(const std::string& filename = "@ModelName@_rge_running.dat") const;
Expand Down Expand Up @@ -198,6 +200,37 @@ void @ModelName@_spectrum_generator<T>::run(const QedQcd& oneset,
}
}

/**
* Setup spectrum generator from a Spectrum_generator_settings object.
*
* @param settings spectrum generator settings
*/
template <class T>
void @ModelName@_spectrum_generator<T>::set_settings(
const Spectrum_generator_settings& settings)
{
set_precision_goal(
settings.get(Spectrum_generator_settings::precision));
set_max_iterations(
settings.get(Spectrum_generator_settings::max_iterations));
set_calculate_sm_masses(
settings.get(Spectrum_generator_settings::calculate_sm_masses) >= 1.0);
set_force_output(
settings.get(Spectrum_generator_settings::force_output) >= 1.0);
set_pole_mass_loop_order(
settings.get(Spectrum_generator_settings::pole_mass_loop_order));
set_ewsb_loop_order(
settings.get(Spectrum_generator_settings::ewsb_loop_order));
set_beta_loop_order(
settings.get(Spectrum_generator_settings::beta_loop_order));
set_beta_zero_threshold(
settings.get(Spectrum_generator_settings::beta_zero_threshold));
set_threshold_corrections_loop_order(
settings.get(Spectrum_generator_settings::threshold_corrections_loop_order));
set_two_loop_corrections(
settings.get_two_loop_corrections());
}

/**
* Create a text file which contains the values of all model
* parameters at all scales between the low-scale and the susy-scale.
Expand Down
21 changes: 1 addition & 20 deletions templates/run.cpp.in
Expand Up @@ -69,28 +69,9 @@ int main(int argc, const char* argv[])
oneset.toMz(); // run SM fermion masses to MZ

@ModelName@_spectrum_generator<algorithm_type> spectrum_generator;
spectrum_generator.set_precision_goal(
spectrum_generator_settings.get(Spectrum_generator_settings::precision));
spectrum_generator.set_max_iterations(
spectrum_generator_settings.get(Spectrum_generator_settings::max_iterations));
spectrum_generator.set_calculate_sm_masses(
spectrum_generator_settings.get(Spectrum_generator_settings::calculate_sm_masses) >= 1.0);
spectrum_generator.set_force_output(
spectrum_generator_settings.get(Spectrum_generator_settings::force_output) >= 1.0);
spectrum_generator.set_settings(spectrum_generator_settings);
spectrum_generator.set_parameter_output_scale(
slha_io.get_parameter_output_scale());
spectrum_generator.set_pole_mass_loop_order(
spectrum_generator_settings.get(Spectrum_generator_settings::pole_mass_loop_order));
spectrum_generator.set_ewsb_loop_order(
spectrum_generator_settings.get(Spectrum_generator_settings::ewsb_loop_order));
spectrum_generator.set_beta_loop_order(
spectrum_generator_settings.get(Spectrum_generator_settings::beta_loop_order));
spectrum_generator.set_beta_zero_threshold(
spectrum_generator_settings.get(Spectrum_generator_settings::beta_zero_threshold));
spectrum_generator.set_threshold_corrections_loop_order(
spectrum_generator_settings.get(Spectrum_generator_settings::threshold_corrections_loop_order));
spectrum_generator.set_two_loop_corrections(
spectrum_generator_settings.get_two_loop_corrections());

spectrum_generator.run(oneset, input);

Expand Down
33 changes: 33 additions & 0 deletions templates/spectrum_generator.hpp.in
Expand Up @@ -29,6 +29,7 @@
#include "@ModelName@_two_scale_initial_guesser.hpp"
#include "@ModelName@_utilities.hpp"

#include "spectrum_generator_settings.hpp"
#include "coupling_monitor.hpp"
#include "error.hpp"
#include "two_loop_corrections.hpp"
Expand Down Expand Up @@ -83,6 +84,7 @@ public:
void set_force_output(bool flag) { force_output = flag; }
void set_threshold_corrections_loop_order(unsigned t) { threshold_corrections_loop_order = t; }
void set_two_loop_corrections(const Two_loop_corrections& c) { model.set_two_loop_corrections(c); }
void set_settings(const Spectrum_generator_settings&);

void run(const QedQcd& oneset, const @ModelName@_input_parameters& input);
void write_running_couplings(const std::string& filename = "@ModelName@_rge_running.dat") const;
Expand Down Expand Up @@ -209,6 +211,37 @@ void @ModelName@_spectrum_generator<T>::run(const QedQcd& oneset,
}
}

/**
* Setup spectrum generator from a Spectrum_generator_settings object.
*
* @param settings spectrum generator settings
*/
template <class T>
void @ModelName@_spectrum_generator<T>::set_settings(
const Spectrum_generator_settings& settings)
{
set_precision_goal(
settings.get(Spectrum_generator_settings::precision));
set_max_iterations(
settings.get(Spectrum_generator_settings::max_iterations));
set_calculate_sm_masses(
settings.get(Spectrum_generator_settings::calculate_sm_masses) >= 1.0);
set_force_output(
settings.get(Spectrum_generator_settings::force_output) >= 1.0);
set_pole_mass_loop_order(
settings.get(Spectrum_generator_settings::pole_mass_loop_order));
set_ewsb_loop_order(
settings.get(Spectrum_generator_settings::ewsb_loop_order));
set_beta_loop_order(
settings.get(Spectrum_generator_settings::beta_loop_order));
set_beta_zero_threshold(
settings.get(Spectrum_generator_settings::beta_zero_threshold));
set_threshold_corrections_loop_order(
settings.get(Spectrum_generator_settings::threshold_corrections_loop_order));
set_two_loop_corrections(
settings.get_two_loop_corrections());
}

/**
* Create a text file which contains the values of all model
* parameters at all scales between the low-scale and the high-scale.
Expand Down

0 comments on commit d0fc768

Please sign in to comment.