icedqcd

DQCD analysis functions.

icedqcd.common

load_root_file(root_path, ids=None, entry_start=0, entry_stop=None, maxevents=None, args=None)[source]

Loads the root files

Parameters:

root_path – path to root files

Returns:

jagged columnar data Y: class labels W: event weights ids: columnar variables string (list) info: trigger, MC xs, pre-selection acceptance x efficiency information (dict)

Return type:

X

process_root(X, args, ids=None, isMC=None, return_mask=False, class_id=None, **kwargs)[source]

Apply selections

splitfactor(x, y, w, ids, args, skip_graph=True, use_dequantize=True)[source]

Transform data into different datatypes.

Parameters:
  • data – jagged arrays

  • args – arguments dictionary

Returns:

dictionary with different data representations

icedqcd.deploy

create_ID_label(ID, mc_param, lattice_values, decimals=2)[source]

Create parameter label for the conditional model parameters

f2s(value, decimals=2)[source]

Convert e.g. floating point “1.5” to “1p5”

generate_cartesian_param(ids, mc_param, decimals=2)[source]

Generate cartesian N-dim array for the theory model parameter conditional sampling

get_predictor(args, param, feature_names=None)[source]

Load model predictor function handle

process_data(args)[source]

Main processing loop

zscore_normalization(X, args)[source]

Z-score normalization

icedqcd.graphio

parse_graph_data(X, ids, features, node_features, graph_param, Y=None, weights=None, entry_start=None, entry_stop=None, null_value=-999.0, EPS=1e-12)[source]

Jagged array data into pytorch-geometric style Data format array.

Parameters:
  • X – Jagged Awkward array of variables

  • ids – Variable names as an array of strings

  • features – List of active global feature strings

  • graph_param – Graph construction parameters dict

  • Y – Target class array (if any, typically MC only)

  • weights – (Re-)weighting array (if any, typically MC only)

Returns:

List of pytorch-geometric Data objects

icedqcd.limits

create_limit_plots_vector(data, param, savepath='.')[source]
create_limit_tables(data, param, savepath)[source]
find_limits(data, param_fixed, value, param_running, method)[source]
limit_wrapper_dict(data, param, bg_regulator=0.0, s_regulator=0.0)[source]
plot_brazil(x, Y, s1_color=array([0., 0.96078431, 0.13333333]), s2_color=array([0.96078431, 0.96078431, 0.21960784]), horizontal_line=0.1, ylim=[0.0009, 0.2])[source]

Produce classic 1D “Brazil” plot

Parameters:
  • x – x-axis values

  • Y – Y-axis values, dim = [number of points] x [-2sigma, -1sigma, median, +1sigma, +2sigma]

Returns:

fig, ax

run_limits_vector(data={}, param={}, savepath='.')[source]

DQCD fast limits

icedqcd.optimize

find_filter(rd, model_param, args)[source]

Find filter strings

func_binormal(x, a, b)[source]

binormal-function https://dpc10ster.github.io/RJafrocBook/binormal-model.html

b = sd0 / sd1 a = (mu1 - mu0) / sd1

func_binormal2(x, a, b)[source]

Formulas 4, (14): https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5570585/pdf/nihms-736507.pdf

optimize_selection(args)[source]

Main program

plot_ROC_fit(i, fpr, tpr, tpr_err, fpr_err, roc_obj, roc_label, names, args, savename)[source]

Plot ROC fits