ATLAS Offline Software
Namespaces | Functions
copyThinned.h File Reference

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"
Include dependency graph for copyThinned.h:
This graph shows which files directly or indirectly include this file:

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...
 

Detailed Description

Helper to copy an object while applying thinning.

Author
scott snyder snyde.nosp@m.r@bn.nosp@m.l.gov
Date
Jul, 2014 The code in this file handles thinning for 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.