1 | from BaseControlPlots import BaseControlPlots
|
---|
2 |
|
---|
3 | # Requirements:
|
---|
4 | # event.muons
|
---|
5 | # event.electrons
|
---|
6 |
|
---|
7 | class LeptonControlPlots(BaseControlPlots):
|
---|
8 | """A class to create control plots for leptons"""
|
---|
9 |
|
---|
10 | def __init__(self, dir=None, dataset=None, mode="plots"):
|
---|
11 | # create output file if needed. If no file is given, it means it is delegated
|
---|
12 | BaseControlPlots.__init__(self, dir=dir, purpose="leptons", dataset=dataset, mode=mode)
|
---|
13 |
|
---|
14 | def beginJob(self):
|
---|
15 | # declare histograms
|
---|
16 | self.add("ElectronPt","Electron Pt",100,0,200)
|
---|
17 | self.add("MuonPt","Muon Pt",100,0,200)
|
---|
18 | self.add("ElectronEta","Electron Eta",50,-2.5,2.5)
|
---|
19 | self.add("MuonEta","Muon Eta",50,-2.5,2.5)
|
---|
20 | self.add("NMuons","Muon multiplicity",10,0,10)
|
---|
21 | self.add("NElectrons","Electron multiplicity",10,0,10)
|
---|
22 |
|
---|
23 | def process(self, event):
|
---|
24 | #get information
|
---|
25 | result = { }
|
---|
26 | result["ElectronPt"] = [ ]
|
---|
27 | result["MuonPt"] = [ ]
|
---|
28 | result["ElectronEta"] = [ ]
|
---|
29 | result["MuonEta"] = [ ]
|
---|
30 | for mu in event.muons:
|
---|
31 | result["MuonPt"].append(mu.PT)
|
---|
32 | result["MuonEta"].append(mu.Eta)
|
---|
33 | for ele in event.electrons:
|
---|
34 | result["ElectronPt"].append(ele.PT)
|
---|
35 | result["ElectronEta"].append(ele.Eta)
|
---|
36 | result["NMuons"] = event.muons.GetEntries()
|
---|
37 | result["NElectrons"] = event.electrons.GetEntries()
|
---|
38 | return result
|
---|
39 |
|
---|
40 | if __name__=="__main__":
|
---|
41 | import sys
|
---|
42 | from DelphesAnalysis.BaseControlPlots import runTest
|
---|
43 | runTest(sys.argv[1], LeptonControlPlots())
|
---|
44 |
|
---|