diff --git a/templates/librarylink.cpp.in b/templates/librarylink.cpp.in index 6d70ae842..0621e5640 100644 --- a/templates/librarylink.cpp.in +++ b/templates/librarylink.cpp.in @@ -140,7 +140,7 @@ Model_data fill(double* pars, mint npars) { Model_data data; - const mint n_settings = 17, n_sm_parameters = 0; + const mint n_settings = 17, n_sm_parameters = 19; const mint n_total = n_settings + n_sm_parameters; if (npars != n_total) { @@ -169,6 +169,40 @@ Model_data fill(double* pars, mint npars) data.settings.set(Spectrum_generator_settings::pole_mass_scale, pars[c++]); data.parameter_output_scale = pars[c++]; + data.qedqcd = softsusy::QedQcd(); + + data.qedqcd.setAlpha(softsusy::ALPHA, pars[c]); + data.qedqcd.setAlphaEmInput(pars[c++]); + data.qedqcd.setFermiConstant(pars[c++]); + data.qedqcd.setAlpha(softsusy::ALPHAS, pars[c]); + data.qedqcd.setAlphaSInput(pars[c++]); + data.qedqcd.setPoleMZ(pars[c]); + data.qedqcd.setMu(pars[c++]); + data.qedqcd.setMass(softsusy::mBottom, pars[c]); + data.qedqcd.setMbMb(pars[c++]); + data.qedqcd.setPoleMt(pars[c++]); + data.qedqcd.setMass(softsusy::mTau, pars[c]); + data.qedqcd.setPoleMtau(pars[c++]); + data.qedqcd.setNeutrinoPoleMass(3, pars[c++]); + data.qedqcd.setPoleMW(pars[c++]); + data.qedqcd.setMass(softsusy::mElectron, pars[c]); + data.qedqcd.setPoleMel(pars[c++]); + data.qedqcd.setNeutrinoPoleMass(1, pars[c++]); + data.qedqcd.setMass(softsusy::mMuon, pars[c]); + data.qedqcd.setPoleMmuon(pars[c++]); + data.qedqcd.setNeutrinoPoleMass(2, pars[c++]); + data.qedqcd.setMass(softsusy::mDown, pars[c]); + data.qedqcd.setMd2GeV(pars[c++]); + data.qedqcd.setMass(softsusy::mUp, pars[c]); + data.qedqcd.setMu2GeV(pars[c++]); + data.qedqcd.setMass(softsusy::mStrange, pars[c]); + data.qedqcd.setMs2GeV(pars[c++]); + data.qedqcd.setMass(softsusy::mCharm, pars[c]); + data.qedqcd.setMcMc(pars[c++]); + + data.physical_input.set(Physical_input::alpha_em_0, pars[c++]); + data.physical_input.set(Physical_input::mh_pole, pars[c++]); + if (npars != c) { std::cerr << "Error: Bug: number of given input parameters (" << npars << ") does not match number of set input parameters (" << c diff --git a/templates/librarylink.m.in b/templates/librarylink.m.in index 04402bd39..bc2d4bea2 100644 --- a/templates/librarylink.m.in +++ b/templates/librarylink.m.in @@ -24,13 +24,37 @@ fsDefaultSettings = { parameterOutputScale -> 0 (* MODSEL[12] *) }; +fsDefaultSMParameters = { + alphaEmMZ -> 1/127.916, (* SMINPUTS[1] *) + GF -> 1.16637*^-5, (* SMINPUTS[2] *) + alphaSMZ -> 0.1184, (* SMINPUTS[3] *) + MZ -> 91.1876, (* SMINPUTS[4] *) + mbmb -> 4.18, (* SMINPUTS[5] *) + Mt -> 173.34, (* SMINPUTS[6] *) + Mtau -> 1.777, (* SMINPUTS[7] *) + Mv3 -> 0, (* SMINPUTS[8] *) + MW -> 80.385, (* SMINPUTS[9] *) + Me -> 0.000510998902, (* SMINPUTS[11] *) + Mv1 -> 0, (* SMINPUTS[12] *) + Mm -> 0.1056583715, (* SMINPUTS[13] *) + Mv2 -> 0, (* SMINPUTS[14] *) + md2GeV -> 0.00475, (* SMINPUTS[21] *) + mu2GeV -> 0.0024, (* SMINPUTS[22] *) + ms2GeV -> 0.104, (* SMINPUTS[23] *) + mcmc -> 1.27, (* SMINPUTS[24] *) + alphaEm0 -> 1/137.035999074, + Mh -> 125.09 +}; + Options[FS@ModelName@OpenHandle] = { - fsSettings -> fsDefaultSettings + fsSettings -> fsDefaultSettings, + fsSMParameters -> fsDefaultSMParameters }; FS@ModelName@OpenHandle[OptionsPattern[]] := FS@ModelName@OpenHandleLib[ { + (* spectrum generator settings *) precisionGoal /. OptionValue[fsSettings], maxIterations /. OptionValue[fsSettings], calculateStandardModelMasses /. OptionValue[fsSettings], @@ -47,9 +71,30 @@ FS@ModelName@OpenHandle[OptionsPattern[]] := betaZeroThreshold /. OptionValue[fsSettings], forcePositiveMasses /. OptionValue[fsSettings], poleMassScale /. OptionValue[fsSettings], - parameterOutputScale /. OptionValue[fsSettings] + parameterOutputScale /. OptionValue[fsSettings], + + (* Standard Model input parameters *) + alphaEmMZ /. OptionValue[fsSMParameters], + GF /. OptionValue[fsSMParameters], + alphaSMZ /. OptionValue[fsSMParameters], + MZ /. OptionValue[fsSMParameters], + mbmb /. OptionValue[fsSMParameters], + Mt /. OptionValue[fsSMParameters], + Mtau /. OptionValue[fsSMParameters], + Mv3 /. OptionValue[fsSMParameters], + MW /. OptionValue[fsSMParameters], + Me /. OptionValue[fsSMParameters], + Mv1 /. OptionValue[fsSMParameters], + Mm /. OptionValue[fsSMParameters], + Mv2 /. OptionValue[fsSMParameters], + md2GeV /. OptionValue[fsSMParameters], + mu2GeV /. OptionValue[fsSMParameters], + ms2GeV /. OptionValue[fsSMParameters], + mcmc /. OptionValue[fsSMParameters], + alphaEm0 /. OptionValue[fsSMParameters], + Mh /. OptionValue[fsSMParameters] } - ]; +]; handle = FS@ModelName@OpenHandle[]; FS@ModelName@CalculateSpectrum[handle];