File indexing completed on 2024-04-06 12:18:52
0001
0002
0003
0004
0005
0006
0007
0008 from __future__ import print_function
0009 import ROOT
0010 import sys
0011 from DataFormats.FWLite import Events, Handle
0012
0013
0014
0015
0016
0017
0018 events = Events (["input.root"])
0019 handle = Handle ("trigger::TriggerFilterObjectWithRefs")
0020
0021
0022 ROOT.gROOT.ProcessLine("std::vector<reco::ElectronRef> electrons;")
0023
0024
0025 TriggerElectron = +82
0026
0027
0028 label = ("hltL1NonIsoHLTNonIsoSingleElectronEt22TighterEleIdOneOEMinusOneOPFilter")
0029
0030 numElectronsSeen = 0
0031 numEventsWithElectron = 0
0032
0033
0034 for event in events:
0035
0036 event.getByLabel (label, handle)
0037
0038 trigobjs = handle.product()
0039
0040 trigobjs.getObjects(TriggerElectron, ROOT.electrons)
0041 print("number of electrons in this event:",len(ROOT.electrons))
0042
0043 bestOneOverEminusOneOverP = None
0044
0045 numElectronsSeen += len(ROOT.electrons)
0046
0047 if len(ROOT.electrons) > 0:
0048 numEventsWithElectron += 1
0049 else:
0050 continue
0051
0052 for eleindex, electron in enumerate(ROOT.electrons):
0053
0054 print("electron",eleindex)
0055
0056
0057 tracks = electron.track().product()
0058
0059 superClusters = electron.superCluster().product()
0060
0061 print(" number of tracks:",len(tracks))
0062 print(" number of superclusters:",len(superClusters))
0063
0064 for track in tracks:
0065 momentum = track.p()
0066
0067 for superCluster in superClusters:
0068 energy = superCluster.energy()
0069
0070 thisOneOverEminusOneOverP = abs(1/energy - 1/momentum)
0071
0072 print(" momentum=",momentum,"energy=",energy,"E/P=",energy/momentum,"1/E-1/p=",thisOneOverEminusOneOverP)
0073
0074
0075 if bestOneOverEminusOneOverP == None or thisOneOverEminusOneOverP < bestOneOverEminusOneOverP:
0076 bestOneOverEminusOneOverP = thisOneOverEminusOneOverP
0077
0078
0079
0080
0081
0082
0083
0084 print("best value:",bestOneOverEminusOneOverP)
0085
0086
0087
0088 print("total number of electrons:",numElectronsSeen)
0089 print("events with at least one electron:",numEventsWithElectron)