CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes
TrackSoAHeterogeneousT< S > Class Template Reference

#include <TrackSoAHeterogeneousT.h>

Public Types

using hindex_type = uint32_t
 
using HitContainer = cms::cuda::OneToManyAssoc< hindex_type, S+1, 5 *S >
 
using Quality = pixelTrack::Quality
 

Public Member Functions

constexpr float charge (int32_t i) const
 
constexpr int computeNumberOfLayers (int32_t i) const
 
constexpr bool isTriplet (int i) const
 
constexpr int nHits (int i) const
 
constexpr float phi (int32_t i) const
 
constexpr Quality quality (int32_t i) const
 
constexpr Qualityquality (int32_t i)
 
constexpr Quality const * qualityData () const
 
constexpr QualityqualityData ()
 
constexpr float tip (int32_t i) const
 
constexpr float zip (int32_t i) const
 

Static Public Member Functions

static constexpr int32_t stride ()
 

Public Attributes

eigenSoA::ScalarSoA< float, Schi2
 
HitContainer detIndices
 
eigenSoA::ScalarSoA< float, Seta
 
HitContainer hitIndices
 
eigenSoA::ScalarSoA< int8_t, SnLayers
 
eigenSoA::ScalarSoA< float, Spt
 
TrajectoryStateSoAT< SstateAtBS
 

Private Attributes

eigenSoA::ScalarSoA< uint8_t, Squality_
 

Detailed Description

template<int32_t S>
class TrackSoAHeterogeneousT< S >

Definition at line 24 of file TrackSoAHeterogeneousT.h.

Member Typedef Documentation

template<int32_t S>
using TrackSoAHeterogeneousT< S >::hindex_type = uint32_t

Definition at line 29 of file TrackSoAHeterogeneousT.h.

template<int32_t S>
using TrackSoAHeterogeneousT< S >::HitContainer = cms::cuda::OneToManyAssoc<hindex_type, S + 1, 5 * S>

Definition at line 30 of file TrackSoAHeterogeneousT.h.

template<int32_t S>
using TrackSoAHeterogeneousT< S >::Quality = pixelTrack::Quality

Definition at line 28 of file TrackSoAHeterogeneousT.h.

Member Function Documentation

template<int32_t S>
constexpr float TrackSoAHeterogeneousT< S >::charge ( int32_t  i) const
inline

Definition at line 71 of file TrackSoAHeterogeneousT.h.

References validate-o2o-wbm::f, and TrackSoAHeterogeneousT< S >::stateAtBS.

Referenced by L2TauNNProducer::fillPatatracks().

71 { return std::copysign(1.f, stateAtBS.state(i)(2)); }
TrajectoryStateSoAT< S > stateAtBS
template<int32_t S>
constexpr int TrackSoAHeterogeneousT< S >::computeNumberOfLayers ( int32_t  i) const
inline

Definition at line 52 of file TrackSoAHeterogeneousT.h.

References TrackSoAHeterogeneousT< S >::detIndices, and phase1PixelTopology::getLayer().

52  {
53  // layers are in order and we assume tracks are either forward or backward
54  auto pdet = detIndices.begin(i);
55  int nl = 1;
56  auto ol = phase1PixelTopology::getLayer(*pdet);
57  for (; pdet < detIndices.end(i); ++pdet) {
58  auto il = phase1PixelTopology::getLayer(*pdet);
59  if (il != ol)
60  ++nl;
61  ol = il;
62  }
63  return nl;
64  }
constexpr uint8_t getLayer(uint32_t detId)
template<int32_t S>
constexpr bool TrackSoAHeterogeneousT< S >::isTriplet ( int  i) const
inline

Definition at line 50 of file TrackSoAHeterogeneousT.h.

References TrackSoAHeterogeneousT< S >::nLayers.

50 { return nLayers(i) == 3; }
eigenSoA::ScalarSoA< int8_t, S > nLayers
template<int32_t S>
constexpr int TrackSoAHeterogeneousT< S >::nHits ( int  i) const
inline

