This web page collects documentation and ideas concerning publicly accessible information on the nanoAOD CMS event format for Run 2 and information relevant for backporting it to Run 1 in the form of a nanoAOD-like format.

General idea of nanoAOD in CMS

as presented at CHEP Sofia in 2018.

nanoAOD workbook

https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookNanoAOD

contains general description, and links to the details of all the variables:

  • nanoAOD is a flat ntuple format readable with plain ROOT
  • from CMSSW 9_4_X (2017 data+MC) a version is included in CMSSW
  • nanoAOD production is handled centrally, but can be produced via CRAB, and can also be run over (+extensions) via CRAB
  • users can easily extend nanoAOD for their specific study making a private production when needed (for samples that are not too large/special needs) or can ask for new features inclusion in the central format (suggestion when need to run on multi-billion events)
  • a nanoAOD file contains a main TTree named Events and some additional TTrees for run, lumi and metadata
  • references across objects are implemented via branches with idx suffix. set to -1 if null. Can point outside boundaries->check
  • HLT bits are automatically generated according to the HLT bits in the input file. When files are merged they are merged and the nonmatching bits zero-filled.
  • object systematic uncertainties are saved as per-event information.
  • linking to gen and trigger objects is based on common PF constituents, not on Delta R.
  • jets are corrected. Tools for further corrections/smearing are provided.
  • post-processing is based on python.

  • details of variable descriptions are available (for 9.4.X) in

https://cms-nanoaod-integration.web.cern.ch/integration/master/mc94X_doc.html

  • the list of kept generator particles is given in

https://github.com/cms-sw/cmssw/blob/master/PhysicsTools/NanoAOD/python/genparticles_cff.py#L8

e.g. all c and b hadrons, as well as all leptons with at most one mother back in the history are kept.

  • an example how to create a structure of global variables can be found in

https://github.com/cms-nanoAOD/cmssw/blob/master/PhysicsTools/NanoAOD/python/globals_cff.py

nanoAOD-like ntuple

nanoAOD is currently only available for CMS pp data at 13 TeV from 2016 onwards. It is not available for any of the Run 1 datasets (pp, pPb, PbPb @ 0.9, 2.76, 5, 7, 8 TeV), nor for the 2015 datasets.

A nanoAOD-like ntuple is an ntuple that has a large (ideally full) overlap in format and content with nanoAOD, potentially extended by additional information. In an ongoing project, the creation of such a format for datasets for which nanoAOD does not exist, in particular for Run 1, is currently being initiated. For a dedicated status report, see (internal) contribution to Budapest CMS week DPOA parallel session.

As a starting point, for Run 1 muons, all the technical details documented in the Run 1 Muon Id software guide are currently being implemented, in a way consistent with those in the Run 2 Muon Id software guide, in a format fully consistent with the Run 2 nanoAOD. Currently many of the distributions of the public dimuon Open Data validation example can already be reproduced from this format.

further relevant info snippets

For an example on how to map vertices and tracks in AOD and miniAOD, and how to access the PF list, see

https://github.com/cms-analysis/flashgg/blob/master/MicroAOD/plugins/VertexMapValidator.cc

a description/documentation of the basic track (helix) parameters can be found in

https://github.com/cms-sw/cmssw/blob/master/DataFormats/TrackReco/interface/TrackBase.h

a description of the basic vertex parameters can be found in

https://github.com/cms-sw/cmssw/blob/master/DataFormats/VertexReco/interface/Vertex.h

a description of transient vertices with their tracks can be found in

https://github.com/cms-sw/cmssw/blob/master/RecoVertex/VertexPrimitives/interface/TransientVertex.h

nanoAOD-like ntuple, educational version from Open Data

A version of a nanoAOD-like ntuple with reduced and simplified content for educational purposes, based on the CMS Open Data, is available as a semi-private Root tutorial project of Stefan Wunsch based on code in

https://github.com/stwunsch/AOD2NanoAOD

with a usage example on

https://root.cern/doc/master/df102__NanoAODDimuonAnalysis_8C.html

some general flat root ntuple issues

  • a description of the root tree structure and the allowed variable types can be found in

https://root.cern.ch/doc/master/classTTree.html

-- AchimGeiser - 2018-08-01

Edit | Attach | Watch | Print version | History: r6 < r5 < r4 < r3 < r2 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r6 - 2019-02-07 - AchimGeiser
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback