Skip to content

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.

Merge request reports