ATLAS Offline Software
Loading...
Searching...
No Matches
VecMemSoASGHelpers.h
Go to the documentation of this file.
1// Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2#ifndef ACTSGPUEVENT_VECMEMSOASGHELPERS_H
3#define ACTSGPUEVENT_VECMEMSOASGHELPERS_H
4
5// Framework include(s).
7
10#define SG_ADD_VECMEM_SOA_CONVERSIONS(COLLECTION, CNVNAME) \
11 SG_BASES(COLLECTION::buffer, COLLECTION::view); \
12 SG_BASES(COLLECTION::data, COLLECTION::view); \
13 SG_BASES(COLLECTION::const_data, COLLECTION::const_view); \
14 namespace ActsTrk { \
15 struct Device##CNVNAME##ViewConversion \
16 : public SG::CopyConversion<COLLECTION::view, COLLECTION::const_view> { \
17 virtual void convert(const COLLECTION::view& view, \
18 COLLECTION::const_view& const_view) const override { \
19 const_view = view; \
20 } \
21 }; \
22 struct Device##CNVNAME##BufferConversion \
23 : public SG::CopyConversion<COLLECTION::buffer, \
24 COLLECTION::const_view> { \
25 virtual void convert(const COLLECTION::buffer& buffer, \
26 COLLECTION::const_view& const_view) const override { \
27 const_view = buffer; \
28 } \
29 }; \
30 struct Device##CNVNAME##DataConversion \
31 : public SG::CopyConversion<COLLECTION::data, \
32 COLLECTION::const_view> { \
33 virtual void convert(const COLLECTION::data& data, \
34 COLLECTION::const_view& const_view) const override { \
35 const_view = data; \
36 } \
37 }; \
38 struct Device##CNVNAME##HostConversion \
39 : public SG::CopyConversion<COLLECTION::host, COLLECTION::const_data> { \
40 virtual void convert(const COLLECTION::host& host, \
41 COLLECTION::const_data& const_data) const override { \
42 const_data = vecmem::get_data(host); \
43 } \
44 }; \
45 } \
46 SG_ADD_COPY_CONVERSION(COLLECTION::view, \
47 ActsTrk::Device##CNVNAME##ViewConversion); \
48 SG_ADD_COPY_CONVERSION(COLLECTION::buffer, \
49 ActsTrk::Device##CNVNAME##BufferConversion); \
50 SG_ADD_COPY_CONVERSION(COLLECTION::data, \
51 ActsTrk::Device##CNVNAME##DataConversion); \
52 SG_ADD_COPY_CONVERSION(COLLECTION::host, \
53 ActsTrk::Device##CNVNAME##HostConversion)
54
55#endif // ACTSGPUEVENT_VECMEMSOASGHELPERS_H
Provide an interface for finding inheritance information at run time.