Skip to content

xAODRootAccess Update, master branch (2020.03.24.)

Unfortunately this will be particularly painful to review for anyone who jumps into doing that... 😦

In this MR I tried to pull in all of the updates from 21.2 that were made to the xAODRootAccess package over the last O(2) years. While trying not to undo any of the improvements that @ssnyder made in the package in the master branch in the same period...

A couple of highlights from the update:

  • With this update xAOD::TEvent no longer makes the first event of a file available right away when xAOD::TEvent::readFrom(...) is called. This is what @krumnack found in !31327 (merged) as well. 😉
  • Unfortunately the test xAOD files used in 21.2, which I pulled into master with !31376 (merged) are not fully functional in master, in "standalone builds" after all. 😦
    • I had to stop writing xAOD::Electron and xAOD::EventInfo objects as part of the unit tests. As the standalone code really doesn't like the schema evolution that happened in those classes. It can still read those types (for these tests at least), but if it tries to both read and write them, all hell breaks lose. 😦
  • I also had to import a change to AthContainers in this MR. As in 21.2, I had to rename AthContainers's IProxyDict typedef in standalone mode.
  • I chose to remove all the unit test reference files from xAODRootAccess. Those are just a lot more trouble to use between the offline and standalone builds than they are worth... (The unit tests of the package rely on tests in the C++ code, not on the printouts from the code.)

To deal with issues in downstream packages, I had to do the following:

  • The TauDQA package was a hot mess. 😦 I decided to do a bit more than the bare minimum to get it into shape. Still, the C++ code of the package itself could still be improved a lot...
  • Fixed the CMake configuration of HFORTools, and tried to make its unit test work in standalone mode as well. Though I didn't actually test it in standalone mode. (The package is not part of AnalysisBase yet...)
  • Removed the unnecessary xAODRootAccess dependencies from VP1AODSystems. Plus made the package explicitly use that library when building VP1Light.

As I started, this will be painful to review. 😦 (It took me the better part of today to put this together...) Good luck!

Edited by Attila Krasznahorkay

Merge request reports