11#ifndef INDETREADOUTGEOMETRY_SIDETECTORMANAGER_H
12#define INDETREADOUTGEOMETRY_SIDETECTORMANAGER_H
23#include "CLHEP/Geometry/Transform3D.h"
33class GeoAlignableTransform;
34class GeoVAlignmentStore;
96 const std::string &
tag()
const;
114 GeoVAlignmentStore* alignStore=
nullptr) ;
120 GeoVAlignmentStore* alignStore=
nullptr) ;
132 void setCommonItems(std::unique_ptr<const SiCommonItems>&& commonItems);
144 GeoVAlignmentStore* alignStore)
const = 0;
150 std::vector<std::unique_ptr<const SiDetectorDesign>>
m_designs;
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
DataModel_detail::const_iterator< DataVector > const_iterator
DataModel_detail::iterator< DataVector > iterator
This is a "hash" representation of an Identifier.
InDetDetectorManager(StoreGateSvc *detStore, const std::string &name)
Helper class to concentrate common items, such as the pointer to the IdHelper, the lorentzAngle tool ...
Base class for the detector design classes for Pixel and SCT.
Class to hold the SiDetectorElement objects to be put in the detector store.
Class to hold geometrical description of a silicon detector element.
Base class for Pixel and SCT Detector managers.
virtual void updateAll() const
Update all caches.
virtual void addDetectorElement(SiDetectorElement *element)=0
Add elememts.
virtual void invalidateAll()
Invalidate cache for all detector elements.
virtual const SiDetectorElement * getDetectorElement(const Identifier &id) const =0
access to individual elements using Identifier or IdentiferHash
virtual const SiDetectorElementCollection * getDetectorElementCollection() const =0
access to whole collectiom
virtual void initNeighbours()=0
Initialize the neighbours.
const std::string & tag() const
Get tag used in dictionary.
const SiNumerology & numerology() const
Access Numerology.
const SiDetectorManager & operator=(const SiDetectorManager &right)
SiDetectorManager(StoreGateSvc *detStore, const std::string &name)
void setCommonItems(std::unique_ptr< const SiCommonItems > &&commonItems)
Set SiCommonItems.
virtual bool setAlignableTransformDelta(int level, const Identifier &id, const Amg::Transform3D &delta, FrameType frame, GeoVAlignmentStore *alignStore) const =0
This method is called by the InDetDetectorManager.
const SiDetectorDesign * getDesign(int i) const
std::vector< std::unique_ptr< const SiDetectorDesign > > m_designs
const SiDetectorDesign * addDesign(std::unique_ptr< const SiDetectorDesign > &&)
Access to module design; returns an observer pointer.
virtual SiDetectorElementCollection::const_iterator getDetectorElementEnd() const =0
virtual SiDetectorElementCollection::const_iterator getDetectorElementBegin() const =0
virtual SiDetectorElementCollection::iterator getDetectorElementBegin()=0
SiDetectorManager(const SiDetectorManager &right)
virtual void addAlignableTransform(int level, const Identifier &id, GeoAlignableTransform *xf)=0
Add alignable transforms.
std::unique_ptr< const SiCommonItems > m_commonItems
virtual ~SiDetectorManager()
static bool setAlignableTransformGlobalDelta(ExtendedAlignableTransform *extXF, const Amg::Transform3D &delta, GeoVAlignmentStore *alignStore=nullptr)
Helper method to set delta transform from a global delta - Amg interface.
virtual bool isPixel() const =0
Methods to query which manager we have.
SiNumerology & numerology()
SiNumerology m_numerology
virtual const SiDetectorElement * getDetectorElement(const IdentifierHash &idHash) const =0
virtual SiDetectorElementCollection::iterator getDetectorElementEnd()=0
static bool setAlignableTransformLocalDelta(ExtendedAlignableTransform *extXF, const Amg::Transform3D &localToGlobalXF, const Amg::Transform3D &delta, GeoVAlignmentStore *alignStore=nullptr)
Helper method to set delta transform from a local delta - Amg interface.
Class to extract numerology for Pixel and SCT.
The Athena Transient Store API.
Eigen::Affine3d Transform3D