PerfMonComps: Instead of Incidents PerfMonSvc now triggers event beginning/ending via AthMasterSeq
In master BeginEvent
and EndEvent
incidents are triggered by IncidentProcAlg1
and IncidentProcAlg2
, respectively. These are standard algorithms that execute within AthBeginSeq
and AthEndSeq
, respectively. While this is a good approximation, it's not strictly correct in encapsulating the event boundaries, especially for EndEvent
because AthOutSeq
(which is currently the last sequence as far as I can see) actually executes after AthEndSeq
. It also messes up the internal accounting of PerfMonSvc
.
With this MR PerfMonSvc
is no longer a listener of BeginEvent
and EndEvent
incidents. Instead we use AthMasterSeq
to figure out when the event execution starts and ends. Although I'm not a huge fan of hard-coded component name, I'm pretty sure AthMasterSeq
is almost always guaranteed to be there (apart from maybe some esoteric jobs), so we should be fairly safe.
Note that this service does not run in MT mode. So, we're not really worried about thread safety here.