Built-in Modules#

Common Modules#

bjet_sf.py#

BJetShapeSF#

class analyzer.modules.common.bjet_sf.BJetShapeSF

Abstract base class for all analyzer modules. Subclasses must implement the inputs and run methods.

Configuration Variables#

Name

Type

Default

input_col

Column

Required

weight_name

str

'b_tag_disc_shape'

should_run

MetadataExpr

Factory

bquarks.py#

BQuarkMaker#

class analyzer.modules.common.bquarks.BQuarkMaker

Select b-tagged jets from a jet collection based on DeepJet working points.

This analyzer identifies b-jets in an event by applying a threshold on the DeepJet b-tagging score as specified by central working point values.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

input_col

Column

Required

output_col

Column

Required

working_point

str

Required

categories.py#

SimpleCategory#

class analyzer.modules.common.categories.SimpleCategory

Create a simple numerical category from an input column.

This analyzer maps a numeric column to a category and registers it in the pipeline with associated axis information for plotting or binning. This axis will be added to all subsequent histograms.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

input_col

Column

Required

cat_name

str

Required

bins

int

Required

start

float

Required

stop

float

Required

column_tools.py#

Concatenate#

class analyzer.modules.common.column_tools.Concatenate

Abstract base class for all analyzer modules. Subclasses must implement the inputs and run methods.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

input_cols

list

Required

output_col

Column

Required

Count#

class analyzer.modules.common.column_tools.Count

Abstract base class for all analyzer modules. Subclasses must implement the inputs and run methods.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

input_col

Column

Required

output_col

Column

Required

PromoteIndex#

class analyzer.modules.common.column_tools.PromoteIndex

Promote a fixed index of a nested collection to a top-level column.

This analyzer selects a single element at a given index from each entry of a nested (jagged) input collection and stores it as a top-level column. It is commonly used to extract leading or sub-leading objects (e.g. leading jet, first lepton) from per-event collections.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

input_col

Column

Required

output_col

Column

Required

index

int

0

electrons.py#

ElectronMaker#

class analyzer.modules.common.electrons.ElectronMaker

Select electrons based on kinematics, cut-based ID, and isolation.

This analyzer filters electrons in an event according to minimum transverse momentum, maximum pseudorapidity, cut-based ID working point, and maximum mini-isolation.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

input_col

Column

Required

output_col

Column

Required

working_point

CutBasedWPs

Required

min_pt

float

10

max_abs_eta

float

2.4

max_mini_iso

float

0.1

event_level_corrections.py#

GoldenLumi#

class analyzer.modules.common.event_level_corrections.GoldenLumi

Apply a golden JSON luminosity selection for data events.

This analyzer filters events to only include those that are within certified good luminosity sections for the given data-taking era.

Configuration Variables#

Name

Type

Default

selection_name

str

'golden_lumi'

should_run

MetadataExpr

Factory

L1PrefiringSF#

class analyzer.modules.common.event_level_corrections.L1PrefiringSF

Apply L1 prefiring scale factors to Monte Carlo events.

This analyzer retrieves the L1 prefiring weight and adds it to a named weight column, optionally applying systematic variations.

Configuration Variables#

Name

Type

Default

weight_name

str

'l1_prefiring'

should_run

MetadataExpr

Factory

NoiseFilter#

class analyzer.modules.common.event_level_corrections.NoiseFilter

Apply standard noise filters to data events.

This analyzer combines multiple event-level noise flags and produces a single selection column indicating events that pass all required noise filters.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

selection_name

str

'noise_filters'

PileupSF#

class analyzer.modules.common.event_level_corrections.PileupSF

Apply pileup scale factors to Monte Carlo events.

This analyzer evaluates the pileup weight based on the number of true interactions in the event and applies systematic variations if requested.

Configuration Variables#

Name

Type

Default

weight_name

str

'pileup_sf'

should_run

MetadataExpr

Factory

PosNegGenWeight#

class analyzer.modules.common.event_level_corrections.PosNegGenWeight

