File providing the different SG_BASE macros. More...
#include "SGTools/CLASS_DEF.h"
Go to the source code of this file.
File providing the different SG_BASE macros.
File providing the CLASS_DEF macro.
In Athena the inheritance relationships of the EDM classes are declared to StoreGate using some simple macros that are used like:
include "xAODCore/BaseInfo.h"
SG_BASE( xAOD::HighLevelClass, xAOD::LowLevelClass );
SG_BASES2( xAOD::LowLevelClass, SG::IAuxStore, SG::IAuxStoreIO );
In ROOT we don't need this extra information, there we rely purely on the ROOT dictionaries of the EDM classes.
All the xAOD packages should use this header for declaring SG inheritance relationships for their classes, instead of pulling in these macros from SGTools directly.
In Athena all the EDM classes are identified using an ATLAS specific system that assigns "class IDs" to the different classes. We do this by using the CLASS_DEF macro in the headers of the EDM classes like:
include "xAODCore/CLASS_DEF.h"
CLASS_DEF( xAOD::ClassName, 123456, 1 )
In a ROOT analysis we need much less information about the classes in such a ROOT-independent way. We mostly just make use of that information to decode the trigger navigation EDM.
All xAOD packages should use this header for declaring class IDs for their EDM classes instead of using SGTools directly.