met#

MET corrections.

Calibrators#

class met_phi(*args, **kwargs)[source]#

Bases: _met_phi_base

cache_instances = True#
call_func(events, **kwargs)#

Performs the MET phi (type II) correction using correctionlib. Events whose uncorrected MET pt is below the beam energy (extracted from config_inst.campaign.ecm * 0.5) are skipped. Requires an external file in the config under met_phi_corr:

cfg.x.external_files = DotDict.wrap({
    "met_phi_corr": "/afs/cern.ch/work/m/mrieger/public/mirrors/jsonpog-integration-406118ec/POG/JME/2022_Summer22EE/met_xyCorrections_2022_2022EE.json.gz",  # noqa
})

get_met_file can be adapted in a subclass in case it is stored differently in the external files.

The calibrator should be configured with an METPhiConfig as an auxiliary entry in the config named met_phi_correction. get_met_config can be adapted in a subclass in case it is stored differently in the config. Exemplary config entry:

from columnflow.calibration.cms.met import METPhiConfig
cfg.x.met_phi_correction = METPhiConfig(
    correction_set="met_xy_corrections",
    met_name="PuppiMET",
    met_type="PuppiMET",
    keep_uncorrected=False,
    # mappings of method variation to column (pt/phi) postfixes
    pt_phi_variations={
        "stat_xdn": "metphi_statx_down",
        "stat_xup": "metphi_statx_up",
        "stat_ydn": "metphi_staty_down",
        "stat_yup": "metphi_staty_up",
    },
    variations={
        "pu_dn": "minbias_xs_down",
        "pu_up": "minbias_xs_up",
    },
)
Return type:

Array

exposed = True#
init_func(**kwargs)#

Default init function.

Return type:

None

setup_func(task, reqs, inputs, reader_targets, **kwargs)#

Default setup function.

Return type:

None

skip_func(**kwargs) bool#

Default skip function.

Return type:

bool

static update_cls_dict(cls_name, cls_dict, get_attr)#