ATLAS Offline Software
Event/xAOD/xAODCore/xAODCore/CLASS_DEF.h File Reference

File providing the different SG_BASE macros. More...

#include "AthenaKernel/CLASS_DEF.h"
Include dependency graph for Event/xAOD/xAODCore/xAODCore/CLASS_DEF.h:

Go to the source code of this file.

Detailed Description

File providing the different SG_BASE macros.

File providing the CLASS_DEF macro.

Author
Scott Snyder snyde.nosp@m.r@bn.nosp@m.l.gov
Attila Krasznahorkay Attil.nosp@m.a.Kr.nosp@m.aszna.nosp@m.hork.nosp@m.ay@ce.nosp@m.rn.c.nosp@m.h

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 AthenaKernel directly.

Revision
611441
Date
2014-08-12 16:53:49 +0200 (Tue, 12 Aug 2014)
Author
Scott Snyder snyde.nosp@m.r@bn.nosp@m.l.gov
Attila Krasznahorkay Attil.nosp@m.a.Kr.nosp@m.aszna.nosp@m.hork.nosp@m.ay@ce.nosp@m.rn.c.nosp@m.h

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 AthenaKernel directly.

Revision
613558
Date
2014-08-26 19:16:16 +0200 (Tue, 26 Aug 2014)

Definition in file Event/xAOD/xAODCore/xAODCore/CLASS_DEF.h.