ATLAS Offline Software
Namespaces | Macros | Functions
AuxVariable.h File Reference
#include "AthContainers/AuxTypeRegistry.h"
#include "AthContainers/ConstAccessor.h"
#include "CxxUtils/pputils.h"
Include dependency graph for AuxVariable.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 xAOD
 ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
 
 xAOD::detail
 

Macros

#define AUX_VARIABLE(VAR, ...)
 Convenience macro for declaring an auxiliary variable. More...
 
#define AUXVAR_DECL(TYPE, NAME, ...)
 
#define AUXVAR_DECL_ALLOC_(TYPE, ...)   __VA_OPT__( CXXUTILS_PP_FIRST( __VA_ARGS__ )< TYPE > )
 
#define AUXVAR_PACKEDCONTAINER_DECL(TYPE, NAME)
 

Functions

template<class VARTYPE , class AUXBASE >
VARTYPE xAOD::detail::initAuxVar2 (AUXBASE *auxcont, std::true_type)
 
template<class VARTYPE , class AUXBASE >
VARTYPE xAOD::detail::initAuxVar2 (AUXBASE *, std::false_type)
 
template<class VARTYPE , class AUXBASE >
VARTYPE xAOD::detail::initAuxVar1 (AUXBASE *auxcont)
 
template<const char * NAME, class AUXBASE , class VARTYPE >
VARTYPE xAOD::detail::initAuxVar (AUXBASE *auxcont, VARTYPE &var, SG::AuxVarFlags flags=SG::AuxVarFlags::None)
 
template<class ELT , const char * NAME, class AUXBASE , class LINKS , class LINKED >
LINKED xAOD::detail::initLinkedVar (AUXBASE *auxcont, LINKS &links, LINKED &linked)
 

Macro Definition Documentation

◆ AUX_VARIABLE

#define AUX_VARIABLE (   VAR,
  ... 
)
Value:
do { \
static const auxid_t auxid = \
getAuxID( #VAR, VAR CXXUTILS_PP_FIRST( __VA_ARGS__ ) ); \
regAuxVar( auxid, #VAR, VAR ); \
} while( false )

Convenience macro for declaring an auxiliary variable.

Should be used in the constructor of the derived class, like: AUX_VARIABLE( RunNumber );

Can take a optional additional argument giving SG::AuxVarFlags to use for this variable.

Definition at line 24 of file AuxVariable.h.

◆ AUXVAR_DECL

#define AUXVAR_DECL (   TYPE,
  NAME,
  ... 
)
Value:
static constexpr const char NAME ## __name[] = #NAME; \
AuxVariable_t< TYPE AUXVAR_DECL_ALLOC_( TYPE, __VA_ARGS__ ) > NAME \
{ xAOD::detail::initAuxVar< NAME ## __name >( this, NAME CXXUTILS_PP_SECOND( __VA_ARGS__ ) ) }

Definition at line 114 of file AuxVariable.h.

◆ AUXVAR_DECL_ALLOC_

#define AUXVAR_DECL_ALLOC_ (   TYPE,
  ... 
)    __VA_OPT__( CXXUTILS_PP_FIRST( __VA_ARGS__ )< TYPE > )

Definition at line 118 of file AuxVariable.h.

◆ AUXVAR_PACKEDCONTAINER_DECL

#define AUXVAR_PACKEDCONTAINER_DECL (   TYPE,
  NAME 
)
Value:
static constexpr const char NAME ## __name[] = #NAME; \
SG::PackedContainer< TYPE > NAME { xAOD::detail::initAuxVar< NAME ## __name >( this, NAME ) }

Definition at line 122 of file AuxVariable.h.

CXXUTILS_PP_SECOND
#define CXXUTILS_PP_SECOND(...)
Definition: pputils.h:38
SG::auxid_t
size_t auxid_t
Identifier for a particular aux data item.
Definition: AuxTypes.h:27
AUXVAR_DECL_ALLOC_
#define AUXVAR_DECL_ALLOC_(TYPE,...)
Definition: AuxVariable.h:117
TYPE
#define TYPE(CODE, TYP, IOTYP)
CXXUTILS_PP_FIRST
#define CXXUTILS_PP_FIRST(...)
Definition: pputils.h:34