5#ifndef ATHEXCUDA_TRACKPARTICLECONTAINER_H
6#define ATHEXCUDA_TRACKPARTICLECONTAINER_H
9#include <vecmem/edm/container.hpp>
14template <
typename BASE>
21 VECMEM_HOST_AND_DEVICE
24 VECMEM_HOST_AND_DEVICE
28 VECMEM_HOST_AND_DEVICE
29 const auto&
phi()
const {
return BASE::template
get<1>(); }
31 VECMEM_HOST_AND_DEVICE
35 VECMEM_HOST_AND_DEVICE
38 VECMEM_HOST_AND_DEVICE
46 vecmem::edm::type::vector<float>, vecmem::edm::type::vector<float>>;
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
vecmem::edm::container< TrackParticleInterface, vecmem::edm::type::vector< float >, vecmem::edm::type::vector< float >, vecmem::edm::type::vector< float > > TrackParticleContainer
SoA, GPU friendly TrackParticleContainer.
Interface for the VecMem based GPU friendly TrackParticleContainer.
VECMEM_HOST_AND_DEVICE auto & theta()
Get the polar angles of the tracks (non-const)
VECMEM_HOST_AND_DEVICE const auto & theta() const
Get the polar angles of the tracks (const)
VECMEM_HOST_AND_DEVICE const auto & qOverP() const
Get the inverse momenta of the tracks (const)
VECMEM_HOST_AND_DEVICE const auto & phi() const
Get the azimuthal angles of the tracks (const)
VECMEM_HOST_AND_DEVICE auto & qOverP()
Get the inverse momenta of the tracks (non-const)
VECMEM_HOST_AND_DEVICE auto & phi()
Get the azimuthal angles of the tracks (non-const)