electron#

Electron related event weights.

Classes:

ElectronSFConfig(correction, campaign[, ...])

electron_weights(*args, **kwargs)

electron_trigger_weights(*args, **kwargs)

electron_sceta(*args, **kwargs)

class ElectronSFConfig(correction, campaign, working_point='', hlt_path='')[source]#

Bases: object

Attributes:

Methods:

new(obj)

correction: str#
campaign: str#
working_point: str = ''#
hlt_path: str = ''#
classmethod new(obj)[source]#
Return type:

ElectronSFConfig

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

Bases: Producer

Attributes:

Methods:

call_func(events[, electron_mask])

Creates electron weights using the correctionlib.

get_electron_config()

get_electron_file(external_files)

init_func(**kwargs)

requires_func(task, reqs, **kwargs)

setup_func(task, reqs, inputs, ...)

skip_func(**kwargs)

update_cls_dict(cls_name, cls_dict, get_attr)

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

Creates electron weights using the correctionlib. Requires an external file in the config under electron_sf:

cfg.x.external_files = DotDict.wrap({
    "electron_sf": "/afs/cern.ch/work/m/mrieger/public/mirrors/jsonpog-integration-9ea86c4c/POG/EGM/2017_UL/electron.json.gz",  # noqa
})

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

The name of the correction set, the year string for the weight evaluation, and the name of the working point should be given as an auxiliary entry in the config:

cfg.x.electron_sf_names = ElectronSFConfig(
    correction="UL-Electron-ID-SF",
    campaign="2017",
    working_point="wp80iso",  # for trigger weights use hlt_path instead
)

get_electron_config can be adapted in a subclass in case it is stored differently in the config.

Optionally, an electron_mask can be supplied to compute the scale factor weight based only on a subset of electrons.

Return type:

ak.Array

data_only = False#
get_electron_config()#
get_electron_file(external_files)#
init_func(**kwargs)#
Return type:

None

mc_only = True#
requires_func(task, reqs, **kwargs)#
Return type:

None

setup_func(task, reqs, inputs, reader_targets, **kwargs)#
Return type:

None

skip_func(**kwargs) bool#
Return type:

bool

supported_versions = (1, 2, 3)#
static update_cls_dict(cls_name, cls_dict, get_attr)#
use_supercluster_eta = True#
uses = {'Electron.{pt,eta,phi,deltaEtaSC}'}#
weight_name = 'electron_weight'#
class electron_trigger_weights(*args, **kwargs)#

Bases: electron_weights

Attributes:

Methods:

get_electron_config()

get_electron_file(external_files)

skip_func(**kwargs)

cache_instances = True#
get_electron_config()#
get_electron_file(external_files)#
skip_func(**kwargs) bool#
Return type:

bool

use_supercluster_eta = False#
weight_name = 'electron_trigger_weight'#
class electron_sceta(*args, **kwargs)[source]#

Bases: Producer

Attributes:

Methods:

call_func(events, **kwargs)

Returns the electron super cluster eta.

skip_func(**kwargs)

update_cls_dict(cls_name, cls_dict, get_attr)

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

Returns the electron super cluster eta.

Return type:

Array

data_only = False#
mc_only = False#
produces = {'Electron.superclusterEta'}#
skip_func(**kwargs) bool#
Return type:

bool

static update_cls_dict(cls_name, cls_dict, get_attr)#
uses = {'Electron.{pt,phi,eta,deltaEtaSC}'}#