|
Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
|
Decay parent for the exclusive B > K* l+ l- decays. Implements the integrated branching ratio and angular observables in several q² bins, as well as the forward-backward asymmetry of the decay. More...
#include <BKsllDecay.h>


Public Member Functions | |
| BKstarllDecay (QCDOrder order, double matching_scale, double hadronic_scale, ObservablePortsConfig &ports) | |
| void | load_params () override |
| Load and cache parameters needed by this decay. | |
| std::vector< ObservableValue > | compute_observable (Observables obs) override |
| Compute an observable given a public observable enum. | |
| std::vector< ObservableValue > | compute_observable (ObservableId obs) override |
| Compute an observable given an internal observable identifier. | |
| void | set_config_spe (BKstarllConfig config) override |
| Strongly-typed configuration setter to implement in derived classes. | |
| std::any | get_config () const override |
| Return the current decay configuration when the decay has one. | |
| void | set_n_threads (size_t n_threads) override |
| Set the number of worker threads used by decays that support parallel cache filling. | |
| size_t | get_n_threads () const override |
| Return the currently configured worker-thread count. | |
| bool | supports_thread_config () const override |
| Whether this decay supports runtime thread configuration. | |
| bool | is_observable_binned (ObservableId obs) const override |
| Return whether one observable of this decay requires q² bins. | |
Public Member Functions inherited from DecayParentConfigurable< BKstarllConfig > | |
| DecayParentConfigurable (DecayId id, double matching_scale, double hadronic_scale, QCDOrder order, ObservablePortsConfig &ports) | |
| Construct a configurable decay module. | |
| void | set_config (std::any cfg) final override |
| Type-erased config setter (final). | |
Public Member Functions inherited from DecayParent | |
| virtual | ~DecayParent ()=default |
| DecayParent (DecayId custom_id, double matching_scale, double hadronic_scale, QCDOrder order, ObservablePortsConfig &ports) | |
| Construct a decay module and bind it to the observable ports. | |
| void | bind_wilson_builder (std::shared_ptr< IObsWilsonBuilder > &wilson_builder) |
| Bind a Wilson builder to this decay. | |
| void | enable () |
| Enable the decay module (build Wilson groups and load parameters). | |
| void | disable () |
| Disable the decay module. | |
| void | set_order (QCDOrder new_order) |
| Set the QCD order for this decay (one-shot policy). | |
| void | set_bins (std::vector< std::pair< double, double > > new_bins) |
| Set the binning for the observables related to this decay. | |
| void | add_bin (std::pair< double, double > new_bin) |
| Adds a bin to the observables related to this decay. | |
| std::optional< std::vector< std::pair< double, double > > > | get_bins () |
| Returns the current binning of the decay. | |
| DecayId | get_id () |
| Return the decay identifier. | |
| QCDOrder | get_order () const |
| Return the currently configured QCD order for this decay. | |
| bool | is_enabled () const |
| Return whether the decay has already been enabled. | |
| bool | is_binned () const |
| Return whether this decay has at least one observable requiring q² bins. | |
| virtual bool | is_observable_binned (Observables obs) const |
| Convenience overload for public observable enum ids. | |
Protected Member Functions | |
| void | fill_wilson_cache () |
| void | load_cfg_dependent_params () |
| void | set_lepton_gen_and_charge (BKstarllConfig::Lepton gen, BKstarllConfig::B_Charge charge) |
| complex_t | T_perp_p_cached (double q2, bool bar) |
| complex_t | T_perp_m_cached (double q2, bool bar) |
| complex_t | T_par_m_cached (double q2, bool bar) |
| double | beta_l (double q2) |
| double | lambda (double q2) |
| complex_t | N (double q2, bool bar) |
| complex_t | delta_A_perp_QCDf (double q2, double sign, bool bar) |
| complex_t | delta_A_perp_vD (double q2, bool bar) |
| complex_t | delta_A_perp_K (double q2, bool bar) |
| complex_t | delta_A_perp (double q2, double sign, bool bar) |
| complex_t | delta_A_par_QCDf (double q2, double sign, bool bar) |
| complex_t | delta_A_par_vD (double q2, bool bar) |
| complex_t | delta_A_par_K (double q2, bool bar) |
| complex_t | delta_A_par (double q2, double sign, bool bar) |
| complex_t | delta_A_0_QCDf (double q2, double sign, bool bar) |
| complex_t | delta_A_0_vD (double q2, bool bar) |
| complex_t | delta_A_0_K (double q2, bool bar) |
| complex_t | delta_A_0 (double q2, double sign, bool bar) |
| complex_t | A_perp_low (double q2, double sign, bool bar) |
| complex_t | A_par_low (double q2, double sign, bool bar) |
| complex_t | A_0_low (double q2, double sign, bool bar) |
| complex_t | A_t_low (double q2, bool bar) |
| complex_t | A_S_low (double q2, bool bar) |
| complex_t | C7_eff (double q2, bool bar) |
| complex_t | C9_eff (double q2, bool bar) |
| complex_t | A_perp_high (double q2, double sign, bool bar) |
| complex_t | A_par_high (double q2, double sign, bool bar) |
| complex_t | A_0_high (double q2, double sign, bool bar) |
| complex_t | A_t_high (double q2, bool bar) |
| complex_t | A_S_high (double q2, bool bar) |
| complex_t | interpolate (double q2, complex_t val_low, complex_t val_high) |
| complex_t | A_perp (double q2, double sign, bool bar) |
| complex_t | A_par (double q2, double sign, bool bar) |
| complex_t | A_0 (double q2, double sign, bool bar) |
| complex_t | A_t (double q2, bool bar) |
| complex_t | A_S (double q2, bool bar) |
| double | J1s (double q2, bool bar) |
| double | J1c (double q2, bool bar) |
| double | J2s (double q2, bool bar) |
| double | J2c (double q2, bool bar) |
| double | J3 (double q2, bool bar) |
| double | J4 (double q2, bool bar) |
| double | J5 (double q2, bool bar) |
| double | J6s (double q2, bool bar) |
| double | J6c (double q2, bool bar) |
| double | J7 (double q2, bool bar) |
| double | J8 (double q2, bool bar) |
| double | J9 (double q2, bool bar) |
| void | compute_binned_J_i () |
| std::vector< ObservableValue > | dBR_dq2_binned (bool bar, Observables id, bool br=true) |
| double | dG_dq2_avg_bin (size_t bin) |
| std::vector< ObservableValue > | A_FB_binned (Observables id, bool cpv) |
| ObservableValue | q0 (Observables id) |
| std::vector< ObservableValue > | A_CP_binned (Observables id) |
| std::vector< ObservableValue > | F_L_binned (Observables id) |
| std::vector< ObservableValue > | F_T_binned (Observables id) |
| std::vector< ObservableValue > | A_T_1_binned (Observables id) |
| std::vector< ObservableValue > | A_T_2_binned (Observables id) |
| std::vector< ObservableValue > | A_T_3_binned (Observables id) |
| std::vector< ObservableValue > | A_T_4_binned (Observables id) |
| std::vector< ObservableValue > | A_T_5_binned (Observables id) |
| std::vector< ObservableValue > | A_T_Re_binned (Observables id) |
| std::vector< ObservableValue > | A_T_Re_CPV_binned (Observables id) |
| std::vector< ObservableValue > | A_Im_binned (Observables id) |
| std::vector< ObservableValue > | alpha_K_binned (Observables id) |
| std::vector< ObservableValue > | H_T_1_binned (Observables id) |
| std::vector< ObservableValue > | H_T_2_binned (Observables id) |
| std::vector< ObservableValue > | H_T_3_binned (Observables id) |
| std::vector< ObservableValue > | P_2_binned (Observables id) |
| std::vector< ObservableValue > | P_3_binned (Observables id) |
| std::vector< ObservableValue > | P_6_binned (Observables id) |
| std::vector< ObservableValue > | P_8_binned (Observables id) |
| std::vector< ObservableValue > | Pp_i_binned (size_t i, bool cpv, Observables id) |
| std::vector< ObservableValue > | S_i_binned (size_t i, bool cpv, Observables id) |
| std::vector< ObservableValue > | P_i_CPV_binned (size_t i, Observables id) |
| std::vector< ObservableValue > | Rm1_BKstar (Observables id, BKstarllConfig::B_Charge charge) |
| void | test_ff () |
| void | test_T () |
| void | test_J () |
| void | test_binned_obs () |
Protected Member Functions inherited from DecayParent | |
| QCDOrder | check_max_order (QCDOrder order) const |
| Clamp a requested QCD order to this decay's supported maximum. | |
Additional Inherited Members | |
Protected Attributes inherited from DecayParent | |
| QCDOrder | max_order = QCDOrder::LO |
| Maximum QCD order supported by this decay module (default: LO). | |
| ObservablePortsConfig & | ports |
| Reference to the ports/configuration wiring this decay to the framework. | |
| std::shared_ptr< IObsWilsonBuilder > | w_builder |
| Wilson builder used to build/add Wilson groups for this decay. | |
| std::shared_ptr< IObsWilsonProxy > | w_proxy |
| Wilson proxy used at compute-time to query coefficients (matching/run). | |
| std::shared_ptr< IObsCoreAPI< bool > > | use_marty |
| Port exposing whether the MARTY backend is active. | |
| 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< IObsQCDProxy > | iobs_qcdp |
| QCD proxy (alpha_s, running masses, constants...). | |
| std::shared_ptr< IWilsonFreezer< WGroupId > > | iobs_wfreezer |
| Freezer to freeze/unfreeze Wilson blocks when they are not needed by active decays. | |
| std::shared_ptr< ObsWilsonHelper > | w_helper |
| Per-manager Wilson lifecycle helper. | |
| WilsonBuildConfig | w_config {} |
| Wilson build configuration used when enabling this decay (scales, order, groups). | |
| bool | enabled {false} |
| Whether the decay is enabled (i.e. Wilson groups built and parameters loaded). | |
| bool | binned {false} |
| Whether this decay requires q² bins before its observables can be computed. | |
| DecayId | id |
| Unique decay identifier. | |
| std::optional< std::vector< std::pair< double, double > > > | bins |
| Optional q^2 bins. | |
Decay parent for the exclusive B > K* l+ l- decays. Implements the integrated branching ratio and angular observables in several q² bins, as well as the forward-backward asymmetry of the decay.
Definition at line 90 of file BKsllDecay.h.
|
inline |
Definition at line 92 of file BKsllDecay.h.
|
protected |
Definition at line 679 of file BKsllDecay.cpp.
|
protected |
Definition at line 636 of file BKsllDecay.cpp.
|
protected |
Definition at line 457 of file BKsllDecay.cpp.
|
protected |
Definition at line 1035 of file BKsllDecay.cpp.
|
protected |
Definition at line 1008 of file BKsllDecay.cpp.
|
protected |
Definition at line 1181 of file BKsllDecay.cpp.
|
protected |
Definition at line 675 of file BKsllDecay.cpp.
|
protected |
Definition at line 628 of file BKsllDecay.cpp.
|
protected |
Definition at line 427 of file BKsllDecay.cpp.
|
protected |
Definition at line 671 of file BKsllDecay.cpp.
|
protected |
Definition at line 619 of file BKsllDecay.cpp.
|
protected |
Definition at line 397 of file BKsllDecay.cpp.
|
protected |
Definition at line 687 of file BKsllDecay.cpp.
|
protected |
Definition at line 654 of file BKsllDecay.cpp.
|
protected |
Definition at line 510 of file BKsllDecay.cpp.
|
protected |
Definition at line 683 of file BKsllDecay.cpp.
|
protected |
Definition at line 1073 of file BKsllDecay.cpp.
|
protected |
Definition at line 1090 of file BKsllDecay.cpp.
|
protected |
Definition at line 1105 of file BKsllDecay.cpp.
|
protected |
Definition at line 1119 of file BKsllDecay.cpp.
|
protected |
Definition at line 1132 of file BKsllDecay.cpp.
|
protected |
Definition at line 644 of file BKsllDecay.cpp.
|
protected |
Definition at line 492 of file BKsllDecay.cpp.
|
protected |
Definition at line 1155 of file BKsllDecay.cpp.
|
protected |
Definition at line 1170 of file BKsllDecay.cpp.
|
protected |
Definition at line 1190 of file BKsllDecay.cpp.
|
protected |
Definition at line 300 of file BKsllDecay.cpp.
|
protected |
Definition at line 594 of file BKsllDecay.cpp.
|
protected |
Definition at line 600 of file BKsllDecay.cpp.
|
protected |
Definition at line 785 of file BKsllDecay.cpp.
|
overridevirtual |
Compute an observable given an internal observable identifier.
| obs | Internal observable id. |
Implements DecayParent.
Definition at line 2539 of file BKsllDecay.cpp.
|
overridevirtual |
Compute an observable given a public observable enum.
| obs | Observable enum id. |
Implements DecayParent.
Definition at line 1463 of file BKsllDecay.cpp.
|
protected |
Definition at line 969 of file BKsllDecay.cpp.
|
protected |
Definition at line 581 of file BKsllDecay.cpp.
|
protected |
Definition at line 575 of file BKsllDecay.cpp.
|
protected |
Definition at line 537 of file BKsllDecay.cpp.
|
protected |
Definition at line 567 of file BKsllDecay.cpp.
|
protected |
Definition at line 524 of file BKsllDecay.cpp.
|
protected |
Definition at line 392 of file BKsllDecay.cpp.
|
protected |
Definition at line 368 of file BKsllDecay.cpp.
|
protected |
Definition at line 384 of file BKsllDecay.cpp.
|
protected |
Definition at line 355 of file BKsllDecay.cpp.
|
protected |
Definition at line 350 of file BKsllDecay.cpp.
|
protected |
Definition at line 326 of file BKsllDecay.cpp.
|
protected |
Definition at line 342 of file BKsllDecay.cpp.
|
protected |
Definition at line 1004 of file BKsllDecay.cpp.
|
protected |
Definition at line 1046 of file BKsllDecay.cpp.
|
protected |
Definition at line 1064 of file BKsllDecay.cpp.
|
protected |
Definition at line 62 of file BKsllDecay.cpp.
|
inlineoverridevirtual |
Return the current decay configuration when the decay has one.
The base implementation returns an empty std::any. Configurable decays that keep runtime options, such as form-factor source or internal thread count, override this so ObservableInterface worker clones can reproduce the same physics setup as the parent interface.
Reimplemented from DecayParent.
Definition at line 103 of file BKsllDecay.h.
|
inlineoverridevirtual |
Return the currently configured worker-thread count.
Decays that do not implement internal parallelism return 1.
Reimplemented from DecayParent.
Definition at line 105 of file BKsllDecay.h.
|
protected |
Definition at line 1201 of file BKsllDecay.cpp.
|
protected |
Definition at line 1214 of file BKsllDecay.cpp.
|
protected |
Definition at line 1227 of file BKsllDecay.cpp.
Definition at line 660 of file BKsllDecay.cpp.
|
overridevirtual |
Return whether one observable of this decay requires q² bins.
Most decays are either fully binned or fully unbinned, but some mixed decays such as B -> K*ll also expose global observables like q0(A_FB).
Reimplemented from DecayParent.
Definition at line 2543 of file BKsllDecay.cpp.
|
protected |
Definition at line 703 of file BKsllDecay.cpp.
|
protected |
Definition at line 691 of file BKsllDecay.cpp.
|
protected |
Definition at line 721 of file BKsllDecay.cpp.
|
protected |
Definition at line 712 of file BKsllDecay.cpp.
|
protected |
Definition at line 728 of file BKsllDecay.cpp.
|
protected |
Definition at line 737 of file BKsllDecay.cpp.
|
protected |
Definition at line 744 of file BKsllDecay.cpp.
|
protected |
Definition at line 759 of file BKsllDecay.cpp.
|
protected |
Definition at line 752 of file BKsllDecay.cpp.
|
protected |
Definition at line 763 of file BKsllDecay.cpp.
|
protected |
Definition at line 771 of file BKsllDecay.cpp.
|
protected |
Definition at line 778 of file BKsllDecay.cpp.
|
protected |
Definition at line 305 of file BKsllDecay.cpp.
|
protected |
Definition at line 81 of file BKsllDecay.cpp.
|
overridevirtual |
Load and cache parameters needed by this decay.
Derived classes should read all relevant inputs through the proxies (e.g. p, w_proxy, iobs_qcdp) and store them internally.
This is called by enable after Wilson has been built and the proxy is ready.
Implements DecayParent.
Definition at line 26 of file BKsllDecay.cpp.
|
protected |
Definition at line 318 of file BKsllDecay.cpp.
|
protected |
Definition at line 1239 of file BKsllDecay.cpp.
|
protected |
Definition at line 1250 of file BKsllDecay.cpp.
|
protected |
Definition at line 1261 of file BKsllDecay.cpp.
|
protected |
Definition at line 1274 of file BKsllDecay.cpp.
|
protected |
Definition at line 1321 of file BKsllDecay.cpp.
|
protected |
Definition at line 1287 of file BKsllDecay.cpp.
|
protected |
Definition at line 1020 of file BKsllDecay.cpp.
|
protected |
Definition at line 1431 of file BKsllDecay.cpp.
|
protected |
Definition at line 1305 of file BKsllDecay.cpp.
|
inlineoverridevirtual |
Strongly-typed configuration setter to implement in derived classes.
| config | Parsed configuration object. |
Implements DecayParentConfigurable< BKstarllConfig >.
Definition at line 102 of file BKsllDecay.h.
|
protected |
Definition at line 261 of file BKsllDecay.cpp.
|
overridevirtual |
Set the number of worker threads used by decays that support parallel cache filling.
The default implementation warns and leaves the decay unchanged. Derived decays with long QCDf/integration caches can override this method. Passing 0 means "use hardware_concurrency" for decays that support it.
| n_threads | Requested number of threads. |
Reimplemented from DecayParent.
Definition at line 2562 of file BKsllDecay.cpp.
|
inlineoverridevirtual |
Whether this decay supports runtime thread configuration.
Reimplemented from DecayParent.
Definition at line 106 of file BKsllDecay.h.
|
protected |
Definition at line 290 of file BKsllDecay.cpp.
|
protected |
Definition at line 280 of file BKsllDecay.cpp.
|
protected |
Definition at line 270 of file BKsllDecay.cpp.
|
protected |
|
protected |
Definition at line 1337 of file BKsllDecay.cpp.
|
protected |
Definition at line 1387 of file BKsllDecay.cpp.
|
protected |
Definition at line 1365 of file BKsllDecay.cpp.