src
DataFormats
TrackSoA
interface
TracksDevice.h
Go to the documentation of this file.
1
#ifndef DataFormats_Track_interface_TracksDevice_h
2
#define DataFormats_Track_interface_TracksDevice_h
3
4
#include <cstdint>
5
#include <alpaka/alpaka.hpp>
6
#include "
DataFormats/TrackSoA/interface/TracksSoA.h
"
7
#include "
DataFormats/TrackSoA/interface/TrackDefinitions.h
"
8
#include "
DataFormats/Portable/interface/PortableDeviceCollection.h
"
9
10
// TODO: The class is created via inheritance of the PortableCollection.
11
// This is generally discouraged, and should be done via composition.
12
// See: https://github.com/cms-sw/cmssw/pull/40465#discussion_r1067364306
13
template
<
typename
TrackerTraits,
typename
TDev>
14
class
TracksDevice
:
public
PortableDeviceCollection
<reco::TrackLayout<TrackerTraits>, TDev> {
15
public
:
16
static
constexpr
int32_t
S
= TrackerTraits::maxNumberOfTuples;
//TODO: this could be made configurable at runtime
17
TracksDevice
() =
default
;
// necessary for ROOT dictionaries
18
19
using
PortableDeviceCollection<reco::TrackLayout<TrackerTraits>
, TDev>
::view
;
20
using
PortableDeviceCollection<reco::TrackLayout<TrackerTraits>
, TDev>
::const_view
;
21
using
PortableDeviceCollection<reco::TrackLayout<TrackerTraits>
, TDev>
::buffer
;
22
23
// Constructor which specifies the SoA size
24
template
<
typename
TQueue>
25
explicit
TracksDevice<TrackerTraits, TDev>
(TQueue&
queue
)
26
:
PortableDeviceCollection
<
reco::TrackLayout<TrackerTraits>
, TDev>(
S
,
queue
) {}
27
};
28
29
namespace
pixelTrack
{
30
31
template
<
typename
TDev>
32
using
TracksDevicePhase1
=
TracksDevice<pixelTopology::Phase1, TDev>
;
33
template
<
typename
TDev>
34
using
TracksDeviceHIonPhase1
=
TracksDevice<pixelTopology::HIonPhase1, TDev>
;
35
template
<
typename
TDev>
36
using
TracksDevicePhase2
=
TracksDevice<pixelTopology::Phase2, TDev>
;
37
38
}
// namespace pixelTrack
39
40
#endif // DataFormats_Track_TracksDevice_H
TracksDevice::TracksDevice
TracksDevice()=default
PortableDeviceCollection< reco::TrackLayout< TrackerTraits >, TDev >::view
View & view()
Definition:
PortableDeviceCollection.h:58
PortableDeviceCollection.h
pixelTrack
Definition:
PixelTrackUtilities.h:10
ALPAKA_ACCELERATOR_NAMESPACE::brokenline::constexpr
if constexpr(n > 3)
Definition:
BrokenLine.h:164
createBeamHaloJobs.queue
queue
Definition:
createBeamHaloJobs.py:343
reco::TrackLayout
typename reco::TrackSoA< TrackerTraits >::template Layout<> TrackLayout
Definition:
TracksSoA.h:43
PortableDeviceCollection< reco::TrackLayout< TrackerTraits >, TDev >::buffer
Buffer buffer()
Definition:
PortableDeviceCollection.h:69
S
Definition:
CSCDBL1TPParametersExtended.h:16
TracksSoA.h
PortableDeviceCollection< reco::TrackLayout< TrackerTraits >, TDev >::const_view
ConstView const & const_view() const
Definition:
PortableDeviceCollection.h:60
PortableDeviceCollection
Definition:
PortableDeviceCollection.h:16
TrackDefinitions.h
TracksDevice
Definition:
TracksDevice.h:14
Generated for CMSSW Reference Manual by
1.8.14