Skip to content

Validated Runs

Data recorded by CMS go through a validation process and are certified as good for physics analysis if all subdetectors, trigger, lumi and physics objects (tracking, electron, muon, photon, jet and MET) show the expected performance.

Lists of validated runs and luminosity sections (the smallest unit of data taking, 23 seconds) are provided on the CERN open data portal.

They are of format

{
    "<run number>":
     [
       [ 
           <first certified luminosity section in a range>, 
           <last certified luminosity section in a range>
       ],
       ..

for example:

{"190645": [[10, 110]], "190646": [[1, 111]], "190659": [[33, 167]], "190679": [[1, 55]],
 "190688": [[69, 249]], "190702": [[51, 53], [55, 122], [124, 169]], "190703": [[1, 252]],
 "190704": [[1, 3]], ...

Each CMS open data record has a link to the corresponding list of validated runs, and it must be applied to all analyses. Most code examples expect that this list is downloaded to the working directory. In a CMSSW job, the filtering based on this list is applied by adding the following lines in the configuration file of the job

   import FWCore.ParameterSet.Config as cms
   import FWCore.PythonUtilities.LumiList as LumiList
   goodJSON = '<file name here>'
   myLumis = LumiList.LumiList(filename = goodJSON).getCMSSWString().split(',') 

and by adding these two lines after the process.source input file definition:

   process.source.lumisToProcess = cms.untracked.VLuminosityBlockRange()
   process.source.lumisToProcess.extend(myLumis)

This list should also be used as an input to the luminosity calculation.