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 whenxAOD::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
andxAOD::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 had to stop writing
- I also had to import a change to
AthContainers
in this MR. As in 21.2, I had to renameAthContainers
'sIProxyDict
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 ofAnalysisBase
yet...) - Removed the unnecessary
xAODRootAccess
dependencies fromVP1AODSystems
. Plus made the package explicitly use that library when buildingVP1Light
.
As I started, this will be painful to review.
Edited by Attila Krasznahorkay