Skip to content
Matthias Schroeder edited this page Nov 5, 2021 · 35 revisions

UHH2 Analysis Framework

The UHH2 analysis framework is the successor of the UHHAnalysis Framework, meant to be used for 13 TeV data with CMSSW. Like UHHAnalysis, it also uses SFrame to process data locally; however, it is not as tightly coupled to SFrame and in fact also allows to run the same code within CMSSW directly.

Stable branches exist for the production & analysis of ntuples from various versions of MiniAOD samples. The ntuple format is documented on the page NtupleFormat. The NtupleFormat page also contains a list of known limitations/issues of the ntuple data contents.

In the menu on the right you can find wiki pages for installation/compiling and ntuple production summaries for various branches, each of which is designed to target particular version(s) of MiniAOD datasets.

❗ For new analyses not using ultra-legacy, we recommend to use the RunII_102X_v2 branch.

For analyses using ultra-legacy, use the RunII_106X_v2 branch.

A history of all branches/tags:

  • next-ntuple-format: based on Phys14 MiniAOD

  • RunII_25ns_v1: based on MiniAODv1 in CMSSW_74X

  • RunII_25ns_v2: based on MiniAODv2 in CMSSW_74X

  • RunII_50ns: based on MiniAODv1 in CMSSW_74X (only for 50ns bunch crossing runs)

  • RunII_76X_v1: based on MiniAODv2 in CMSSW_76X

  • RunII_80X_v1: based on MiniAODv1 in CMSSW_80X

  • RunII_80X_v2: based on MiniAODv2 in CMSSW_80X

  • RunII_80X_v3: based on MiniAODv2, Moriond17 re-reco, in CMSSW_80X

  • RunII_80X_v4: based on MiniAODv2, Moriond17 re-reco, in CMSSW_80X. JEC specific branch?

  • RunII_80X_v5: based on MiniAODv2, Moriond17 re-reco, in CMSSW_80X. Adds in HOTVR & XCone with CHS & PUPPI, move to ungroomed AK8 TopJets.

  • RunII_94X_v1: for 2017 MiniAODv1 in 94X.

  • RunII_94X_v2: like 94X_v1, but adds in L1 trigger objects for prefiring studies

  • RunII_94X_v3: for 2017 MiniAODv2. Update MET recipe for EE2017 fix, and V2 of Electron IDs.

  • RunII_101_v1: for 2018 data, Runs A-C, taken with CMSSW_10_1_X. Intermediate branch, not to be used for proper analysis

  • RunII_102X_v1: first attempt at "legacy" release that can handle 201[6|7|8] data & MC, with all their relevant conditions, IDs, etc

  • RunII_102X_v2: update of the 102X_v1 branch, adding in new DeepAK8 training to handle 2016v3/17/18 samples.

  • RunII_106X_v1: building upon 102X, development branch to handle Ultra-Legacy ("UL") datasets

  • RunII_106X_v2: for UL ntuple production and analyses, using MiniAODv2 UL samples (building upon 106X_v1)

❗️ Please look through the links in the sidebar

  • there are pages specific to each release, including setup instructions, ntuple branch info, known issues
  • there are pages under "Analysis info" that have info when creating your analysis
  • there are paged under "Developer tips" that are more useful if you are modifying UHH2 or the Ntuple content/writer

To get a first overview of the structure of UHH2, read Code Overview. This page also explains how to start a new analysis. Some more specific documentation is on the Event Class and the Metadata pages.

See the Running page for a step-by-step introduction how to actually run over data; it will use the example code.

One of the goals of UHH2 was to be able to run the same code on standalone ntuples and within CMSSW. While this goal was achieved, some limitations and differences exist, see CMSSW vs. SFrame.

How to contribute code to the UHH2/UHH2 repository is described in Committing Code. Please stick to the Code Conventions for new code.

Finally, a separate page discusses Performance -- both in terms of data size and runtime -- which can help estimating the time required for certain workflows.

Clone this wiki locally