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 track3 : track
36  {
37  static constexpr std::string_view idName = "track3";
38  };
39 
40  struct vertex : regularCIBase<xAOD::Vertex,xAOD::VertexContainer>
41  {
42  static constexpr std::string_view idName = "vertex";
43  };
44  }
45 
48  template<typename CT,typename CM=ColumnarModeDefault> using TrackAccessor = AccessorTemplate<ContainerId::track,CT,ColumnAccessMode::input,CM>;
49  template<typename CT,typename CM=ColumnarModeDefault> using TrackDecorator = AccessorTemplate<ContainerId::track,CT,ColumnAccessMode::output,CM>;
50 
52  template<typename CT,typename CM=ColumnarModeDefault> using Track0Accessor = AccessorTemplate<ContainerId::track0,CT,ColumnAccessMode::input,CM>;
53  template<typename CT,typename CM=ColumnarModeDefault> using Track0Decorator = AccessorTemplate<ContainerId::track0,CT,ColumnAccessMode::output,CM>;
54 
56  template<typename CT,typename CM=ColumnarModeDefault> using Track1Accessor = AccessorTemplate<ContainerId::track1,CT,ColumnAccessMode::input,CM>;
57  template<typename CT,typename CM=ColumnarModeDefault> using Track1Decorator = AccessorTemplate<ContainerId::track1,CT,ColumnAccessMode::output,CM>;
58 
60  template<typename CT,typename CM=ColumnarModeDefault> using Track2Accessor = AccessorTemplate<ContainerId::track2,CT,ColumnAccessMode::input,CM>;
61  template<typename CT,typename CM=ColumnarModeDefault> using Track2Decorator = AccessorTemplate<ContainerId::track2,CT,ColumnAccessMode::output,CM>;
62 
64  template<typename CT,typename CM=ColumnarModeDefault> using Track3Accessor = AccessorTemplate<ContainerId::track3,CT,ColumnAccessMode::input,CM>;
65  template<typename CT,typename CM=ColumnarModeDefault> using Track3Decorator = AccessorTemplate<ContainerId::track3,CT,ColumnAccessMode::output,CM>;
66 
69  template<typename CT,typename CM=ColumnarModeDefault> using VertexAccessor = AccessorTemplate<ContainerId::vertex,CT,ColumnAccessMode::input,CM>;
70  template<typename CT,typename CM=ColumnarModeDefault> using VertexDecorator = AccessorTemplate<ContainerId::vertex,CT,ColumnAccessMode::output,CM>;
71 }
72 
73 #endif
columnar::ContainerId::vertex
Definition: TrackDef.h:41
columnar::ContainerId::vertex::idName
static constexpr std::string_view idName
Definition: TrackDef.h:42
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:179
columnar::ContainerId::track3
Definition: TrackDef.h:36
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:178
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::track3::idName
static constexpr std::string_view idName
Definition: TrackDef.h:37
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