Abstract base class for all analyzer modules. Subclasses must implement the inputs and run methods.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr

Factory

weight_name

str

'pos_neg_weight'

gen_matching.py#

VectorMatching#

class analyzer.modules.common.gen_matching.VectorMatching

Abstract base class for all analyzer modules. Subclasses must implement the inputs and run methods.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

vectors_one_col

Column

Required

vectors_two_col

Column

Required

output_col

Column

Required

max_dpt

float | None

None

histogram_builder.py#

HistogramBuilder#

class analyzer.modules.common.histogram_builder.HistogramBuilder

Abstract base class for pure result modules. Subclasses must implement the outputs and run methods.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

product_name

str

Required

columns

list

Required

axes

list

Required

storage

str

'weight'

mask_col

Column | None

None

SimpleHistogram#

class analyzer.modules.common.histogram_builder.SimpleHistogram

Abstract base class for all analyzer modules. Subclasses must implement the inputs and run methods.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

hist_name

str

Required

input_cols

list

Required

axes

list

Required

replace_none

float | None

None

mask_cols

list[Column] | None

None

hlt_selection.py#

ComplexHLT#

class analyzer.modules.common.hlt_selection.ComplexHLT

Analyzer module applying complex HLT-based selections with dataset-dependent trigger logic.

This module evaluates High-Level Trigger (HLT) decisions using a configurable set of trigger and veto definitions. The configuration is selected dynamically based on the dataset name using regular-expression pattern matching.

For a matched configuration:
  • All configured trigger paths are OR-combined to form the pass condition.

  • All configured veto paths are OR-combined to form the veto condition.

  • The final selection is defined as:

    pass_trigger AND (NOT veto_trigger)
    
Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

trigger_config

list

Required

selection_name

str

'PassHLT'

SaveHLT#

class analyzer.modules.common.hlt_selection.SaveHLT

Save HLT triggers to the output columns.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

triggers

list

Required

save_name

str

'SavedHLT'

SimpleHLT#

class analyzer.modules.common.hlt_selection.SimpleHLT

Select events based on HLT triggers.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

triggers

list

Required

selection_name

str

'PassHLT'

jets.py#

FilterNear#

class analyzer.modules.common.jets.FilterNear

Filter objects based on proximity to another collection.

This analyzer removes entries from a target collection that are within a specified angular distance ($Delta R$) of objects in a second collection. Objects in the target collection are kept only if no nearby object is found within the given distance threshold. Proximity is determined using the nearest method on the target collection.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

target_col

Column

Required

near_col

Column

Required

output_col

Column

Required

max_dr

float

Required

HT#

class analyzer.modules.common.jets.HT

Compute the scalar sum of jet transverse momenta (H_T).

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

input_col

Column

Required

output_col

Column

Factory

JetComboHistograms#

class analyzer.modules.common.jets.JetComboHistograms

Build composite objects from specified combinations of jets (by index) and produces histograms of their invariant mass and transverse momentum. Each combination is treated independently, and histograms are filled only for events where all required jets are present.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

prefix

str

Required

input_col

Column

Required

jet_combos

list

Required

mass_axis

RegularAxis

Factory

JetEtaPhiVeto#

class analyzer.modules.common.jets.JetEtaPhiVeto

Event-level veto based on jet ($eta$, $phi$) regions.

This analyzer defines an event-level selection that vetoes events containing jets within a specified rectangular region in (η, φ) space. The veto can optionally be restricted to a specific run range.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

input_col

Column

Required

phi_range

tuple

Required

eta_range

tuple

Required

run_range

tuple[float, float] | None

None

selection_name

str

'jet_eta_phi_veto'

JetFilter#

class analyzer.modules.common.jets.JetFilter

This analyzer filters an input jet collection according to transverse momentum and pseudorapidity requirements, with optional jet ID and pileup ID selections. The resulting filtered jet collection is written to a new output column.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

input_col

Column

Required

output_col

Column

Required

