ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthDevice
AthDeviceUtils
AthDeviceUtils
SoACopy.h
Go to the documentation of this file.
1
// Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
#ifndef ATHDEVICEUTILS_SOACOPY_H
3
#define ATHDEVICEUTILS_SOACOPY_H
4
5
// Local include(s).
6
#include "
AthDeviceUtils/SoAColumn.h
"
7
8
// Project include(s).
9
#include "
AthContainers/AuxVectorBase.h
"
10
#include "
AthContainers/DataVector.h
"
11
#include "
AthDeviceInterfaces/ICopiesTool.h
"
12
#include "
AthDeviceInterfaces/IMemoryResourcesTool.h
"
13
#include "GaudiKernel/EventContext.h"
14
15
// VecMem include(s).
16
#include <vecmem/edm/view.hpp>
17
18
// System include(s).
19
#include <tuple>
20
21
namespace
AthDevice
{
22
24
template
<
Concepts::SoAColumn
... COLUMNS>
25
class
SoACopy
{
26
27
public
:
29
SoACopy
(COLUMNS... columns);
31
SoACopy
(
const
std::tuple<COLUMNS...>& columns);
32
41
template
<
typename
SCHEMA>
42
void
operator()
(
const
SG::AuxVectorBase
& input,
43
vecmem::edm::view<SCHEMA>& output,
const
EventContext& ctx,
44
const
IMemoryResourcesTool
& mrs,
45
const
ICopiesTool
& copies)
const
;
46
55
template
<
typename
SCHEMA,
typename
INTERFACE,
typename
BASE>
56
void
operator()
(
const
vecmem::edm::view<SCHEMA>& input,
57
DataVector<INTERFACE, BASE>
& output,
const
EventContext& ctx,
58
const
IMemoryResourcesTool
& mrs,
59
const
ICopiesTool
& copies)
const
;
60
61
private
:
63
std::tuple<COLUMNS...>
m_columns
;
64
65
};
// class SoACopy
66
69
70
template
<
Concepts::SoAColumn
... COLUMNS>
71
SoACopy
(COLUMNS...) ->
SoACopy
<COLUMNS...>;
72
73
template
<
Concepts::SoAColumn
... COLUMNS>
74
SoACopy
(
const
std::tuple<COLUMNS...>&) ->
SoACopy
<COLUMNS...>;
75
77
78
}
// namespace AthDevice
79
80
// Include the implementation.
81
#include "
AthDeviceUtils/impl/SoACopy.icc
"
82
83
#endif
// ATHDEVICEUTILS_SOACOPY_H
AuxVectorBase.h
Manage index tracking and synchronization of auxiliary data.
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
ICopiesTool.h
IMemoryResourcesTool.h
SoAColumn.h
SoACopy.icc
AthDevice::ICopiesTool
Interface for a tool that provides host and device copy objects.
Definition
ICopiesTool.h:40
AthDevice::IMemoryResourcesTool
Interface for a tool that provides a main/device and a host memory resource.
Definition
IMemoryResourcesTool.h:29
AthDevice::SoACopy
Utility to help with copying data between xAOD and VecMem SoA containers.
Definition
SoACopy.h:25
AthDevice::SoACopy::operator()
void operator()(const SG::AuxVectorBase &input, vecmem::edm::view< SCHEMA > &output, const EventContext &ctx, const IMemoryResourcesTool &mrs, const ICopiesTool &copies) const
Copy data from an input xAOD container into a VecMem SoA container.
AthDevice::SoACopy::operator()
void operator()(const vecmem::edm::view< SCHEMA > &input, DataVector< INTERFACE, BASE > &output, const EventContext &ctx, const IMemoryResourcesTool &mrs, const ICopiesTool &copies) const
Copy data from an input VecMem SoA container into an xAOD container.
AthDevice::SoACopy::SoACopy
SoACopy(const std::tuple< COLUMNS... > &columns)
Constructor with a tuple.
AthDevice::SoACopy::SoACopy
SoACopy(COLUMNS... columns)
Constructor with a parameter pack.
AthDevice::SoACopy::m_columns
std::tuple< COLUMNS... > m_columns
Columns to copy back and forth between the containers.
Definition
SoACopy.h:63
DataVector
Derived DataVector<T>.
Definition
DataVector.h:818
SG::AuxVectorBase
Manage index tracking and synchronization of auxiliary data.
Definition
AuxVectorBase.h:98
AthDevice::Concepts::SoAColumn
Concept for an SoA column.
Definition
SoAColumn.h:25
AthDevice
Definition
BinaryPageMemoryResourceSvc.cxx:15
AthDevice::SoACopy
SoACopy(COLUMNS...) -> SoACopy< COLUMNS... >
Generated on
for ATLAS Offline Software by
1.17.0