00001 // This file's extension implies that it's C, but it's really -*- C++ -*-. 00002 // $Id$ 00022 #ifndef ATHCONTAINERS_COPYTHINNED_H 00023 #define ATHCONTAINERS_COPYTHINNED_H 00024 00025 00026 #include "AthContainers/DataVector.h" 00027 #include "AthContainers/ConstDataVector.h" 00028 #include "AthContainers/tools/copyAuxStoreThinned.h" 00029 #include "AthContainersInterfaces/IAuxStore.h" 00030 #include "AthenaKernel/IThinningSvc.h" 00031 00032 00033 class IThinningSvc; 00034 00035 00036 namespace SG { 00037 00038 00052 template <class CONTAINER> 00053 CONTAINER* 00054 copyThinned (const CONTAINER& orig, 00055 IThinningSvc* svc); 00056 00057 00068 template <class CONTAINER> 00069 CONTAINER* 00070 copyThinned1 (const CONTAINER& orig, 00071 const void* dummy, 00072 IThinningSvc* svc); 00073 00074 00084 template <class CONTAINER> 00085 CONTAINER* 00086 copyThinned1 (const CONTAINER& orig, 00087 const DataVector<typename CONTAINER::base_value_type>* dummy, 00088 IThinningSvc* svc); 00089 00090 00100 template <class CONTAINER> 00101 CONTAINER* 00102 copyThinned1 (const CONTAINER& orig, 00103 const SG::IAuxStore* dummy, 00104 IThinningSvc* svc); 00105 00106 00107 } // namespace SG 00108 00109 00110 #include "AthContainers/tools/copyThinned.icc" 00111 00112 00113 #endif // not ATHCONTAINERS_COPYTHINNED_H