ATLAS Offline Software
Event
FourMomUtils
FourMomUtils
xAODHelpers.h
Go to the documentation of this file.
1
3
/*
4
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5
*/
6
7
// xAODHelpers.h
8
// Header file for xAOD helper functions
9
// Author: karsten.koeneke@cern.ch
11
#ifndef FOURMOMUTILS_XAODHELPERS_H
12
#define FOURMOMUTILS_XAODHELPERS_H
13
29
// EDM includes
30
#include "
AthContainers/AuxElement.h
"
31
32
33
namespace
xAOD
34
{
35
namespace
Helpers
36
{
37
38
class
_importHelper
{
/* dummy */
};
39
40
// Define a pre-processor macro for the implementations of all these methods
41
#define GET_VAL( FUNCNAME, VALTYPE, PERSVALTYPE ) \
42
inline bool FUNCNAME( const SG::AuxElement& auxEle, const std::string& varName ) { \
43
SG::AuxElement::ConstAccessor<PERSVALTYPE> acc(varName); \
44
return static_cast<VALTYPE>( acc(auxEle) ); \
45
}
46
48
GET_VAL
( getBool,
bool
,
char
)
49
GET_VAL
( getInt,
int
,
int
)
50
GET_VAL
( getUInt,
unsigned
int
,
unsigned
int
)
51
GET_VAL
( getFloat,
float
,
float
)
52
GET_VAL
( getDouble,
double
,
double
)
53
54
55
56
// Define a pre-processor macro for the implementations of all these methods
57
#define SET_VAL( FUNCNAME, VALTYPE, PERSVALTYPE ) \
58
inline bool FUNCNAME( SG::AuxElement& auxEle, const std::string& varName, VALTYPE val ) { \
59
SG::AuxElement::Accessor<PERSVALTYPE> acc(varName); \
60
if ( acc.isAvailable(auxEle) && !(acc.isAvailableWritable(auxEle)) ) { \
61
return false; \
62
} \
63
acc(auxEle) = static_cast<PERSVALTYPE>(val); \
64
return true; \
65
}
66
68
SET_VAL
(setBool,
bool
,
char
)
69
SET_VAL
(setInt,
int
,
int
)
70
SET_VAL
(setUInt,
unsigned
int
,
unsigned
int
)
71
SET_VAL
(setFloat,
float
,
float
)
72
SET_VAL
(setDouble,
double
,
double
)
73
74
75
76
// Define a pre-processor macro for the implementations of all these methods
77
#define DECO_VAL( FUNCNAME, VALTYPE, PERSVALTYPE ) \
78
inline bool FUNCNAME( const SG::AuxElement& auxEle, const std::string& varName, VALTYPE val ) { \
79
SG::AuxElement::Decorator<PERSVALTYPE> deco(varName); \
80
if ( deco.isAvailable(auxEle) && !(deco.isAvailableWritable(auxEle)) ) { \
81
return false; \
82
} \
83
deco(auxEle) = static_cast<PERSVALTYPE>(val); \
84
return true; \
85
}
86
88
SET_VAL
(decoBool,
bool
,
char
)
89
SET_VAL
(decoInt,
int
,
int
)
90
SET_VAL
(decoUInt,
unsigned
int
,
unsigned
int
)
91
SET_VAL
(decoFloat,
float
,
float
)
92
SET_VAL
(decoDouble,
double
,
double
)
93
94
}
//> namespace Helpers
95
96
}
// End: namespace xAOD
97
98
99
#endif // FOURMOMUTILS_XAODHELPERS_H
xAOD::Helpers::_importHelper
Definition:
xAODHelpers.h:38
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition:
ICaloAffectedTool.h:24
GET_VAL
#define GET_VAL(FUNCNAME, VALTYPE, PERSVALTYPE)
Definition:
xAODHelpers.h:41
SET_VAL
#define SET_VAL(FUNCNAME, VALTYPE, PERSVALTYPE)
Access to get a variable of the different types.
Definition:
xAODHelpers.h:57
AuxElement.h
Base class for elements of a container that can have aux data.
Generated on Thu Nov 7 2024 21:32:01 for ATLAS Offline Software by
1.8.18