Skip to content

xAODCaloRings Cleanup, master branch (2020.06.02.)

During the recent xAOD dictionary updates I found that xAODCaloRings was really not in a shape that I would've liked. So I now tried to do something about that...

The "triggering issue" for me was that the xAODCaloRings library is currently linking against AsgTools.(!!!) Which means that in Athena we must load a sizable fraction of our framework code just to read in these types of objects from an xAOD file. (Even in AnalysisBase the situation is far from great with this setup.) So I removed that. And that sort of opened Pandora's Box...

  • I had to remove all the code from xAODCaloRings that would've interacted with MsgStream or with classes from StoreGate. (The latter types were not used anywhere in our repository, so I just removed them completely.)
    • To account for this, I had to update a couple of packages that used this functionality of the EDM classes.
  • I made the classes stop referring to each other with "versioned names". (Would've made us do extra work during a schema evolution of the code.)
  • Removed the custom forward declaration of DataVector<T>, and implemented the forward declaration headers like they are in all the other xAOD packages that use such things.
    • Note that one client that I touched, which used one of the forward declaration headers, was actually using it incorrectly. Since that code does rely on types defined as part of the concrete class. So it was only building correctly because it was only ever seen by the compiler in contexts where the concrete class was already included.
  • Removed the PrintHelperFcns.h header, as its code was largely unnecessary. The one necessary operator was moved to the source file that needed it.
  • Updated xAOD::getCaloRingsReader() to return a const reference instead of a non-const pointer. Since the UI of the function was very misleading like this.
    • Updated all clients that I could find to use the new interface.
  • Added CLID generation for the xAODCaloRings library.
    • This is something that I intend to add for all the other xAOD libraries as well. It's done since forever for a few libraries/packages, but we should harmonise this. But I'll describe that in more detail once I open the MR for that.
  • Removed some very outdated/misleading Doxygen documentation.

Note that I did not do a full build locally. I was trying to find all the clients of the modified code with git grep. So it's not at all impossible that some issues may come up during the review.

Merge request reports