|
ATLAS Offline Software
|
Go to the documentation of this file.
23 m_suppressWarnings(
false)
51 (
version.tag() ==
"Pixel-01" ||
version.tag() ==
"Pixel-DC2-Initial-00"))
52 ||
version.layout() ==
"SR1" ||
version.layout() ==
"SR1-EndcapC");
58 std::string frameStr =
"other";
62 <<
", with frame " << frameStr <<
".");
89 std::map<std::string, LevelInfo>::const_iterator iter;
104 bool alignmentChange =
false;
116 alignmentChange = (alignmentChange ||
status);
117 }
catch(std::runtime_error&
err) {
120 return StatusCode::FAILURE;
129 alignmentChange = (alignmentChange ||
status);
131 catch(std::runtime_error&
err) {
134 return StatusCode::FAILURE;
141 alignmentChange = (alignmentChange ||
status);
142 }
catch(std::runtime_error&
err) {
151 for (std::list<std::string>::const_iterator itr=
keys.begin(); itr!=
keys.end(); ++itr) {
153 const std::string &
key = *itr;
162 alignmentChange = (alignmentChange ||
status);
163 }
catch(std::runtime_error&
err) {
166 return StatusCode::FAILURE;
174 alignmentChange = (alignmentChange ||
status);
175 }
catch(std::runtime_error&
err) {
178 return StatusCode::FAILURE;
185 alignmentChange = (alignmentChange ||
status);
187 catch(std::runtime_error&
err) {
190 return StatusCode::FAILURE;
195 return StatusCode::RECOVERABLE;
201 if (alignmentChange) {
205 return StatusCode::SUCCESS;
214 bool alignmentChange =
false;
217 for(
const auto& alignObj : alignObjects) {
218 const std::string&
key = alignObj.first;
227 alignmentChange = (alignmentChange ||
status);
228 }
catch(std::runtime_error&
err) {
231 return StatusCode::FAILURE;
239 alignmentChange = (alignmentChange ||
status);
240 }
catch(std::runtime_error&
err) {
243 return StatusCode::FAILURE;
252 alignmentChange = (alignmentChange ||
status);
254 catch(std::runtime_error&
err) {
258 return StatusCode::FAILURE;
268 return StatusCode::RECOVERABLE;
276 return StatusCode::SUCCESS;
281 bool alignmentChange =
false;
286 ATH_MSG_ERROR(
"Cannot find AlignableTransformContainer for key "
287 <<
key <<
" - no misalignment");
289 throw std::runtime_error(
"Unable to apply Inner Detector alignments");
292 if (container->
empty()) {
294 <<
key <<
" is empty. Probably due to out of range IOV");
296 throw std::runtime_error(
"Unable to apply Inner Detector alignments.");
299 for (
const auto *
pat : *container) {
302 alignmentChange = (alignmentChange ||
status);
304 return alignmentChange;
309 bool alignmentChange =
false;
312 if (container->
empty()) {
314 <<
" is empty. Probably due to out of range IOV");
316 throw std::runtime_error(
"Unable to apply Inner Detector alignments.");
321 std::map<const std::string, const AlignableTransform*> stringToTransform;
322 for (
const auto *
pat : *container) {
323 stringToTransform[
pat->tag()] =
pat;
325 for (
const std::pair<const std::string, const AlignableTransform*>&
value: stringToTransform) {
327 alignmentChange = (alignmentChange ||
status);
329 return alignmentChange;
334 GeoVAlignmentStore* alignStore)
const
336 bool alignmentChange =
false;
348 if (!levelInfo.
isValid() )
return false;
352 trans_iter != transformCollection->
end();
355 <<
getIdHelper()->show_to_string(trans_iter->identify())
356 <<
" at level " << levelInfo.
level());
362 trans_iter->identify(),
367 alignmentChange = (alignmentChange ||
status);
372 ATH_MSG_DEBUG(
"Cannot set AlignableTransform for identifier."
373 <<
" Probably OK if its /Indet/Align/ID folder. "
374 <<
getIdHelper()->show_to_string(trans_iter->identify())
375 <<
" at level " << levelInfo.
level());
378 ATH_MSG_DEBUG(
"WARNING: Cannot set AlignableTransform for identifier "
379 <<
getIdHelper()->show_to_string(trans_iter->identify())
380 <<
" at level " << levelInfo.
level());
383 <<
getIdHelper()->show_to_string(trans_iter->identify())
384 <<
" at level " << levelInfo.
level());
385 ATH_MSG_WARNING(
"Subsequent WARNINGS will be printed at DEBUG level.");
391 return alignmentChange;
397 GeoVAlignmentStore* alignStore)
const
399 bool alignmentChange =
false;
412 if (!levelInfo.
isValid() )
return false;
417 alignmentChange = (alignmentChange ||
status);
419 return alignmentChange;
void addSpecialFolder(const std::string &key)
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
virtual bool identifierBelongs(const Identifier &id) const =0
Check identifier is for this detector.
A CondMultChanCollection is a template class which can hold a collection of T* objects which are inte...
virtual const AtlasDetectorID * getIdHelper() const =0
std::map< std::string, const void * > RawAlignmentObjects
std::atomic_bool m_suppressWarnings
void setVersion(const Version &version)
#define IOVSVC_CALLBACK_ARGS_P(I, K)
short hand for IOVSvc call back argument list, to be used when access to formal arguments is needed,...
virtual void invalidateAll() const =0
Invalidate cache for all detector elements.
const std::string & layout() const
Layout (eg Initial, Final, TestBeam)
#define ATH_MSG_VERBOSE(x)
virtual ~InDetDetectorManager()
This class is a collection of AttributeLists where each one is associated with a channel number....
void addAlignFolderType(const AlignFolderType alignfolder)
std::map< std::string, LevelInfo > m_keys
const LevelInfo & getLevel(const std::string &key) const
Retrieve level information.
StatusCode retrieve(const T *&ptr) const
Retrieve the default object into a const T*.
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
The Athena Transient Store API.
::StatusCode StatusCode
StatusCode definition for legacy code.
void addFolder(const std::string &key)
std::set< std::string > m_globalFolders
const std::string & getLayout() const
const Version & getVersion() const
Get version information.
Class to provide easy MsgStream access and capabilities.
static const LevelInfo s_invalidLevel
void addGlobalFolder(const std::string &key)
StoreGateSvc * m_detStore
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...
std::set< std::string > m_folders
StatusCode align(IOVSVC_CALLBACK_ARGS) const
virtual bool processGlobalAlignment(const std::string &key, int level, FrameType frame, const CondAttrListCollection *obj=nullptr, GeoVAlignmentStore *alignStore=nullptr) const
bool processKey(const std::string &key, const AlignableTransform *transformCollection, GeoVAlignmentStore *alignStore=nullptr) const
Called by processAlignmentContainer, applies only one key on the transform Collections.
#define ATH_MSG_WARNING(x)
Amg::Transform3D CLHEPTransformToEigen(const HepGeom::Transform3D &CLHEPtransf)
Converts a CLHEP-based HepGeom::Transform3D into an Eigen Amg::Transform3D.
std::set< std::string > m_specialFolders
bool processAlignmentContainer(const std::string &key) const
return align folder string to use
bool processGlobalAlignmentContainer(const std::string &key, const CondAttrListCollection *obj=nullptr, GeoVAlignmentStore *alignStore=nullptr) const
AlignFolderType m_alignfoldertype
InDetDetectorManager(StoreGateSvc *detStore, const std::string &name)
void addChannel(const std::string &key, int level, FrameType frame)
Alignment access.
virtual bool processSpecialAlignment(const std::string &key, InDetDD::AlignFolderType alignfolder) const =0
bool empty() const noexcept
Returns true if the collection is empty.