 |
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) {
206 return StatusCode::SUCCESS;
215 bool alignmentChange =
false;
218 for(
const auto& alignObj : alignObjects) {
219 const std::string&
key = alignObj.first;
228 alignmentChange = (alignmentChange ||
status);
229 }
catch(std::runtime_error&
err) {
232 return StatusCode::FAILURE;
240 alignmentChange = (alignmentChange ||
status);
241 }
catch(std::runtime_error&
err) {
244 return StatusCode::FAILURE;
253 alignmentChange = (alignmentChange ||
status);
255 catch(std::runtime_error&
err) {
259 return StatusCode::FAILURE;
269 return StatusCode::RECOVERABLE;
272 return StatusCode::SUCCESS;
277 bool alignmentChange =
false;
282 ATH_MSG_ERROR(
"Cannot find AlignableTransformContainer for key "
283 <<
key <<
" - no misalignment");
285 throw std::runtime_error(
"Unable to apply Inner Detector alignments");
288 if (container->
empty()) {
290 <<
key <<
" is empty. Probably due to out of range IOV");
292 throw std::runtime_error(
"Unable to apply Inner Detector alignments.");
295 for (
const auto *
pat : *container) {
298 alignmentChange = (alignmentChange ||
status);
300 return alignmentChange;
305 bool alignmentChange =
false;
308 if (container->
empty()) {
310 <<
" is empty. Probably due to out of range IOV");
312 throw std::runtime_error(
"Unable to apply Inner Detector alignments.");
317 std::map<const std::string, const AlignableTransform*> stringToTransform;
318 for (
const auto *
pat : *container) {
319 stringToTransform[
pat->tag()] =
pat;
321 for (
const std::pair<const std::string, const AlignableTransform*>&
value: stringToTransform) {
323 alignmentChange = (alignmentChange ||
status);
325 return alignmentChange;
330 GeoVAlignmentStore* alignStore)
const
332 bool alignmentChange =
false;
344 if (!levelInfo.
isValid() )
return false;
348 trans_iter != transformCollection->
end();
351 <<
getIdHelper()->show_to_string(trans_iter->identify())
352 <<
" at level " << levelInfo.
level());
358 trans_iter->identify(),
363 alignmentChange = (alignmentChange ||
status);
368 ATH_MSG_DEBUG(
"Cannot set AlignableTransform for identifier."
369 <<
" Probably OK if its /Indet/Align/ID folder. "
370 <<
getIdHelper()->show_to_string(trans_iter->identify())
371 <<
" at level " << levelInfo.
level());
374 ATH_MSG_DEBUG(
"WARNING: Cannot set AlignableTransform for identifier "
375 <<
getIdHelper()->show_to_string(trans_iter->identify())
376 <<
" at level " << levelInfo.
level());
379 <<
getIdHelper()->show_to_string(trans_iter->identify())
380 <<
" at level " << levelInfo.
level());
381 ATH_MSG_WARNING(
"Subsequent WARNINGS will be printed at DEBUG level.");
387 return alignmentChange;
393 GeoVAlignmentStore* alignStore)
const
395 bool alignmentChange =
false;
408 if (!levelInfo.
isValid() )
return false;
413 alignmentChange = (alignmentChange ||
status);
415 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,...
const std::string & layout() const
Layout (eg Initial, Final, TestBeam)
#define ATH_MSG_VERBOSE(x)
virtual void invalidateAll()=0
Invalidate cache for all detector elements.
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)
StatusCode align(IOVSVC_CALLBACK_ARGS)
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
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
virtual bool processSpecialAlignment(const std::string &key, InDetDD::AlignFolderType alignfolder)=0
InDetDetectorManager(StoreGateSvc *detStore, const std::string &name)
void addChannel(const std::string &key, int level, FrameType frame)
Alignment access.
bool empty() const noexcept
Returns true if the collection is empty.