ATLAS Offline Software
Loading...
Searching...
No Matches
GbtsLayerTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ACTSTRK_GBTSLAYERTOOL_H
6#define ACTSTRK_GBTSLAYERTOOL_H
7
8// Athena
11
12#include <Gaudi/Property.h>
13
14#include <map>
15#include <tuple>
16#include <vector>
17
18class SCT_ID;
19class PixelID;
20
21namespace InDetDD {
24} // namespace InDetDD
25
26namespace ActsTrk {
27
36class GbtsLayerTool final : public extends<AthAlgTool, IGbtsLayerTool> {
37 public:
38 GbtsLayerTool(const std::string& type, const std::string& name,
39 const IInterface* parent);
40 virtual ~GbtsLayerTool() = default;
41
42 virtual StatusCode initialize() override;
43
44 virtual const std::vector<Acts::Experimental::GbtsLayerDescription>&
45 layerDescriptions() const override {
47 }
48
49 virtual const std::vector<short>& pixelLayers() const override {
50 return m_pixelLayers;
51 }
52
53 virtual const std::vector<short>& stripLayers() const override {
54 return m_stripLayers;
55 }
56
57 virtual const std::vector<GbtsTechnology>& layerTechnologies() const override {
59 }
60
61 private:
63 struct ModuleEntry {
64 short phiIndex{};
65 short etaIndex{};
66 int hash{};
67 };
68
71 using LayerKey = std::tuple<int, int, short, short>;
72
74 StatusCode buildLayers();
75
76 Gaudi::Property<bool> m_dumpGeometry{this, "dumpGbtsGeometry", false,
77 "dump the layer geometry to a file"};
78 Gaudi::Property<std::string> m_geometryDumpDir{
79 this, "geometryDump", "", "file to dump the layer geometry to"};
80
81 const PixelID* m_pixelId{nullptr};
82 const SCT_ID* m_stripId{nullptr};
85
86 std::vector<Acts::Experimental::GbtsLayerDescription> m_layerDescriptions;
88 std::vector<GbtsTechnology> m_layerTechnologies;
90 std::vector<short> m_pixelLayers, m_stripLayers;
91};
92
93} // namespace ActsTrk
94
95#endif
virtual StatusCode initialize() override
std::vector< GbtsTechnology > m_layerTechnologies
What each layer is made of, parallel to m_layerDescriptions.
const SCT_ID * m_stripId
virtual const std::vector< short > & pixelLayers() const override
std::vector< Acts::Experimental::GbtsLayerDescription > m_layerDescriptions
StatusCode buildLayers()
Group the modules into layers and fill the descriptions and hash maps.
virtual ~GbtsLayerTool()=default
const PixelID * m_pixelId
const InDetDD::PixelDetectorManager * m_pixelManager
virtual const std::vector< short > & stripLayers() const override
Gaudi::Property< std::string > m_geometryDumpDir
virtual const std::vector< Acts::Experimental::GbtsLayerDescription > & layerDescriptions() const override
Gaudi::Property< bool > m_dumpGeometry
std::tuple< int, int, short, short > LayerKey
Layer key: (side, technology, volume id, layer id).
GbtsLayerTool(const std::string &type, const std::string &name, const IInterface *parent)
const InDetDD::SCT_DetectorManager * m_stripManager
virtual const std::vector< GbtsTechnology > & layerTechnologies() const override
std::vector< short > m_stripLayers
std::vector< short > m_pixelLayers
Wafer hash addressable dense GBTS layer indices.
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:69
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Message Stream Member.
One module, as grouped into a layer.