51 (version.tag() ==
"Pixel-01" || version.tag() ==
"Pixel-DC2-Initial-00"))
52 || version.layout() ==
"SR1" || version.layout() ==
"SR1-EndcapC");
58 std::string frameStr =
"other";
61 ATH_MSG_INFO(
"Registering alignment channel with key " << key <<
", level " << level
62 <<
", with frame " << frameStr <<
".");
89 std::map<std::string, LevelInfo>::const_iterator iter;
101 bool alignmentChange =
false;
109 alignmentChange = (alignmentChange || status);
110 }
catch(std::runtime_error& err) {
113 return StatusCode::FAILURE;
122 alignmentChange = (alignmentChange || status);
124 catch(std::runtime_error& err) {
127 return StatusCode::FAILURE;
134 alignmentChange = (alignmentChange || status);
135 }
catch(std::runtime_error& err) {
143 if (alignmentChange) {
148 return StatusCode::SUCCESS;
157 bool alignmentChange =
false;
160 for(
const auto& alignObj : alignObjects) {
161 const std::string& key = alignObj.first;
170 alignmentChange = (alignmentChange || status);
171 }
catch(std::runtime_error& err) {
174 return StatusCode::FAILURE;
182 alignmentChange = (alignmentChange || status);
183 }
catch(std::runtime_error& err) {
186 return StatusCode::FAILURE;
195 alignmentChange = (alignmentChange || status);
197 catch(std::runtime_error& err) {
201 return StatusCode::FAILURE;
206 ATH_MSG_ERROR(
"Unrecognized folder name "<<key<<
". Expected names are:");
211 return StatusCode::RECOVERABLE;
214 return StatusCode::SUCCESS;
219 bool alignmentChange =
false;
224 ATH_MSG_ERROR(
"Cannot find AlignableTransformContainer for key "
225 << key <<
" - no misalignment");
227 throw std::runtime_error(
"Unable to apply Inner Detector alignments");
232 << key <<
" is empty. Probably due to out of range IOV");
234 throw std::runtime_error(
"Unable to apply Inner Detector alignments.");
240 alignmentChange = (alignmentChange || status);
242 return alignmentChange;
247 bool alignmentChange =
false;
252 <<
" is empty. Probably due to out of range IOV");
254 throw std::runtime_error(
"Unable to apply Inner Detector alignments.");
259 std::map<const std::string, const AlignableTransform*> stringToTransform;
261 stringToTransform[pat->tag()] = pat;
263 for (
const std::pair<const std::string, const AlignableTransform*>& value: stringToTransform) {
264 bool status =
processKey(value.first, value.second, alignStore);
265 alignmentChange = (alignmentChange || status);
267 return alignmentChange;
272 GeoVAlignmentStore* alignStore)
const
274 bool alignmentChange =
false;
282 ATH_MSG_DEBUG(
"Channel " << key <<
" not registered in this manager");
286 if (!levelInfo.
isValid() )
return false;
290 trans_iter != transformCollection->
end();
293 <<
getIdHelper()->show_to_string(trans_iter->identify())
294 <<
" at level " << levelInfo.
level());
300 trans_iter->identify(),
305 alignmentChange = (alignmentChange || status);
310 ATH_MSG_DEBUG(
"Cannot set AlignableTransform for identifier."
311 <<
" Probably OK if its /Indet/Align/ID folder. "
312 <<
getIdHelper()->show_to_string(trans_iter->identify())
313 <<
" at level " << levelInfo.
level());
316 ATH_MSG_DEBUG(
"WARNING: Cannot set AlignableTransform for identifier "
317 <<
getIdHelper()->show_to_string(trans_iter->identify())
318 <<
" at level " << levelInfo.
level());
321 <<
getIdHelper()->show_to_string(trans_iter->identify())
322 <<
" at level " << levelInfo.
level());
323 ATH_MSG_WARNING(
"Subsequent WARNINGS will be printed at DEBUG level.");
329 return alignmentChange;
335 GeoVAlignmentStore* alignStore)
const
337 bool alignmentChange =
false;
339 ATH_MSG_DEBUG(
"processing GlobalAlignmentContainer with key: " << key);
346 ATH_MSG_DEBUG(
"Channel " << key <<
" not registered in this manager");
350 if (!levelInfo.
isValid() )
return false;
355 alignmentChange = (alignmentChange || status);
357 return alignmentChange;
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
This class is a collection of AttributeLists where each one is associated with a channel number.
AlignFolderType AlignFolder() const
Private helper class definition.
virtual bool identifierBelongs(const Identifier &id) const =0
Check identifier is for this detector.
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 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)
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.
Amg::Transform3D CLHEPTransformToEigen(const HepGeom::Transform3D &CLHEPtransf)
Converts a CLHEP-based HepGeom::Transform3D into an Eigen Amg::Transform3D.
std::map< std::string, const void * > RawAlignmentObjects