9#ifndef INDETREADOUTGEOMETRY_SCT_DETECTORMANAGER_H
10#define INDETREADOUTGEOMETRY_SCT_DETECTORMANAGER_H
14#include "GeoModelKernel/GeoVPhysVol.h"
30class GeoAlignableTransform;
33class GeoVAlignmentStore;
65 virtual PVConstLink
getTreeTop(
unsigned int i)
const override;
102 GeoAlignableTransform* xf,
103 const GeoVFullPhysVol* child);
108 GeoAlignableTransform* xf,
109 const GeoVPhysVol* child);
118 virtual bool isPixel()
const override {
return false;}
130 GeoVAlignmentStore* alignStore)
const override;
139 GeoVAlignmentStore* alignStore=
nullptr)
const override;
153 const bool phi_plus_one=
false)
const;
163 GeoVAlignmentStore* alignStore)
const override;
Provide an interface for finding inheritance information at run time.
#define SG_BASES(D,...)
Declare the base classes from which D derives.
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 is an Identifier helper class for the SCT subdetector.
This class is a collection of AttributeLists where each one is associated with a channel number.
DataModel_detail::const_iterator< DataVector > const_iterator
DataModel_detail::iterator< DataVector > iterator
This is a "hash" representation of an Identifier.
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
std::vector< std::unique_ptr< ExtendedAlignableTransform > > m_moduleAlignableTransforms
const SCT_DetectorManager & operator=(const SCT_DetectorManager &right)=delete
Prevent assign operator.
virtual void addDetectorElement(SiDetectorElement *element) override
Add elememts during construction.
virtual SiDetectorElementCollection::const_iterator getDetectorElementBegin() const override
virtual void initNeighbours() override
Initialize the neighbours. This can only be done when all elements are built.
SiDetectorElementCollection m_elementCollection
virtual void addAlignableTransform(int, const Identifier &, GeoAlignableTransform *) override
DEPRECATED For backward compatibility.
virtual const SCT_ID * getIdHelper() const override
virtual SiDetectorElementCollection::const_iterator getDetectorElementEnd() const override
SCT_DetectorManager(StoreGateSvc *detStore)
Constructor.
virtual bool isPixel() const override
Methods to query which manager we have.
virtual unsigned int getNumTreeTops() const override
virtual const SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements via Identifier
std::map< Identifier, std::unique_ptr< ExtendedAlignableTransform > > AlignableTransformMap
std::vector< PVConstLink > m_volume
bool m_isLogical
This variable switches the how the local alignment corrections are applied If true they will be calcu...
virtual void addAlignableTransform(int level, const Identifier &id, GeoAlignableTransform *xf, const GeoVFullPhysVol *child)
Add alignable transforms. No access to these, they will be changed by manager:
virtual bool setAlignableTransformDelta(int level, const Identifier &id, const Amg::Transform3D &delta, FrameType frame, GeoVAlignmentStore *alignStore) const override
implements the main alignment update for delta transforms in different frames, it translates into the...
SCT_DetectorManager(const SCT_DetectorManager &right)=delete
Prevent copy constructor.
const SCT_ModuleSideDesign * getSCT_Design(int i) const
Access to module design, casts to SCT_ModuleSideDesign.
void addTreeTop(const PVConstLink &vol)
Add tree top.
void addMotherDesign(std::unique_ptr< const SCT_ModuleSideDesign > &&)
std::vector< AlignableTransformMap > m_higherAlignableTransforms
virtual PVConstLink getTreeTop(unsigned int i) const override
const SCT_ID * m_idHelper
virtual bool identifierBelongs(const Identifier &id) const override
Check identifier is for this detector.
bool processSpecialAlignment(const std::string &key, InDetDD::AlignFolderType alignfolder) override
Comply with InDetDetectorManager interface (not implemented for SCT).
int getStripEndcapEtaNeighbour(const SiDetectorElement *element, IdentifierHash &idHashNeighbour, const bool phi_plus_one=false) const
std::vector< std::unique_ptr< const SCT_ModuleSideDesign > > m_motherDesigns
virtual const SiDetectorElementCollection * getDetectorElementCollection() const override
access to whole collectiom
std::vector< std::unique_ptr< ExtendedAlignableTransform > > m_alignableTransforms
virtual bool processGlobalAlignment(const std::string &, int level, FrameType frame, const CondAttrListCollection *obj, GeoVAlignmentStore *alignStore) const override
Process new global DB folders for L1 and L2.
bool m_doEndcapEtaNeighbour
Base class for the SCT module side design, extended by the Forward and Barrel module design.
Class to hold the SiDetectorElement objects to be put in the detector store.
Class to hold geometrical description of a silicon detector element.
SiDetectorManager(StoreGateSvc *detStore, const std::string &name)
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
This is an Identifier helper class for the SCT subdetector.
Base class for Pixel and SCT Detector managers.
The Athena Transient Store API.
Eigen::Affine3d Transform3D