ATLAS Offline Software
TrackDef.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 
8 #ifndef COLUMNAR_TRACKING_TRACK_DEF_H
9 #define COLUMNAR_TRACKING_TRACK_DEF_H
10 
14 
15 namespace columnar
16 {
17  namespace ContainerId
18  {
19  struct track : regularCIBase<xAOD::TrackParticle,xAOD::TrackParticleContainer>
20  {
21  static constexpr std::string_view idName = "track0";
22  };
23  using track0 = track;
24 
25  struct track1 : track
26  {
27  static constexpr std::string_view idName = "track1";
28  };
29 
30  struct track2 : track
31  {
32  static constexpr std::string_view idName = "track2";
33  };
34 
35  struct vertex : regularCIBase<xAOD::Vertex,xAOD::VertexContainer>
36  {
37  static constexpr std::string_view idName = "vertex";
38  };
39  }
40 
43  template<typename CT,typename CM=ColumnarModeDefault> using TrackAccessor = AccessorTemplate<ContainerId::track,CT,ColumnAccessMode::input,CM>;
44  template<typename CT,typename CM=ColumnarModeDefault> using TrackDecorator = AccessorTemplate<ContainerId::track,CT,ColumnAccessMode::output,CM>;
45 
47  template<typename CT,typename CM=ColumnarModeDefault> using Track0Accessor = AccessorTemplate<ContainerId::track0,CT,ColumnAccessMode::input,CM>;
48  template<typename CT,typename CM=ColumnarModeDefault> using Track0Decorator = AccessorTemplate<ContainerId::track0,CT,ColumnAccessMode::output,CM>;
49 
51  template<typename CT,typename CM=ColumnarModeDefault> using Track1Accessor = AccessorTemplate<ContainerId::track1,CT,ColumnAccessMode::input,CM>;
52  template<typename CT,typename CM=ColumnarModeDefault> using Track1Decorator = AccessorTemplate<ContainerId::track1,CT,ColumnAccessMode::output,CM>;
53 
55  template<typename CT,typename CM=ColumnarModeDefault> using Track2Accessor = AccessorTemplate<ContainerId::track2,CT,ColumnAccessMode::input,CM>;
56  template<typename CT,typename CM=ColumnarModeDefault> using Track2Decorator = AccessorTemplate<ContainerId::track2,CT,ColumnAccessMode::output,CM>;
57 
60  template<typename CT,typename CM=ColumnarModeDefault> using VertexAccessor = AccessorTemplate<ContainerId::vertex,CT,ColumnAccessMode::input,CM>;
61  template<typename CT,typename CM=ColumnarModeDefault> using VertexDecorator = AccessorTemplate<ContainerId::vertex,CT,ColumnAccessMode::output,CM>;
62 }
63 
64 #endif
columnar::ContainerId::vertex
Definition: TrackDef.h:36
columnar::ContainerId::vertex::idName
static constexpr std::string_view idName
Definition: TrackDef.h:37
columnar::ContainerId::track2::idName
static constexpr std::string_view idName
Definition: TrackDef.h:32
columnar::OptObjectId
a class representing a single optional object (electron, muons, etc.)
Definition: ContainerId.h:177
columnar::ContainerId::track1::idName
static constexpr std::string_view idName
Definition: TrackDef.h:27
columnar::ContainerId::track
Definition: TrackDef.h:20
columnar::ObjectId
a class representing a single object (electron, muons, etc.)
Definition: ContainerId.h:176
columnar::ContainerId::track::idName
static constexpr std::string_view idName
Definition: TrackDef.h:21
columnar::ContainerId::track1
Definition: TrackDef.h:26
VertexContainer.h
columnar
Definition: ClusterDef.h:16
ContainerId.h
columnar::ContainerId::regularCIBase
a template that provides a base definition of container id for a regular container
Definition: ContainerId.h:107
xAOD::track
@ track
Definition: TrackingPrimitives.h:513
columnar::AccessorTemplate
the raw column accessor template class
Definition: ColumnAccessor.h:81
columnar::ContainerId::track2
Definition: TrackDef.h:31
TrackParticleContainer.h