Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
KPinunuDecay.cpp
Go to the documentation of this file.
1#include "KPinunuDecay.h"
2
4 cache.alpha_s_m_Z = (*p)(ParamId{ParameterType::SM, "SMINPUTS", 3}, DataType::VALUE);
5 cache.sw2 = (*p)(ParamId{ParameterType::SM, "SMINPUTS", {7, 1}}, DataType::VALUE);
6 cache.m_c_m_c = (*p)(ParamId{ParameterType::SM, "MASS", 4}, DataType::VALUE);
7 cache.lambda_c = (*p)(ParamId{ParameterType::SM, "VCKM", {1, 0}}, DataType::VALUE) * std::conj((*p)(ParamId{ParameterType::SM, "VCKM", {1, 1}}, DataType::VALUE));
8 cache.lambda_t = (*p)(ParamId{ParameterType::SM, "VCKM", {2, 0}}, DataType::VALUE) * std::conj((*p)(ParamId{ParameterType::SM, "VCKM", {2, 1}}, DataType::VALUE));
9 cache.lambda = (*p)(ParamId{ParameterType::SM, "VCKMIN", 1}, DataType::VALUE);
10
11 cache.kappa_L = (*p)(ParamId{ParameterType::DECAY, "K_pi", 1}, DataType::VALUE);
12 cache.kappa_p = (*p)(ParamId{ParameterType::DECAY, "K_pi", 2}, DataType::VALUE);
13 cache.delta_em = (*p)(ParamId{ParameterType::DECAY, "K_pi", 3}, DataType::VALUE);
14
15 cache.CL = w_proxy->getFR(WGroup::K, WCoef::CK_L, w_config.order);
16
17 printf("C_L = %.5e + %.5e i\n", real(cache.CL), imag(cache.CL));
18}
19
21 double kappa10 = 1.6624;
22 double kappa01 = -2.3537;
23 double kappa11 = -1.5862;
24 double kappa20 = 1.5036;
25 double kappa02 = -4.3477;
26 double Lmc = log(cache.m_c_m_c/1.3);
27 double Lalphas = log(cache.alpha_s_m_Z/0.1176);
28
29 return pow(0.2255/cache.lambda,4.)*0.38049*pow(cache.m_c_m_c/1.3,0.5081)*pow(cache.alpha_s_m_Z/0.1176,1.0192)*(1. + (Lalphas*kappa01+Lalphas*Lalphas*kappa02+Lmc*kappa10 + Lmc*Lalphas*kappa11 + Lmc*Lmc*kappa20));
30}
31
33 double kappa = cache.kappa_L * 1e-10 * std::pow(cache.lambda / 0.225, 8);
34 return kappa * std::pow(cache.sw2, 2) / std::pow(cache.lambda, 10) * std::pow(std::imag(cache.lambda_t * cache.CL), 2);
35}
36
38 double kappa = cache.kappa_p * 1e-10 * std::pow(cache.lambda / 0.225, 8);
39 double Xc = std::pow(cache.lambda, 4) * P_c();
40 return kappa * std::pow(cache.sw2, 2) * (1 + cache.delta_em) / std::pow(cache.lambda, 10) * (
41 std::pow(std::imag(cache.lambda_t * cache.CL), 2)
42 + std::pow(std::real(cache.lambda_t * cache.CL - cache.lambda_c * Xc / cache.sw2), 2)
43 );
44}
45
46std::vector<ObservableValue> KPinunuDecay::compute_observable(Observables obs) {
47 double value;
48 switch (obs) {
50 value = BR_p();
51 break;
53 value = BR_L();
54 break;
55 default:
56 LOG_ERROR("IndexError", "Observable", ObservableMapper::str(obs), "doesn't belong to the decay", DecayMapper::str(this->id));
57 }
58
59 return {ObservableValue(ObservableMapper::to_id(obs), value)};
60}
61
62
63std::vector<ObservableValue> KPinunuDecay::compute_observable(ObservableId obs) {
65}
Observables
Definition GeneralEnum.h:4
#define LOG_ERROR(type,...)
Macro for logging error messages and terminating the application.
Definition Logger.h:41
WilsonBuildConfig w_config
Wilson build configuration used when enabling this decay (scales, order, groups).
std::shared_ptr< IObsParameterProxy< ParamId, DataType, std::string, LhaID > > p
Parameter proxy for SM-like quantities used by the decay (may be SM/BSM depending on wiring).
std::shared_ptr< IObsWilsonProxy > w_proxy
Wilson proxy used at compute-time to query coefficients (matching/run).
Definition DecayParent.h:99
static std::optional< Observables > enum_of(const IdOf< ObservableTag > &id)
Attempts to recover the enum value associated with an identifier.
static IdOf< ObservableTag > to_id(Observables e)
Converts an enum value to an IdOf<Tag>.
static std::string str(const IdOf< ObservableTag > &id)
Returns the string representation of an identifier.
std::vector< ObservableValue > compute_observable(Observables obs) override
Compute an observable given a public observable enum.
void load_params() override
Load and cache parameters needed by this decay.
double imag(const scalar_t &z)
Definition scalar.cpp:87
scalar_t pow(const scalar_t &base, const scalar_t &exp)
Definition scalar.cpp:75
double real(const scalar_t &z)
Definition scalar.cpp:83
Container for a computed observable value, optionally binned.
Composite identifier for a single parameter.
Definition ParamID.h:57
QCDOrder order
Perturbative QCD order used for the evolution and matching of Wilson coefficients....
Definition Configs.h:54