Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
THDMParametersHelper.cpp
Go to the documentation of this file.
2#include "wcoef_ids.hpp"
3
4
6 if (initialized) {
7 return;
8 }
9
12
13 initialized = true;
14}
15
17 std::unordered_map<ParameterType, std::vector<std::string>> src = {{ParameterType::SM, {"MASS"}}, {ParameterType::BSM, {"MASS", "ALPHA", "MINPAR", "YU", "YD", "YE"}},
18 {ParameterType::WILSON, {"WPARAM_SI_SM"}}};
19
20 auto func = [] (const BlockSrc& src, std::shared_ptr<DependentBlock> dep_block) {
21 double xh = pow(src.get_val("MASS", 25) / src.get_val("MASS", 24), 2);
22 double alpha = src.get_val("ALPHA", LhaID(""));
23 double m_H = src.get_val("MASS" ,37);
24 double beta = atan(src.get_val("MINPAR" ,3));
25 double lu = src.get_val("YU" ,LhaID(2,2));
26 double ld = src.get_val("YD" ,LhaID(2,2));
27 const int lepton_gen = static_cast<int>(src.get_val("WPARAM_SI_SM", 2));
28 double le = src.get_val("YE", LhaID(lepton_gen, lepton_gen));
29 double mW = src.get_val("MASS", 24);
30 double xH=pow(m_H/mW,2.);
31 double xH0=pow(src.get_val("MASS" ,35) / mW, 2.);
32 double xA=pow(src.get_val("MASS" ,36) / mW, 2.);
33
34 dep_block->store_or_assign(1, std::make_shared<Parameter>(ParamId{ParameterType::WILSON, "WPARAM_SI_BSM", 1}, xh, 0., 0.));
35 dep_block->store_or_assign(2, std::make_shared<Parameter>(ParamId{ParameterType::WILSON, "WPARAM_SI_BSM", 2}, xH, 0., 0.));
36 dep_block->store_or_assign(3, std::make_shared<Parameter>(ParamId{ParameterType::WILSON, "WPARAM_SI_BSM", 3}, xH0, 0., 0.));
37 dep_block->store_or_assign(4, std::make_shared<Parameter>(ParamId{ParameterType::WILSON, "WPARAM_SI_BSM", 4}, xA, 0., 0.));
38 dep_block->store_or_assign(5, std::make_shared<Parameter>(ParamId{ParameterType::WILSON, "WPARAM_SI_BSM", 5}, m_H, 0., 0.));
39 dep_block->store_or_assign(6, std::make_shared<Parameter>(ParamId{ParameterType::WILSON, "WPARAM_SI_BSM", 6}, beta, 0., 0.));
40 dep_block->store_or_assign(7, std::make_shared<Parameter>(ParamId{ParameterType::WILSON, "WPARAM_SI_BSM", 7}, lu, 0., 0.));
41 dep_block->store_or_assign(8, std::make_shared<Parameter>(ParamId{ParameterType::WILSON, "WPARAM_SI_BSM", 8}, ld, 0., 0.));
42 dep_block->store_or_assign(9, std::make_shared<Parameter>(ParamId{ParameterType::WILSON, "WPARAM_SI_BSM", 9}, alpha, 0., 0.));
43 dep_block->store_or_assign(10, std::make_shared<Parameter>(ParamId{ParameterType::WILSON, "WPARAM_SI_BSM", 10}, le, 0., 0.));
44
45 // Keep the historical slot 10 for the configured lepton generation, and
46 // additionally expose all three lepton Yukawas for CQ/CPQ_E/MU/TA.
47 for (int i = 0; i < 3; ++i) {
49 const double le_i = src.get_val("YE", LhaID(i + 1, i + 1));
50 dep_block->store_or_assign(slot, std::make_shared<Parameter>(ParamId{ParameterType::WILSON, "WPARAM_SI_BSM", slot}, le_i, 0., 0.));
51 }
52 };
53
54 iblock_c->compose_block("WPARAM_SI_BSM", src, func);
55 }
56
58
59 std::unordered_map<ParameterType, std::vector<std::string>> src = {
60 {ParameterType::SM, {"MASS" /*, "QCD"*/}},
61 {ParameterType::WILSON, {"WPARAM_MATCH_SM"}}
62 };
63
64 auto func = [] (const BlockSrc& src, std::shared_ptr<DependentBlock> dep_block) {
65 double yt = pow(src.get_val("WPARAM_MATCH_SM" ,6)/src.get_val("MASS" ,37),2.); // param->mass_H (25)
66 dep_block->store_or_assign(1, std::make_shared<Parameter>(ParamId{ParameterType::WILSON, "WPARAM_MATCH_BSM", 1}, yt, 0., 0.));
67 };
68
69 iblock_c->compose_block("WPARAM_MATCH_BSM", src, func);
70
71}
Wilson helper blocks specialized for the THDM model.
Lightweight view over a set of source blocks.
Definition SourcesView.h:71
bool initialized
Tracks whether the helper has already been initialized.
std::shared_ptr< IBlockComposer > iblock_c
Block composer (dependency engine) used to register dependent blocks.
Returns an uppercase copy of the input string.
void init_matching_block() override
Builds THDM matching-scale helper blocks.
void init(int gen, WGroupId grp) override
Initializes THDM-specific helper blocks.
void init_scale_independent_block(int gen) override
Builds THDM scale-independent helper blocks.
static constexpr int thdm_lepton_yukawa_slot_from_index(int lepton_index)
scalar_t pow(const scalar_t &base, const scalar_t &exp)
Definition scalar.cpp:75
Represents an identifier of a LHA element, possibly containing several sub-ids.
Definition LhaID.h:56
Composite identifier for a single parameter.
Definition ParamID.h:57