ATLAS Offline Software
Loading...
Searching...
No Matches
AuxVariable.h File Reference
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

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

Macros

#define AUX_VARIABLE(VAR, ...)
 Convenience macro for declaring an auxiliary variable.
#define AUXVAR_DECL(TYPE, NAME, ...)
#define AUXVAR_DECL_ALLOC_(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 )
#define CXXUTILS_PP_FIRST(...)
Definition pputils.h:34

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 23 of file AuxVariable.h.

23#define AUX_VARIABLE( VAR, ... ) \
24 do { \
25 static const auxid_t auxid = \
26 getAuxID( #VAR, VAR CXXUTILS_PP_FIRST( __VA_ARGS__ ) ); \
27 regAuxVar( auxid, #VAR, VAR ); \
28 } while( false )

◆ 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 \
#define AUXVAR_DECL_ALLOC_(TYPE,...)
#define TYPE(CODE, TYP, IOTYP)
VARTYPE initAuxVar(AUXBASE *auxcont, VARTYPE &var, SG::AuxVarFlags flags=SG::AuxVarFlags::None)
Definition AuxVariable.h:82
#define CXXUTILS_PP_SECOND(...)
Definition pputils.h:38

Definition at line 113 of file AuxVariable.h.

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

◆ AUXVAR_DECL_ALLOC_

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

Definition at line 117 of file AuxVariable.h.

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

◆ AUXVAR_PACKEDCONTAINER_DECL

#define AUXVAR_PACKEDCONTAINER_DECL ( TYPE,
NAME )
Value:
static constexpr const char NAME ## __name[] = #NAME; \
Container to hold aux data to be stored in a packed form.

Definition at line 121 of file AuxVariable.h.

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