Skip to content

Commit

Permalink
ensure that observables are calculated at the pole mass scale
Browse files Browse the repository at this point in the history
So far the scale at which the observables have been calculated did
depend on the "parameter output scale", because this was the scale at
which the model was output of the spectrum generator.
  • Loading branch information
Alexander Voigt authored and Alexander Voigt committed Mar 12, 2017
1 parent 88fffa7 commit be5d9f7
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 4 deletions.
6 changes: 5 additions & 1 deletion templates/librarylink.cpp.in
Expand Up @@ -698,7 +698,11 @@ void Model_data_impl<Solver_type>::calculate_spectrum()
template <typename Solver_type>
void Model_data_impl<Solver_type>::calculate_model_observables()
{
observables = calculate_observables(std::get<0>(models), qedqcd, physical_input);
// run model to pole mass scale
auto model = std::get<0>(models);
model.run_to(scales.pole_mass_scale);

observables = calculate_observables(model, qedqcd, physical_input);
}

/******************************************************************/
Expand Down
7 changes: 5 additions & 2 deletions templates/run.cpp.in
Expand Up @@ -86,8 +86,11 @@ int run_solver(flexiblesusy::@ModelName@_slha_io& slha_io,
scales.pole_mass_scale = spectrum_generator.get_pole_mass_scale();

@ModelName@_observables observables;
if (spectrum_generator_settings.get(Spectrum_generator_settings::calculate_observables))
observables = calculate_observables(std::get<0>(models), qedqcd, physical_input);
if (spectrum_generator_settings.get(Spectrum_generator_settings::calculate_observables)) {
auto model = std::get<0>(models);
model.run_to(scales.pole_mass_scale);
observables = calculate_observables(model, qedqcd, physical_input);
}

const bool show_result = !problems.have_problem() ||
spectrum_generator_settings.get(Spectrum_generator_settings::force_output);
Expand Down
5 changes: 4 additions & 1 deletion templates/run_cmd_line.cpp.in
Expand Up @@ -96,8 +96,11 @@ int run_solver(const @ModelName@_input_parameters& input)
scales.LowScale = spectrum_generator.get_low_scale();
scales.pole_mass_scale = spectrum_generator.get_pole_mass_scale();

auto model_obs = model;
model_obs.run_to(scales.pole_mass_scale);

const auto observables = calculate_observables(
model, qedqcd, physical_input);
model_obs, qedqcd, physical_input);

// SLHA output
SLHAea::Coll slhaea(@ModelName@_slha_io::fill_slhaea(
Expand Down

0 comments on commit be5d9f7

Please sign in to comment.