ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthContainers
AthContainers
tools
supportsThinning.h
Go to the documentation of this file.
1
// This file's extension implies that it's C, but it's really -*- C++ -*-.
2
/*
3
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
4
*/
20
21
22
#ifndef ATHCONTAINERS_SUPPORTSTHINNING_H
23
#define ATHCONTAINERS_SUPPORTSTHINNING_H
24
25
26
#include "
AthContainers/AuxVectorBase.h
"
27
#include "
AthContainers/AuxElement.h
"
28
#include "
AthContainersInterfaces/IAuxStore.h
"
29
#include <type_traits>
30
31
32
namespace
SG
{
33
34
41
template
<
class
T>
42
bool
constexpr
xAODInterfaceSupportingThinning
() {
43
44
constexpr
bool
isxAODInterfaceObject =
45
std::derived_from<T, SG::AuxVectorBase> ||
46
std::derived_from<T, SG::AuxElement>;
47
48
if
constexpr
(isxAODInterfaceObject)
49
return
T::supportsThinning;
50
else
51
return
false
;
52
}
53
54
63
template
<
class
T>
64
inline
constexpr
bool
is_xAODStoreObject_v
=
65
std::is_base_of_v<SG::IAuxStore, T>;
66
template
<
class
T,
67
typename
std::enable_if_t<is_xAODStoreObject_v<T> >* =
nullptr
>
68
bool
constexpr
xAODStoreSupportingThinning
() {
return
T::supportsThinning; }
69
template
<
class
T,
70
typename
std::enable_if_t<!is_xAODStoreObject_v<T> >* =
nullptr
>
71
bool
constexpr
xAODStoreSupportingThinning
() {
return
false
; }
72
73
74
}
// namespace SG
75
76
77
#endif
// not ATHCONTAINERS_SUPPORTSTHINNING_H
AuxElement.h
Base class for elements of a container that can have aux data.
AuxVectorBase.h
Manage index tracking and synchronization of auxiliary data.
IAuxStore.h
Interface for non-const operations on an auxiliary store.
SG
Forward declaration.
Definition
CaloCellPacker_400_500.h:32
SG::is_xAODStoreObject_v
constexpr bool is_xAODStoreObject_v
Test for an xAOD auxiliary store class supporting thinning.
Definition
supportsThinning.h:64
SG::xAODInterfaceSupportingThinning
bool constexpr xAODInterfaceSupportingThinning()
Test for an xAOD interface class supporting thinning.
Definition
supportsThinning.h:42
SG::xAODStoreSupportingThinning
bool constexpr xAODStoreSupportingThinning()
Definition
supportsThinning.h:68
Generated on
for ATLAS Offline Software by
1.17.0