File indexing completed on 2024-04-06 12:23:46
0001
0002
0003
0004
0005 from PhysicsTools.NanoAODTools.postprocessing.framework.eventloop import Module
0006 from PhysicsTools.NanoAODTools.postprocessing.framework.datamodel import Collection
0007 from PhysicsTools.NanoAODTools.postprocessing.framework.postprocessor import PostProcessor
0008 from importlib import import_module
0009 import os
0010 import sys
0011 import ROOT
0012 ROOT.PyConfig.IgnoreCommandLineOptions = True
0013
0014
0015 class ExampleAnalysis(Module):
0016 def __init__(self):
0017 self.writeHistFile = True
0018
0019 def beginJob(self, histFile=None, histDirName=None):
0020 Module.beginJob(self, histFile, histDirName)
0021
0022 self.h_vpt = ROOT.TH1F('sumpt', 'sumpt', 100, 0, 1000)
0023 self.addObject(self.h_vpt)
0024
0025 def analyze(self, event):
0026 electrons = Collection(event, "Electron")
0027 muons = Collection(event, "Muon")
0028 jets = Collection(event, "Jet")
0029 eventSum = ROOT.TLorentzVector()
0030
0031
0032 if len(muons) >= 2:
0033 for lep in muons:
0034 eventSum += lep.p4()
0035 for lep in electrons:
0036 eventSum += lep.p4()
0037 for j in jets:
0038 eventSum += j.p4()
0039 self.h_vpt.Fill(eventSum.Pt())
0040
0041 return True
0042
0043
0044 preselection = "Jet_pt[0] > 250"
0045 files = ["root://eoscms.cern.ch//eos/cms/store/user/cmsbuild/store/group/cat/datasets/NANOAODSIM/RunIISummer20UL18NanoAODv9-106X_upgrade2018_realistic_v16_L1v1-v2/DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8/7B930101-EB91-4F4E-9B90-0861460DBD94.root"]
0046
0047 p = PostProcessor(".",
0048 files,
0049 cut=preselection,
0050 branchsel=None,
0051 modules=[ExampleAnalysis()],
0052 noOut=True,
0053 histFileName="histOut.root",
0054 histDirName="plots",
0055 )
0056 p.run()