ATLAS Offline Software
Loading...
Searching...
No Matches
HGTD_DetectorManager.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef HGTD_READOUTGEOMETRY_HGTD_DETECTORMANAGER_H
6#define HGTD_READOUTGEOMETRY_HGTD_DETECTORMANAGER_H
7
9
10#include "GeoModelKernel/GeoVPhysVol.h"
11#include "GeoModelKernel/GeoVDetectorManager.h"
12
15
17
19
20// Message Stream Member
22
23// Add storage for alignable transforms
26#include "GeoModelKernel/GeoAlignableTransform.h"
27#include "GeoModelKernel/GeoVAlignmentStore.h"
29
30#include "GaudiKernel/StatusCode.h"
31
32class StoreGateSvc;
33
41
42class HGTD_DetectorManager : public GeoVDetectorManager, public AthMessaging {
43public:
44
47
50
52 virtual unsigned int getNumTreeTops() const override;
53 virtual PVConstLink getTreeTop(unsigned int i) const override;
54
56 void addTreeTop (PVConstLink treeTop);
57
58 //
59 // Access Readout Elements
60 //
61
64
67
70 int layer,
71 int phi_module,
72 int eta_module) const;
73
76
79
81 void addAlignableTransform(int level,
82 const Identifier& id,
83 GeoAlignableTransform* transform,
84 const GeoVFullPhysVol* child);
85
87 bool setAlignableTransformDelta(int level,
88 const Identifier& id,
89 const Amg::Transform3D& delta,
90 GeoVAlignmentStore* alignStore) const;
91
93 StatusCode align(const AlignableTransformContainer* container,
94 GeoVAlignmentStore* alignStore) const;
95
97 void invalidateAll();
98
100 void updateAll() const;
101
103 void setCommonItems(std::unique_ptr<const InDetDD::SiCommonItems>&& commonItems);
104
105private:
106
110
111 const HGTD_ID * getIdHelper() const;
112
113 // Private member data
114 std::vector<PVConstLink> m_volume;
115 // Note that the elements can be altered
118
119 // Alignment storage
120 std::vector<std::unique_ptr<InDetDD::ExtendedAlignableTransform>> m_alignableTransforms;
121
122 std::unique_ptr<const InDetDD::SiCommonItems> m_commonItems;
123
124};
125
126#ifndef GAUDI_NEUTRAL
129#endif
130
131#endif // HGTD_READOUTGEOMETRY_HGTD_DETECTORMANAGER_H
CondMultChanCollection< AlignableTransform > AlignableTransformContainer
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
The Detector manager has methods to retrieve the Identifier helper and methods to retrieve the detect...
virtual unsigned int getNumTreeTops() const override
Access to raw geometry:
void addTreeTop(PVConstLink treeTop)
Add a Tree top:
HGTD_DetectorManager(const HGTD_DetectorManager &right)
const InDetDD::HGTD_DetectorElement * getDetectorElement(const Identifier &id) const
access to individual elements : via Identifier
bool setAlignableTransformDelta(int level, const Identifier &id, const Amg::Transform3D &delta, GeoVAlignmentStore *alignStore) const
Apply alignment correction.
const InDetDD::HGTD_DetectorElementCollection * getDetectorElementCollection() const
Get the collection of element that is held.
void invalidateAll()
Invalidate cache for all detector elements.
void updateAll() const
Update all caches.
~HGTD_DetectorManager()
Destructor.
std::vector< PVConstLink > m_volume
HGTD_DetectorManager(StoreGateSvc *detStore)
Constructor.
std::unique_ptr< const InDetDD::SiCommonItems > m_commonItems
void addDetectorElement(InDetDD::HGTD_DetectorElement *element)
Add elememts.
std::vector< std::unique_ptr< InDetDD::ExtendedAlignableTransform > > m_alignableTransforms
const HGTD_ID * getIdHelper() const
const HGTD_DetectorManager & operator=(const HGTD_DetectorManager &right)
Prevent copy and assignment.
virtual PVConstLink getTreeTop(unsigned int i) const override
void setCommonItems(std::unique_ptr< const InDetDD::SiCommonItems > &&commonItems)
Set SiCommonItems.
void addAlignableTransform(int level, const Identifier &id, GeoAlignableTransform *transform, const GeoVFullPhysVol *child)
Register alignable transform.
InDetDD::HGTD_DetectorElementCollection m_elementCollection
StatusCode align(const AlignableTransformContainer *container, GeoVAlignmentStore *alignStore) const
Apply alignment constants from an AlignableTransformContainer.
This is an Identifier helper class for the HGTD subdetector.
Definition HGTD_ID.h:47
This is a "hash" representation of an Identifier.
Class to hold geometrical description of an HGTD detector element.
The Athena Transient Store API.
Eigen::Affine3d Transform3D
DataVector< HGTD_DetectorElement > HGTD_DetectorElementCollection