min_pt

float

30.0

max_abs_eta

float

2.4

include_pu_id

bool

False

include_jet_id

bool

False

JetResolutionCorrections#

class analyzer.modules.common.jets.JetResolutionCorrections

This analyzer adjusts jet transverse momentum (pT) and mass to account for detector resolution effects in simulated (MC) events. Smearing is applied based on the per-jet resolution, matching to generated jets, and optional systematic variations.

Configuration Variables#

Name

Type

Default

input_col

Column

Required

genjet_col

Column

Required

output_col

Column

Required

jet_type

str

'AK4'

use_regrouped

bool

True

should_run

MetadataExpr

Factory

JetScaleCorrections#

class analyzer.modules.common.jets.JetScaleCorrections

This analyzer adjusts jet transverse momentum (pT) and mass according to jet energy corrections (JEC) derived from calibration campaigns. Both nominal (“central”) and systematic variations (up/down JES) are supported. Corrections are applied per jet based on its kinematics and dataset metadata.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

input_col

Column

Required

output_col

Column

Required

jet_type

str

'AK4'

use_regrouped

bool

True

PileupJetIdSF#

class analyzer.modules.common.jets.PileupJetIdSF

Compute pileup jet ID scale factors for Monte Carlo events.

This analyzer calculates per-event weights corresponding to the pileup jet ID efficiency correction. Only jets with pT < 50 GeV and matched to a generator-level jet are considered.

Configuration Variables#

Name

Type

Default

input_col

Column

Required

working_point

str

Required

weight_name

str

'puid_sf'

should_run

MetadataExpr

Factory

TopVecHistograms#

class analyzer.modules.common.jets.TopVecHistograms

Produce kinematic histograms for the leading objects in a collection.

This analyzer creates histograms of $p_T$,$eta$, and $phi$ for the first N objects in a vector-like collection (e.g. jets), where N is configurable. Histograms are produced only for events where the corresponding object exists.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

prefix

str

Required

input_col

Column

Required

max_idx

int

Required

VetoMap#

class analyzer.modules.common.jets.VetoMap

Event-level veto selection based on detector veto maps. Events are excluded if any jet passing a loose selection lies withing a vetoed $eta$-$phi$ region.

Configuration Variables#

Name

Type

Default

input_col

Column

Required

selection_name

str

'jet_veto_map'

should_run

MetadataExpr

Factory

veto_type

str

'jetvetomap'

VetoMapFilter#

class analyzer.modules.common.jets.VetoMapFilter

Apply a detector veto map to an input jet collection in order to remove jets falling into problematic detector regions. The veto map is evaluated as a function of jet ($eta$, $phi$) coordinates.

Configuration Variables#

Name

Type

Default

input_col

Column

Required

output_col

Column

Required

should_run

MetadataExpr

Factory

veto_type

str

'jetvetomap'

load_columns.py#

LoadColumns#

class analyzer.modules.common.load_columns.LoadColumns

Abstract base class for event source modules. Subclasses must implement the outputs and run methods.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

muons.py#

MuonMaker#

class analyzer.modules.common.muons.MuonMaker

Select muons based on kinematics, ID, and isolation criteria.

This analyzer filters muons in an event according to minimum transverse momentum, maximum pseudorapidity, a chosen ID working point, and optional isolation requirements.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

input_col

Column

Required

output_col

Column

Required

id_working_point

IdWps

Required

min_pt

float

10

max_abs_eta

float

2.4

max_mini_iso

float

0.1

iso_working_point

analyzer.modules.common.muons.IsoWps | None

None

save_arrays.py#

SaveCols#

class analyzer.modules.common.save_arrays.SaveCols

Abstract base class for all analyzer modules. Subclasses must implement the inputs and run methods.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

save_name

str

Required

to_save

dict

Required

remap_hlt_prefix

bool

True

selection.py#

NObjFilter#

class analyzer.modules.common.selection.NObjFilter

Select events based on the number of objects in a collection.

