1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
#! /usr/bin/env python3
from builtins import range
import ROOT
import sys
from DataFormats.FWLite import Events, Handle
# Make VarParsing object
# https://twiki.cern.ch/twiki/bin/view/CMS/SWGuideAboutPythonConfigFile#VarParsing_Example
from FWCore.ParameterSet.VarParsing import VarParsing
options = VarParsing ('python')
options.parseArguments()
# Events takes either
# - single file name
# - list of file names
# - VarParsing options
# use Varparsing object
events = Events (options)
# use single file name
#events = Events ("root://cmsxrootd.fnal.gov///store/mc/RunIISummer20UL17MiniAODv2/DYJetsToMuMu_M-50_TuneCP5_13TeV-madgraphMLM-pythia8/MINIAODSIM/PUForMUOVal_106X_mc2017_realistic_v9-v2/100000/002FD620-0EF8-F044-9D21-7303C48FF2A0.root")
# create handle outside of loop
handle = Handle ("std::vector<pat::Muon>")
# for now, label is just a tuple of strings that is initialized just
# like and edm::InputTag
label = ("slimmedMuons")
# Create histograms, etc.
ROOT.gROOT.SetBatch() # don't pop up canvases
ROOT.gROOT.SetStyle('Plain') # white background
zmassHist = ROOT.TH1F ("zmass", "Z Candidate Mass", 50, 20, 220)
# loop over events
for event in events:
# use getByLabel, just like in cmsRun
event.getByLabel (label, handle)
# get the product
muons = handle.product()
# use muons to make Z peak
numMuons = len (muons)
if numMuons < 2: continue
for outer in range (numMuons - 1):
outerMuon = muons[outer]
for inner in range (outer + 1, numMuons):
innerMuon = muons[inner]
if outerMuon.charge() * innerMuon.charge() >= 0:
continue
inner4v = ROOT.TLorentzVector (innerMuon.px(), innerMuon.py(),
innerMuon.pz(), innerMuon.energy())
outer4v = ROOT.TLorentzVector (outerMuon.px(), outerMuon.py(),
outerMuon.pz(), outerMuon.energy())
zmassHist.Fill( (inner4v + outer4v).M() )
# make a canvas, draw, and save it
c1 = ROOT.TCanvas()
zmassHist.Draw()
c1.Print ("zmass_py.png")
|