ATLAS Offline Software
Loading...
Searching...
No Matches
GeometryDefs.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef ACTSGEOMETRYINTERFACES_GEOMETRYDEFS_H
5#define ACTSGEOMETRYINTERFACES_GEOMETRYDEFS_H
6
10#include <string>
11#include <string_view>
12#include <ostream>
13#ifndef SIMULATIONBASE
15# include "Acts/Utilities/OstreamFormatter.hpp"
16#endif
17
18#define ENUM_ITEM_STR(item) \
19 case item: return #item;
20
22#ifdef SIMULATIONBASE
23namespace Acts{
24 using Transform3 = Amg::Isometry3D;
25}
26#else
27 static_assert(std::is_same_v<Acts::Transform3, Amg::Isometry3D>);
28#endif
29
30namespace ActsTrk {
48
50 enum class SystemEnvelope: std::uint8_t {
51 ITkExit, // Envelope volume of the ITk
52 HgtdExit, // Envelope of the HGTD volume
53 HgtdSideA, // Hgtd volume at the A-side
54 HgtdSideC, // Hgtc volume at the C-side
55 CaloExit, // Enevelope volume of the Calorimeter / Ms entrance
56 MsExit // Envelope around the Muon system
57 };
58
64 constexpr std::size_t s_stripVolumeId = 20;
65 constexpr std::size_t s_innerPixelVolumeId = 5;
66 constexpr std::size_t s_outerPixelVolumeId = 10;
67 constexpr std::size_t s_beamPipeVolumeId = 1;
68 constexpr std::size_t s_ITkEnvelopeId = 29;
70 constexpr std::size_t s_hgtdPosVolumeId = 30;
71 constexpr std::size_t s_hgtdNegVolumeId = 31;
72 constexpr std::size_t s_hgtdEnvelopeId = 32;
74 constexpr std::size_t s_caloEnvelopeID = 39;
75 constexpr std::size_t s_caloBarrelId = 40;
76 constexpr std::size_t s_caloEndcapAId = 41;
77 constexpr std::size_t s_caloEndcapCId = 42;
78 /* Volume Ids used within the muon system */
79 constexpr std::size_t s_muonBarrelId = 80;
80 constexpr std::size_t s_muonEndcapAId = 81;
81 constexpr std::size_t s_muonEndcapCId = 82;
82 constexpr std::size_t s_muonEndcapMiddleAId = 83;
83 constexpr std::size_t s_muonEndcapMiddleCId = 84;
84 }
85 namespace detail{
87 inline std::string toString(const DetectorType type) {
88 switch (type) {
89 using enum DetectorType;
101 }
102 return "Unknown";
103 }
104 inline std::string toString(const SystemEnvelope type) {
105 switch (type) {
106 using enum SystemEnvelope;
113 }
114 return "Unknown";
115 }
116 }
118 inline std::ostream& operator<<(std::ostream& ostr, const DetectorType type) {
119 return (ostr<<detail::toString(type));
120 }
121
122 inline std::ostream& operator<<(std::ostream& ostr, const SystemEnvelope type) {
123 return (ostr<<detail::toString(type));
124 }
125
126} // namespace ActsTrk
127
128#ifndef SIMULATIONBASE
131#endif
132
133#undef ENUM_ITEM_STR
134#endif
ACTS_OSTREAM_FORMATTER(ActsTrk::DetectorType)
#define ENUM_ITEM_STR(item)
Load ATLAS Eigen library with custom geometry functions.
Define the volume parts of the GeometryIdentifier for each ATLAS subsystem centrally.
constexpr std::size_t s_outerPixelVolumeId
constexpr std::size_t s_caloEndcapAId
constexpr std::size_t s_muonEndcapAId
constexpr std::size_t s_muonEndcapCId
constexpr std::size_t s_hgtdEnvelopeId
constexpr std::size_t s_muonEndcapMiddleCId
constexpr std::size_t s_hgtdNegVolumeId
constexpr std::size_t s_caloEnvelopeID
Volume Ids ofthe Calorimeter.
constexpr std::size_t s_caloBarrelId
constexpr std::size_t s_hgtdPosVolumeId
HGTD volume IDs.
constexpr std::size_t s_caloEndcapCId
constexpr std::size_t s_beamPipeVolumeId
constexpr std::size_t s_stripVolumeId
Volume Ids used within the ITk.
constexpr std::size_t s_ITkEnvelopeId
constexpr std::size_t s_muonBarrelId
constexpr std::size_t s_muonEndcapMiddleAId
constexpr std::size_t s_innerPixelVolumeId
std::string toString(const DetectorType type)
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
std::ostream & operator<<(std::ostream &ostr, const DetectorType type)
Pipe the detector type to an outstream object.
DetectorType
Simple enum to Identify the Type of the ACTS sub detector.
@ Mm
Maybe not needed in the migration.
@ Tgc
Resitive Plate Chambers.
@ sTgc
Micromegas (NSW).
@ Rpc
Monitored Drift Tubes.
@ Csc
Thin gap champers.
@ Mdt
MuonSpectrometer.
@ UnDefined
Small Thing Gap chambers (NSW).
SystemEnvelope
Define an enumeration to retrieve the envelope tracking volume from.
Eigen::Isometry3d Isometry3D