ml4eft.core.th_predictions.TheoryPred#

class ml4eft.core.th_predictions.TheoryPred(path_to_theory_pred, bins=None)[source]#

Bases: object

SMEFT theory calculator

__init__(path_to_theory_pred, bins=None)[source]#

TheoryPred Constructor

Parameters
  • path_to_theory_pred (dict) – Nested dictionary that contains the paths to the events in the SM and the EFT. It must be of the form {‘sm’: <path_to_sm_data>, ‘lin’: {‘c1’: <path_to_c1_data>, ‘c2’: <path_to_c2_data> }, ‘quad’: {‘c1_c1’: <path_to_c1_c1_data>, ‘c1_c2’: <path_to_c1_c1_data>, ‘c2_c2’: <path_to_c1_c1_data>}}

  • bins (dict, optional) – Dictionary that specifies the binning per kinematic (keys)

Examples

We consider \(pp \rightarrow t\bar{t} \rightarrow \ell^+\ell^-\nu_\ell\bar{\nu}_\ell b\bar{b}\) and compute SMEFT theory predictions for \(c_{tG}\) and \(c_{tu}^{(8)}\) in the bins \(m_{tt}\in[1450, 1500, 1600, 1700, 2000, \infty)\) GeV

Specify the binning (represent infinity by a large number) and initialise a TheoryPred object:

>>> bins = [1450, 1500, 1600, 1700, 2000, 10000]
>>> th_predictor = TheoryPred(path_to_theory_pred, kinematic="sqrts_hat", bins=bins)

SMEFT predictions can now be computed by

>>> th_predictor.build_theory_pred_df()
>>> th_predictor.th_dict
{'sm': array([0.00579859, 0.00844186, 0.00556653, 0.00799101, 0.00446887]), 'lin': {'ctGRe': array([-0.00176097, -0.00260213, -0.00173878, -0.00256058, -0.00140833]), 'ctu8': array([0.00039829, 0.0006311 , 0.00045633, 0.00075374, 0.0005058 ])},
'quad': {'ctu8_ctu8': array([0.00033827, 0.0005906 , 0.00048487, 0.00100111, 0.00123616]), 'ctGRe_ctGRe': array([0.00090503, 0.00139715, 0.00099753, 0.00164754, 0.0013285 ]), 'ctGRe_ctu8': array([-6.63046602e-05, -1.10171981e-04, -8.56486609e-05, -1.57056872e-04,-1.38448708e-04])}}

Methods

__init__(path_to_theory_pred[, bins])

TheoryPred Constructor

build_theory_pred_df()

Builds a SMEFT theory prediction dictionary

compute_diff_coefficients(optimizer)

Computes unbinned SMEFT theory predictions for the analytical models, i.e. \(t\bar{t}\) or \(ZH\).

compute_th_pred(path_to_events)

Computes cross-section in the SMEFT for a given binning if specified in bins.

get_c_names_unique()

Returns a unique list of EFT parameters in which each parameter only appears once

build_theory_pred_df()[source]#

Builds a SMEFT theory prediction dictionary

compute_diff_coefficients(optimizer)[source]#

Computes unbinned SMEFT theory predictions for the analytical models, i.e. \(t\bar{t}\) or \(ZH\)

Parameters

optimizer (ml4eft.limits.optimize_ns.Optimize) – Optimizer object

Returns

unbinned SMEFT predictions

Return type

dict

compute_th_pred(path_to_events)[source]#

Computes cross-section in the SMEFT for a given binning if specified in bins. Otherwise it returns an average of the total cross section averaged over the available replicas.

Parameters

path_to_events (str) – Path to events, e.g. tt_llvlvlbb/tt_ctGRe

Returns

Cross section per bin averaged over the available replicas

Return type

array_like

get_c_names_unique()[source]#

Returns a unique list of EFT parameters in which each parameter only appears once

Returns

`(N, ) ndarray` array of unique EFT parameters present in path_to_theory_pred

Return type

array_like