ATLAS Offline Software
EgammaDef.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_EGAMMA_EGAMMA_DEF_H
9 #define COLUMNAR_EGAMMA_EGAMMA_DEF_H
10 
15 
16 namespace columnar
17 {
18  namespace ContainerId
19  {
20  struct electron : regularCIBase<xAOD::Electron,xAOD::ElectronContainer>
21  {
22  static constexpr std::string_view idName = "electron";
23  };
24 
25  struct photon : regularCIBase<xAOD::Photon,xAOD::PhotonContainer>
26  {
27  static constexpr std::string_view idName = "photon";
28  };
29 
30  struct egamma : regularCIBase<xAOD::Egamma,xAOD::EgammaContainer>
31  {
32  static constexpr std::string_view idName = "egamma";
33  };
34  using mutableEgamma = mutableCI<egamma>;
35  }
36 
40  template<typename CT,typename CM=ColumnarModeDefault> using ElectronAccessor = AccessorTemplate<ContainerId::electron,CT,ColumnAccessMode::input,CM>;
41  template<typename CT,typename CM=ColumnarModeDefault> using ElectronDecorator = AccessorTemplate<ContainerId::electron,CT,ColumnAccessMode::output,CM>;
42 
46  template<typename CT,typename CM=ColumnarModeDefault> using PhotonAccessor = AccessorTemplate<ContainerId::photon,CT,ColumnAccessMode::input,CM>;
47  template<typename CT,typename CM=ColumnarModeDefault> using PhotonDecorator = AccessorTemplate<ContainerId::photon,CT,ColumnAccessMode::output,CM>;
48 
52  template<typename CT,typename CM=ColumnarModeDefault> using EgammaAccessor = AccessorTemplate<ContainerId::egamma,CT,ColumnAccessMode::input,CM>;
53  template<typename CT,typename CM=ColumnarModeDefault> using EgammaDecorator = AccessorTemplate<ContainerId::egamma,CT,ColumnAccessMode::output,CM>;
54 
58  template<typename CT,typename CM=ColumnarModeDefault> using MutableEgammaAccessor = AccessorTemplate<ContainerId::mutableEgamma,CT,ColumnAccessMode::input,CM>;
59  template<typename CT,typename CM=ColumnarModeDefault> using MutableEgammaDecorator = AccessorTemplate<ContainerId::mutableEgamma,CT,ColumnAccessMode::output,CM>;
60 }
61 
62 #endif
columnar::OptObjectId
a class representing a single optional object (electron, muons, etc.)
Definition: ContainerId.h:179
columnar::ObjectRange
a class representing a continuous sequence of objects (a.k.a. a container)
Definition: ContainerId.h:177
columnar::ContainerId::electron
Definition: EgammaDef.h:21
EgammaContainer.h
ElectronContainer.h
columnar::ContainerId::electron::idName
static constexpr std::string_view idName
Definition: EgammaDef.h:22
columnar::ContainerId::egamma
Definition: EgammaDef.h:31
columnar::ContainerId::egamma::idName
static constexpr std::string_view idName
Definition: EgammaDef.h:32
columnar::ObjectId
a class representing a single object (electron, muons, etc.)
Definition: ContainerId.h:178
columnar::ContainerId::mutableEgamma
mutableCI< egamma > mutableEgamma
Definition: EgammaDef.h:34
columnar
Definition: ClusterDef.h:16
ContainerId.h
columnar::ContainerId::photon
Definition: EgammaDef.h:26
columnar::ContainerId::regularCIBase
a template that provides a base definition of container id for a regular container
Definition: ContainerId.h:107
columnar::AccessorTemplate
the raw column accessor template class
Definition: ColumnAccessor.h:81
columnar::ContainerId::photon::idName
static constexpr std::string_view idName
Definition: EgammaDef.h:27
PhotonContainer.h