Framework workflow - jniedzie/SVJanalysis_wiki GitHub Wiki

Overview

Programming language, packages and environments

To install the framework, follow instructions at Installation.
If you haven't setup your git account, first follow instructions at Setup your git account.

The repository is based on Python 3. It was developed using Python 3.8.
Most of the analysis stages are performed using awkward-array (aka ak), and packages based on ak, such as uproot and coffea.
The Machine Learning (ML) framework included in this repo is based on tensorflow ans PyTorch.

To run the different workflow stages to prepare PFNanoAODSuper (see below) and running the ML framework, we recommend creating a Python virtual environment. Instructions can be found at Creating-SVJ-virtual-environment.

Preparation of analysis files

This framework produces/converts, makes pre-selection, adds new variables to ROOT NTuples in the PFNanoAOD_106X_v02 format.

Once you have PFNanoAOD files, there are two entry points:

  • pre-selection: to select events and objects
  • adding new branches: to add new information, e.g. jet substructure

At these entry points, the following new information must be added to the files:

  • cross-section
  • initial cut flow table

See the usage of the different scripts (link to the dedicated pages below and in the sidebar).

By a succession of pre-selection and branch production, the user produces his/her NTuples for analysis.

Analysis

PFNanoAOD files can be then read to:

  • produce 1D and 2D histograms
  • make stack plots
  • train models defined in the ML framework.

Batch submission

Any code can be run interactively or jobs can be sent using SLURM from the PSI T3 t3ui02.psi.ch or HTCondor from lxplus.

In any directory, you will find a run*.sh which is an example to run the code interactively. It can be used to process dataset with one file, rather than sending jobs.

Job can be submitted using the job submitter (more info in the link).


Workflow

Obtaining PFNanoAOD

Pre-selection

Event and object pre-selection is done in preSelection.

Adding new variables

New variables, such as ptD, EFPs, MT , can be added to the ROOT file using the branchesProducer.

Making plots

Histogram production

1D and 2D histograms can be produced using the 1D and 2D histogram producers.

Drawing plots

Plots can be made following instructions in Plotting tools.

⚠️ **GitHub.com Fallback** ⚠️