Skip to content

xAOD::Event Fix, main branch (2025.10.24.)

Turned xAOD::Event::m_listeners (back) into an std::vector.

As it turns out, using std::set was not a good idea after all. As it's important for the code to keep the order of the tools that register themselves for receiving incidents. As some of the tools can depend on each other, so initializing them in the wrong order can result in errors.

Since the order in which tools would get incidents was unreliable, I spent quite some time with trying to understand why some of the unit tests of !83692 would sometimes work, and sometimes not. ☹️ (Un-reproducible failures are not fun...)

The reason that nobody noticed is that in main only xAOD::Experimental::REvent is using xAOD::Event at the moment. And we don't have any complicated analysis jobs set up on top of REvent just yet.

Pinging @schaffer for info.

Merge request reports

Loading