11#ifndef INDETREADOUTGEOMETRY_INDETDETECTORMANAGER_H
12#define INDETREADOUTGEOMETRY_INDETDETECTORMANAGER_H
17#include "GeoModelKernel/GeoVDetectorManager.h"
20#include "CLHEP/Geometry/Transform3D.h"
38class GeoVAlignmentStore;
138 const LevelInfo &
getLevel(
const std::string & key)
const;
151 GeoVAlignmentStore* alignStore=
nullptr)
const;
159 GeoVAlignmentStore* alignStore=
nullptr)
const = 0;
168 GeoVAlignmentStore* alignStore=
nullptr)
const = 0;
172 GeoVAlignmentStore* alignStore=
nullptr)
const;
176 GeoVAlignmentStore* alignStore=
nullptr)
const;
#define IOVSVC_CALLBACK_ARGS
short hand for IOVSvc call back argument list, to be used when no access to formal arguments is neede...
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
This class is a collection of AttributeLists where each one is associated with a channel number.
AlignInfo(AlignFolderType alignfolder)
bool isValidAlign() const
AlignFolderType m_aligntype
AlignFolderType AlignFolder() const
Private helper class definition.
bool isLocalDelta() const
bool isGlobalDelta() const
LevelInfo(int level, FrameType frame)
virtual bool identifierBelongs(const Identifier &id) const =0
Check identifier is for this detector.
virtual void updateAll() const =0
Update all caches.
StoreGateSvc * m_detStore
void addGlobalFolder(const std::string &key)
void addAlignFolderType(const AlignFolderType alignfolder)
AlignFolderType m_alignfoldertype
bool processKey(const std::string &key, const AlignableTransform *transformCollection, GeoVAlignmentStore *alignStore=nullptr) const
Called by processAlignmentContainer, applies only one key on the transform Collections.
InDetDetectorManager(StoreGateSvc *detStore, const std::string &name)
std::set< std::string > m_specialFolders
const std::string & getLayout() const
virtual bool processSpecialAlignment(const std::string &key, InDetDD::AlignFolderType alignfolder)=0
static const LevelInfo s_invalidLevel
void addChannel(const std::string &key, int level, FrameType frame)
Alignment access.
void addFolder(const std::string &key)
virtual bool processGlobalAlignment(const std::string &key, int level, FrameType frame, const CondAttrListCollection *obj=nullptr, GeoVAlignmentStore *alignStore=nullptr) const
const LevelInfo & getLevel(const std::string &key) const
Retrieve level information.
bool processGlobalAlignmentContainer(const std::string &key, const CondAttrListCollection *obj=nullptr, GeoVAlignmentStore *alignStore=nullptr) const
virtual bool processSpecialAlignment(const std::string &key, const CondAttrListCollection *obj=nullptr, GeoVAlignmentStore *alignStore=nullptr) const =0
virtual const AtlasDetectorID * getIdHelper() const =0
void addSpecialFolder(const std::string &key)
std::set< std::string > m_folders
std::atomic_bool m_suppressWarnings
virtual bool setAlignableTransformDelta(int level, const Identifier &id, const Amg::Transform3D &delta, FrameType frame, GeoVAlignmentStore *alignStore=nullptr) const =0
Set method applying the delta transform (in global or local frame) onto the geoModel transform : CLHE...
virtual void invalidateAll()=0
Invalidate cache for all detector elements.
std::set< std::string > m_globalFolders
void setVersion(const Version &version)
StatusCode align(IOVSVC_CALLBACK_ARGS)
const Version & getVersion() const
Get version information.
bool processAlignmentContainer(const std::string &key) const
return align folder string to use
std::map< std::string, LevelInfo > m_keys
virtual ~InDetDetectorManager()
Class to hold version information consisting of tag, name layout and description as strings,...
The Athena Transient Store API.
Eigen::Affine3d Transform3D
std::map< std::string, const void * > RawAlignmentObjects