Definition at line 48 of file TrackSoAHeterogeneousT.h.

References TrackSoAHeterogeneousT< S >::detIndices.

Referenced by L2TauNNProducer::fillPatatracks().

48 { return detIndices.size(i); }
template<int32_t S>
constexpr float TrackSoAHeterogeneousT< S >::phi ( int32_t  i) const
inline
template<int32_t S>
constexpr Quality TrackSoAHeterogeneousT< S >::quality ( int32_t  i) const
inline

Definition at line 38 of file TrackSoAHeterogeneousT.h.

References TrackSoAHeterogeneousT< S >::quality_.

38 { return (Quality)(quality_(i)); }
eigenSoA::ScalarSoA< uint8_t, S > quality_
template<int32_t S>
constexpr Quality& TrackSoAHeterogeneousT< S >::quality ( int32_t  i)
inline

Definition at line 39 of file TrackSoAHeterogeneousT.h.

References TrackSoAHeterogeneousT< S >::quality_.

39 { return (Quality &)(quality_(i)); }
eigenSoA::ScalarSoA< uint8_t, S > quality_
template<int32_t S>
constexpr Quality const* TrackSoAHeterogeneousT< S >::qualityData ( ) const
inline
template<int32_t S>
constexpr Quality* TrackSoAHeterogeneousT< S >::qualityData ( )
inline

Definition at line 41 of file TrackSoAHeterogeneousT.h.

References eigenSoA::ScalarSoA< T, S >::data(), and TrackSoAHeterogeneousT< S >::quality_.

41 { return (Quality *)(quality_.data()); }
eigenSoA::ScalarSoA< uint8_t, S > quality_
__host__ __device__ constexpr Scalar * data()
Definition: eigenSoA.h:26
template<int32_t S>
static constexpr int32_t TrackSoAHeterogeneousT< S >::stride ( )
inlinestatic

Definition at line 26 of file TrackSoAHeterogeneousT.h.

References S().

Referenced by L2TauNNProducer::fillPatatracks(), gpuVertexFinder::Producer::make(), and L2TauNNProducer::selectGoodVertices().

26 { return S; }
double S(const TLorentzVector &, const TLorentzVector &)
Definition: Particle.cc:97
template<int32_t S>
constexpr float TrackSoAHeterogeneousT< S >::tip ( int32_t  i) const
inline

Definition at line 73 of file TrackSoAHeterogeneousT.h.

References TrackSoAHeterogeneousT< S >::stateAtBS.

73 { return stateAtBS.state(i)(1); }
TrajectoryStateSoAT< S > stateAtBS
template<int32_t S>
constexpr float TrackSoAHeterogeneousT< S >::zip ( int32_t  i) const
inline

Definition at line 74 of file TrackSoAHeterogeneousT.h.

References TrackSoAHeterogeneousT< S >::stateAtBS.

74 { return stateAtBS.state(i)(4); }
TrajectoryStateSoAT< S > stateAtBS

Member Data Documentation

template<int32_t S>
eigenSoA::ScalarSoA<float, S> TrackSoAHeterogeneousT< S >::chi2
template<int32_t S>
HitContainer TrackSoAHeterogeneousT< S >::detIndices
template<int32_t S>
eigenSoA::ScalarSoA<float, S> TrackSoAHeterogeneousT< S >::eta
template<int32_t S>
HitContainer TrackSoAHeterogeneousT< S >::hitIndices
template<int32_t S>
eigenSoA::ScalarSoA<int8_t, S> TrackSoAHeterogeneousT< S >::nLayers

Definition at line 46 of file TrackSoAHeterogeneousT.h.

Referenced by TrackSoAHeterogeneousT< S >::isTriplet().

template<int32_t S>
eigenSoA::ScalarSoA<float, S> TrackSoAHeterogeneousT< S >::pt
template<int32_t S>
eigenSoA::ScalarSoA<uint8_t, S> TrackSoAHeterogeneousT< S >::quality_
private
template<int32_t S>
TrajectoryStateSoAT<S> TrackSoAHeterogeneousT< S >::stateAtBS