ATLAS Offline Software
|
Helper to copy an object while applying thinning. More...
#include "AthContainers/DataVector.h"
#include "AthContainers/ConstDataVector.h"
#include "AthContainers/tools/copyAuxStoreThinned.h"
#include "AthContainersInterfaces/IAuxStore.h"
#include "AthenaKernel/ThinningDecisionBase.h"
#include "AthContainers/tools/copyThinned.icc"
Go to the source code of this file.
Namespaces | |
SG | |
Forward declaration. | |
Functions | |
template<class CONTAINER > | |
std::unique_ptr< CONTAINER > | SG::copyThinned (CONTAINER &orig, const SG::ThinningInfo *info) |
Helper to copy an object while applying thinning. More... | |
template<class CONTAINER > | |
std::unique_ptr< const CONTAINER > | SG::copyThinnedConst (const CONTAINER &orig, const SG::ThinningInfo *info) |
Helper to copy an object while applying thinning, const version. More... | |
template<class CONTAINER > | |
std::unique_ptr< CONTAINER > | SG::copyThinned1 (const CONTAINER &orig, const void *dummy, const SG::ThinningInfo *info) |
Helper to copy an object while applying thinning. More... | |
template<class CONTAINER > | |
std::unique_ptr< CONTAINER > | SG::copyThinned1 (CONTAINER &orig, DataVector< typename CONTAINER::base_value_type > *, const SG::ThinningInfo *info) |
Helper to copy an object while applying thinning. More... | |
template<class CONTAINER > | |
std::unique_ptr< const CONTAINER > | SG::copyThinned1 (const CONTAINER &orig, const DataVector< typename CONTAINER::base_value_type > *dummy, const SG::ThinningInfo *info) |
Helper to copy an object while applying thinning. More... | |
template<class CONTAINER > | |
std::unique_ptr< CONTAINER > | SG::copyThinned1 (const CONTAINER &orig, const SG::IAuxStore *dummy, const SG::ThinningInfo *info) |
Helper to copy an object while applying thinning. More... | |
Helper to copy an object while applying thinning.
DataVector
and IAuxStore
objects. Support for other types may be added by providing additional overloads for copyThinned1
.There are two variants: copyThinned
and @ copyThinnedConst. The former returns a non-const pointer, and the latter returns a const pointer. Only the const variety may be used with a DataVector
instance.
In the signature of copyThinned1
, the container is passed twice: once as a reference and once as a pointer. This allows one to use overload resolution on the pointer argument to select the proper overload, while still being able to get the derived type of the container via template binding to the first argument. See the declarations below for concrete examples.
Definition in file copyThinned.h.