 |
ATLAS Offline Software
|
#include <InDetDetectorManager.h>
|
const LevelInfo & | getLevel (const std::string &key) const |
| Retrieve level information. More...
|
|
bool | processAlignmentContainer (const std::string &key) const |
| return align folder string to use More...
|
|
bool | processAlignmentContainer (const AlignableTransformContainer *container, GeoVAlignmentStore *alignStore) 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. More...
|
|
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 : CLHEP <--> Amg interface. More...
|
|
virtual bool | processSpecialAlignment (const std::string &key, InDetDD::AlignFolderType alignfolder)=0 |
|
virtual bool | processSpecialAlignment (const std::string &key, const CondAttrListCollection *obj=nullptr, GeoVAlignmentStore *alignStore=nullptr) const =0 |
|
bool | processGlobalAlignmentContainer (const std::string &key, const CondAttrListCollection *obj=nullptr, GeoVAlignmentStore *alignStore=nullptr) const |
|
virtual bool | processGlobalAlignment (const std::string &key, int level, FrameType frame, const CondAttrListCollection *obj=nullptr, GeoVAlignmentStore *alignStore=nullptr) const |
|
virtual const AtlasDetectorID * | getIdHelper () const =0 |
|
void | initMessaging () const |
| Initialize our message level and MessageSvc. More...
|
|
Virtual base class for all ID detector managers.
It implements the processKey() method for alingment which calls the setAlignableTransformDelta() method which is specified in the extended classes. This method supports both, local and global delta's in the frame and translates it to the underlying GeoModel transform. As GeoModel (CLHEP) and tracking (Amg) use different geo libraries, these are the methods that act as the CLHEP <--> Amg interface
- Author
- : Grant Gorfine
- modified & maintained: Nick Styles & Andreas Salzburger
Definition at line 60 of file InDetDetectorManager.h.
◆ InDetDetectorManager()
InDetDD::InDetDetectorManager::InDetDetectorManager |
( |
StoreGateSvc * |
detStore, |
|
|
const std::string & |
name |
|
) |
| |
◆ ~InDetDetectorManager()
InDetDD::InDetDetectorManager::~InDetDetectorManager |
( |
| ) |
|
|
virtualdefault |
◆ addAlignFolderType()
◆ addChannel()
void InDetDD::InDetDetectorManager::addChannel |
( |
const std::string & |
key, |
|
|
int |
level, |
|
|
FrameType |
frame |
|
) |
| |
Alignment access.
Definition at line 56 of file InDetDetectorManager.cxx.
58 std::string frameStr =
"other";
62 <<
", with frame " << frameStr <<
".");
◆ addFolder()
void InDetDD::InDetDetectorManager::addFolder |
( |
const std::string & |
key | ) |
|
◆ addGlobalFolder()
void InDetDD::InDetDetectorManager::addGlobalFolder |
( |
const std::string & |
key | ) |
|
◆ addSpecialFolder()
void InDetDD::InDetDetectorManager::addSpecialFolder |
( |
const std::string & |
key | ) |
|
◆ align() [1/2]
StatusCode InDetDD::InDetDetectorManager::align |
( |
const RawAlignmentObjects & |
alignObjects, |
|
|
GeoVAlignmentStore * |
alignStore |
|
) |
| const |
Definition at line 209 of file InDetDetectorManager.cxx.
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;
◆ align() [2/2]
◆ getIdHelper()
◆ getLayout()
const std::string & InDetDD::InDetDetectorManager::getLayout |
( |
| ) |
const |
◆ getLevel()
◆ getVersion()
const Version & InDetDD::InDetDetectorManager::getVersion |
( |
| ) |
const |
◆ identifierBelongs()
virtual bool InDetDD::InDetDetectorManager::identifierBelongs |
( |
const Identifier & |
id | ) |
const |
|
pure virtual |
◆ initMessaging()
void AthMessaging::initMessaging |
( |
| ) |
const |
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
◆ invalidateAll()
virtual void InDetDD::InDetDetectorManager::invalidateAll |
( |
| ) |
|
|
pure virtual |
◆ msg() [1/2]
MsgStream & AthMessaging::msg |
( |
| ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 164 of file AthMessaging.h.
◆ msg() [2/2]
MsgStream & AthMessaging::msg |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 179 of file AthMessaging.h.
180 {
return msg() << lvl; }
◆ msgLvl()
bool AthMessaging::msgLvl |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicating if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
◆ processAlignmentContainer() [1/2]
Definition at line 303 of file InDetDetectorManager.cxx.
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;
◆ processAlignmentContainer() [2/2]
bool InDetDD::InDetDetectorManager::processAlignmentContainer |
( |
const std::string & |
key | ) |
const |
|
private |
return align folder string to use
Process the alignment container, calls processKey
Definition at line 275 of file InDetDetectorManager.cxx.
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;
◆ processGlobalAlignment()
bool InDetDD::InDetDetectorManager::processGlobalAlignment |
( |
const std::string & |
key, |
|
|
int |
level, |
|
|
FrameType |
frame, |
|
|
const CondAttrListCollection * |
obj = nullptr , |
|
|
GeoVAlignmentStore * |
alignStore = nullptr |
|
) |
| const |
|
privatevirtual |
◆ processGlobalAlignmentContainer()
bool InDetDD::InDetDetectorManager::processGlobalAlignmentContainer |
( |
const std::string & |
key, |
|
|
const CondAttrListCollection * |
obj = nullptr , |
|
|
GeoVAlignmentStore * |
alignStore = nullptr |
|
) |
| const |
|
private |
Definition at line 391 of file InDetDetectorManager.cxx.
395 bool alignmentChange =
false;
401 if (levelInfo.isValid()) {
408 if (!levelInfo.isValid() )
return false;
413 alignmentChange = (alignmentChange ||
status);
415 return alignmentChange;
◆ processKey()
bool InDetDD::InDetDetectorManager::processKey |
( |
const std::string & |
key, |
|
|
const AlignableTransform * |
transformCollection, |
|
|
GeoVAlignmentStore * |
alignStore = nullptr |
|
) |
| const |
|
private |
Called by processAlignmentContainer, applies only one key on the transform Collections.
Definition at line 328 of file InDetDetectorManager.cxx.
332 bool alignmentChange =
false;
337 if (levelInfo.isValid()) {
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;
◆ processSpecialAlignment() [1/2]
virtual bool InDetDD::InDetDetectorManager::processSpecialAlignment |
( |
const std::string & |
key, |
|
|
const CondAttrListCollection * |
obj = nullptr , |
|
|
GeoVAlignmentStore * |
alignStore = nullptr |
|
) |
| const |
|
privatepure virtual |
◆ processSpecialAlignment() [2/2]
◆ setAlignableTransformDelta()
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ setVersion()
void InDetDD::InDetDetectorManager::setVersion |
( |
const Version & |
version | ) |
|
◆ updateAll()
virtual void InDetDD::InDetDetectorManager::updateAll |
( |
| ) |
const |
|
pure virtual |
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_alignfoldertype
◆ m_detStore
◆ m_folders
std::set<std::string> InDetDD::InDetDetectorManager::m_folders |
|
private |
◆ m_globalFolders
std::set<std::string> InDetDD::InDetDetectorManager::m_globalFolders |
|
private |
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_keys
std::map<std::string, LevelInfo> InDetDD::InDetDetectorManager::m_keys |
|
private |
◆ m_lvl
std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_msg_tls
boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_specialFolders
std::set<std::string> InDetDD::InDetDetectorManager::m_specialFolders |
|
private |
◆ m_suppressWarnings
std::atomic_bool InDetDD::InDetDetectorManager::m_suppressWarnings |
|
mutableprotected |
◆ m_version
Version InDetDD::InDetDetectorManager::m_version |
|
private |
◆ s_invalidLevel
The documentation for this class was generated from the following files:
std::atomic< MSG::Level > m_lvl
Current logging level.
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::atomic_bool m_suppressWarnings
const std::string & layout() const
Layout (eg Initial, Final, TestBeam)
#define ATH_MSG_VERBOSE(x)
This class is a collection of AttributeLists where each one is associated with a channel number....
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
std::map< std::string, LevelInfo > m_keys
IMessageSvc * getMessageSvc(bool quiet=false)
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*.
AthMessaging()
Default constructor:
std::set< std::string > m_globalFolders
static const LevelInfo s_invalidLevel
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...
MsgStream & msg() const
The standard message stream.
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
std::string m_nm
Message source name.
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
void initMessaging() const
Initialize our message level and MessageSvc.
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
bool empty() const noexcept
Returns true if the collection is empty.