cms-l1t-offline / cms-l1t-analysis

0 stars 21 forks source link

Add JSON filter for (run, lumi) #105

Closed kreczko closed 6 years ago

kreczko commented 6 years ago

@bundocka This is what I had in mind

kreczko commented 6 years ago

Seems like

import urllib2
import json

cms_json_file='https://cms-service-dqm.web.cern.ch/cms-service-dqm/CAF/certification/Collisions16/13TeV/Cert_271036-273730_13TeV_PromptReco_Collisions16_JSON.txt'
response = urllib2.urlopen(cms_json_file)
data = json.load(response)

does the job for the 2nd part

kreczko commented 6 years ago

First implementation provided by @bundocka in #106. @benkrikler suggests:

def __init__(self, run_lumis_dict):
   self.valid_lumi_sections = set()
   for run, lumi_ranges in run_lumis_dict:
      for lumi_first, lumi_last in lumi_ranges:
          for lumi in range(lumi_first, lumi_last):
              self.valid_lumi_sections.insert( (run, lumi) )

def is_valid_run_lumi(self, run, lumi):
    return (run, lumi) in self.valid_lumi_sections