47 def execute(self):
48 _info = self.msg.info
49 _error= self.msg.error
50
51 for evtinfocls in ('xAOD::EventInfo', 'EventInfo'):
52 try:
53 evtinfo = self.sg.retrieve (evtinfocls, self.evt_info)
54 except Exception as e:
55 _info ('could not retrieve %r at [%s]\n caught exception:\n%r', evtinfocls, self.evt_info, e)
56 else:
57 if evtinfo is None:
58 _info ('retrieved \'None\' for %r at [%s]', evtinfocls, self.evt_info)
59 continue
60 break
61 else:
62 _error ("could not retrieve 'EventInfo' or 'xAOD::EventInfo' at [%s]", self.evt_info)
63 return StatusCode.Failure
64
65 if evtinfocls == 'EventInfo':
66 evtid = evtinfo.event_ID()
67 runnbr = evtid.run_number()
68 evtnbr = evtid.event_number()
69 elif evtinfocls == 'xAOD::EventInfo':
70 if not self.is_mc:
71 runnbr = evtinfo.runNumber()
72 else:
73 runnbr = evtinfo.mcChannelNumber()
74 evtnbr = evtinfo.eventNumber()
75
76 self.info['run_number'].append(runnbr)
77 self.info['event_number'].append(evtnbr)
78
79 return StatusCode.Success
80