Skip to content

FPGATrackSim: make all objects not inherit from TObject, use reflex dict

During !74086 (merged) we accidentally caused some wider buildsystem problems on the CI worker nodes, triggering ATLINFR-5511, because FPGATrackSim uses a "CINT dictionary" (i.e. atlas_add_root_dictionary) for all of its objects, and those dictionaries don't get cleaned up properly unless a "full build" is performed in the CI.

It seems that this is because these objects are inheriting from TObject. It's not obvious they need to, so this commit goes through and changes them to not inherit from TObject and creates a new "reflex" dictionary (via atlas_add_dictionary) for them. The old CINT/ROOT dictionary has been removed from the CMake configuration.

Unfortunately it seems that we will need to remake wrapper files-- loading FPGATrackSimEventInputHeader out of the old wrappers doesn't appear to work after changing this class to not inherit from TObject, it just causes a segfault.

We also get a bunch of these warnings... which I'm not sure about but I believe this is just because the older CINT dictionary still exists on cvmfs, even if the package is being loaded locally. So hopefully they are harmless.

Warning in <TInterpreter::ReadRootmapFile>: While processing /cvmfs/atlas-nightlies.cern.ch/repo/sw/main_Athena_x86_64-el9-gcc13-opt/2024-09-13T2101/Athena/25.0.17/InstallArea/x86_64-el9-gcc13-opt/lib/Athena.rootmap, class FPGATrackSimTruthTrack was found to be associated to libFPGATrackSimObjectsLib.so although it is already associated to libFPGATrackSimObjectsDict.so

Tagging @jahreda and @tbold.

Merge request reports

Loading