This analyzer filters events according to the number of objects

in a given column, requiring the count to be within specified limits.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

selection_name

str

Required

input_col

Column

Required

min_count

int | None

None

max_count

int | None

None

SelectOnColumns#

class analyzer.modules.common.selection.SelectOnColumns

Apply a selection based on one or more boolean selection columns and optionally save the cutflow.

This analyzer performs an AND of the specified selection columns (or all default selections if none are provided) and filters the events accordingly. Optionally, it stores a cutflow summary for monitoring.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

sel_name

str

Required

selection_names

list[str] | None

None

save_cutflow

bool

True

skimming.py#

SaveEvents#

class analyzer.modules.common.skimming.SaveEvents

Analyzer module that serializes and persists event-level data to ROOT files.

SaveEvents writes the full event record from the current analysis columns to a ROOT file using uproot. Files are written locally first and then copied to a target destination defined by a configurable output path template.

Each unique input (as defined by getKeyNoParams) is written at most once per process execution.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

prefix

str

Required

output_format

str

'{dataset_name}__{sample_name}__{file_id}__{chunk.event_start}_{chunk.event_stop}.root'

Singlestop Modules#

bnn_trig.py#

MSDCleanerCategory#

class analyzer.modules.singlestop.bnn_trig.MSDCleanerCategory

Abstract base class for all analyzer modules. Subclasses must implement the inputs and run methods.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

MSDCleanerSelection#

class analyzer.modules.singlestop.bnn_trig.MSDCleanerSelection

Abstract base class for all analyzer modules. Subclasses must implement the inputs and run methods.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

selection_name

str

'PassMSDCleaner'

TriggerBNN#

class analyzer.modules.singlestop.bnn_trig.TriggerBNN

Compute trigger efficiency weights using a BNN ensemble.

This analyzer evaluates a Bayesian Neural Network on HT and leading fat jet pt to produce a trigger weight for MC samples.

Configuration Variables#

Name

Type

Default

base_path

str

Required

net_pattern

str

Required

weight_name

str

'trigger_eff'

should_run

MetadataExpr

Factory

TriggerBNNCorrection#

class analyzer.modules.singlestop.bnn_trig.TriggerBNNCorrection

Compute trigger efficiency weights using correctionlib for BNN.

Configuration Variables#

Name

Type

Default

base_path

str

Required

correction_pattern

str

Required

correction_name

str

'trigger_eff'

weight_name

str

'trigger_eff'

should_run

MetadataExpr

Factory

nn_reco.py#

NNMassPlots#

class analyzer.modules.singlestop.nn_reco.NNMassPlots

Create histograms for reconstructed mass variables.

Generates 1D and 2D histograms for the reconstructed top squark and chargino masses, as well as their ratio.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

m3_input

Column

Required

m4_input

Column

Required

prefix

str

Required

NNMassReco#

class analyzer.modules.singlestop.nn_reco.NNMassReco

Reconstruct top quark and neutralino masses using a Neural Network.

This module uses a trained PyTorch model to resolve jet combinatorics and reconstruct the mass of the top quark ($m_{tilde{t}}$) and neutralino ($m_{chi}$).

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

input_col

Column

Required

m3_output

Column

Required

m4_output

Column

Required

model_path

str

Required

scaler_path

str

Required

selections.py#

VecDRSelection#

class analyzer.modules.singlestop.selections.VecDRSelection

Abstract base class for all analyzer modules. Subclasses must implement the inputs and run methods.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

input_col

Column

Required

selection_name

str

Required

min_dr

float | None

None

max_dr

float | None

None

idx_1

int

0

idx_2

int

1

VecPt#

class analyzer.modules.singlestop.selections.VecPt

Abstract base class for all analyzer modules. Subclasses must implement the inputs and run methods.

Configuration Variables#

Name

Type

Default

should_run

MetadataExpr | None

None

selection_name

str

Required

input_col

Column

Required

idx

int

0

min_pt

float | None

None

max_pt

float | None

None