ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsGPUInterfaces
ActsGPUInterfaces
DeviceAlgorithmT.h
Go to the documentation of this file.
1
// Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
#ifndef ACTSGPUINTERFACES_DEVICEALGORITHMT_H
3
#define ACTSGPUINTERFACES_DEVICEALGORITHMT_H
4
5
// VecMem include(s).
6
#include <vecmem/utils/copy.hpp>
7
8
// System include(s).
9
#include <memory>
10
11
namespace
ActsTrk
{
12
14
template
<
typename
ALGORITHM_TYPE>
15
class
DeviceAlgorithmT
{
16
17
public
:
19
using
algorithm_type
= ALGORITHM_TYPE;
20
22
DeviceAlgorithmT
(std::shared_ptr<const vecmem::copy>
copy
,
23
std::shared_ptr<const algorithm_type>
algorithm
)
24
:
m_copy
(
std
::move(
copy
)),
m_algorithm
(
std
::move(
algorithm
)) {}
25
26
DeviceAlgorithmT
(
const
DeviceAlgorithmT
&) =
default
;
28
DeviceAlgorithmT
(
DeviceAlgorithmT
&&) =
default
;
29
31
DeviceAlgorithmT
&
operator=
(
const
DeviceAlgorithmT
&) =
default
;
33
DeviceAlgorithmT
&
operator=
(
DeviceAlgorithmT
&&) =
default
;
34
36
const
vecmem::copy&
copy
()
const
{
return
*
m_copy
; }
37
39
const
algorithm_type
&
algorithm
()
const
{
return
*
m_algorithm
; }
40
42
const
algorithm_type
&
operator*
()
const
{
return
*
m_algorithm
; }
44
const
algorithm_type
*
operator->
()
const
{
return
m_algorithm
.get(); }
45
46
private
:
48
std::shared_ptr<const vecmem::copy>
m_copy
;
50
std::shared_ptr<const algorithm_type>
m_algorithm
;
51
52
};
// class DeviceAlgorithmT
53
54
}
// namespace ActsTrk
55
56
#endif
// ACTSGPUINTERFACES_DEVICEALGORITHMT_H
ActsTrk::DeviceAlgorithmT::DeviceAlgorithmT
DeviceAlgorithmT(const DeviceAlgorithmT &)=default
Copy constructor.
ActsTrk::DeviceAlgorithmT::operator=
DeviceAlgorithmT & operator=(const DeviceAlgorithmT &)=default
Copy assignment operator.
ActsTrk::DeviceAlgorithmT::DeviceAlgorithmT
DeviceAlgorithmT(std::shared_ptr< const vecmem::copy > copy, std::shared_ptr< const algorithm_type > algorithm)
Constructor with the algorithm and the copy object that it uses.
Definition
DeviceAlgorithmT.h:22
ActsTrk::DeviceAlgorithmT::operator->
const algorithm_type * operator->() const
Access the algorithm with a "pointer formalism".
Definition
DeviceAlgorithmT.h:44
ActsTrk::DeviceAlgorithmT::algorithm
const algorithm_type & algorithm() const
Get the algorithm itself.
Definition
DeviceAlgorithmT.h:39
ActsTrk::DeviceAlgorithmT::copy
const vecmem::copy & copy() const
Get the copy object that the algorithm uses.
Definition
DeviceAlgorithmT.h:36
ActsTrk::DeviceAlgorithmT::operator=
DeviceAlgorithmT & operator=(DeviceAlgorithmT &&)=default
Move assignment operator.
ActsTrk::DeviceAlgorithmT::m_copy
std::shared_ptr< const vecmem::copy > m_copy
The copy object that the algorithm uses.
Definition
DeviceAlgorithmT.h:48
ActsTrk::DeviceAlgorithmT::DeviceAlgorithmT
DeviceAlgorithmT(DeviceAlgorithmT &&)=default
Move constructor.
ActsTrk::DeviceAlgorithmT::m_algorithm
std::shared_ptr< const algorithm_type > m_algorithm
The algorithm itself.
Definition
DeviceAlgorithmT.h:50
ActsTrk::DeviceAlgorithmT::operator*
const algorithm_type & operator*() const
Access the algorithm with a "pointer dereferencing formalism".
Definition
DeviceAlgorithmT.h:42
ActsTrk::DeviceAlgorithmT::algorithm_type
ALGORITHM_TYPE algorithm_type
Type of the held algorithm.
Definition
DeviceAlgorithmT.h:19
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
std
STL namespace.
Generated on
for ATLAS Offline Software by
1.17.0