ATLAS Offline Software
Loading...
Searching...
No Matches
InDetDD::InDetDetectorManager Class Referenceabstract

Virtual base class for all ID detector managers. More...

#include <InDetDetectorManager.h>

Inheritance diagram for InDetDD::InDetDetectorManager:
Collaboration diagram for InDetDD::InDetDetectorManager:

Classes

class  AlignInfo
class  LevelInfo
 Private helper class definition. More...

Public Member Functions

 InDetDetectorManager (StoreGateSvc *detStore, const std::string &name)
virtual ~InDetDetectorManager ()
const VersiongetVersion () const
 Get version information.
const std::string & getLayout () const
void setVersion (const Version &version)
void addChannel (const std::string &key, int level, FrameType frame)
 Alignment access.
void addFolder (const std::string &key)
void addSpecialFolder (const std::string &key)
void addGlobalFolder (const std::string &key)
void addAlignFolderType (const AlignFolderType alignfolder)
StatusCode align ()
StatusCode align (const RawAlignmentObjects &alignObjects, GeoVAlignmentStore *alignStore) const
virtual void invalidateAll ()=0
 Invalidate cache for all detector elements.
virtual void updateAll () const =0
 Update all caches.
virtual bool identifierBelongs (const Identifier &id) const =0
 Check identifier is for this detector.
bool msgLvl (const MSG::Level lvl) const
 Test the output level.
MsgStream & msg () const
 The standard message stream.
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream.
void setLevel (MSG::Level lvl)
 Change the current logging level.

Public Attributes

AlignFolderType m_alignfoldertype

Protected Attributes

StoreGateSvcm_detStore
std::atomic_bool m_suppressWarnings

Private Member Functions

const LevelInfogetLevel (const std::string &key) const
 Retrieve level information.
bool processAlignmentContainer (const std::string &key) const
 return align folder string to use
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.
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.
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 AtlasDetectorIDgetIdHelper () const =0
void initMessaging () const
 Initialize our message level and MessageSvc.

Private Attributes

Version m_version
std::map< std::string, LevelInfom_keys
std::set< std::string > m_folders
std::set< std::string > m_specialFolders
std::set< std::string > m_globalFolders
std::string m_nm
 Message source name.
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels)
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer.
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level.
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging)

Static Private Attributes

static const LevelInfo s_invalidLevel

Detailed Description

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 57 of file InDetDetectorManager.h.

Constructor & Destructor Documentation

◆ InDetDetectorManager()

InDetDD::InDetDetectorManager::InDetDetectorManager ( StoreGateSvc * detStore,
const std::string & name )

Definition at line 20 of file InDetDetectorManager.cxx.

21 : AthMessaging(name+"DetectorManager"),
24 {
25 setName(name);
26 }
AthMessaging()
Default constructor:

◆ ~InDetDetectorManager()

InDetDD::InDetDetectorManager::~InDetDetectorManager ( )
virtualdefault

Member Function Documentation

◆ addAlignFolderType()

void InDetDD::InDetDetectorManager::addAlignFolderType ( const AlignFolderType alignfolder)

Definition at line 81 of file InDetDetectorManager.cxx.

82 {
83 m_alignfoldertype = alignfolder;
84 }

◆ addChannel()

void InDetDD::InDetDetectorManager::addChannel ( const std::string & key,
int level,
FrameType frame )

Alignment access.

Definition at line 56 of file InDetDetectorManager.cxx.

57 {
58 std::string frameStr = "other";
59 if (frame == InDetDD::global) frameStr = "global";
60 if (frame == InDetDD::local) frameStr = "local";
61 ATH_MSG_INFO("Registering alignment channel with key " << key << ", level " << level
62 << ", with frame " << frameStr << ".");
63 m_keys[key] = LevelInfo(level, frame);
64 }
#define ATH_MSG_INFO(x)
std::map< std::string, LevelInfo > m_keys

◆ addFolder()

void InDetDD::InDetDetectorManager::addFolder ( const std::string & key)

Definition at line 66 of file InDetDetectorManager.cxx.

67 {
68 m_folders.insert(key);
69 }
std::set< std::string > m_folders

◆ addGlobalFolder()

void InDetDD::InDetDetectorManager::addGlobalFolder ( const std::string & key)

Definition at line 76 of file InDetDetectorManager.cxx.

77 {
78 m_globalFolders.insert(key);
79 }
std::set< std::string > m_globalFolders

◆ addSpecialFolder()

void InDetDD::InDetDetectorManager::addSpecialFolder ( const std::string & key)

Definition at line 71 of file InDetDetectorManager.cxx.

72 {
73 m_specialFolders.insert(key);
74 }
std::set< std::string > m_specialFolders

◆ align() [1/2]

StatusCode InDetDD::InDetDetectorManager::align ( )

Definition at line 95 of file InDetDetectorManager.cxx.

96 {
97 ATH_MSG_DEBUG("align() called ");
98
99 if (!getIdHelper()) return StatusCode::SUCCESS;
100
101 bool alignmentChange = false;
102 const AlignInfo &aligninfo = AlignInfo(m_alignfoldertype);
103
104 // New global aligment folders should be processed first
105 for (const auto & globalFolder : m_globalFolders) {
106
107 try {
108 bool status = processGlobalAlignmentContainer(globalFolder);
109 alignmentChange = (alignmentChange || status);
110 } catch(std::runtime_error& err) {
111 // keys are empty when running simualtion. It is normal for detector specific aligments not to exist.
112 ATH_MSG_FATAL(err.what());
113 return StatusCode::FAILURE;
114 }
115 }
116
117 // Regular alignments. Loop through folder keys. Normally only one.
118 for (const auto & folder : m_folders) {
119
120 try {
121 bool status = processAlignmentContainer(folder);
122 alignmentChange = (alignmentChange || status);
123 }
124 catch(std::runtime_error& err) {
125 // alignments should always exist so we return fatal if we could not process the alignment for this key
126 ATH_MSG_FATAL(err.what());
127 return StatusCode::FAILURE;
128 }
129 }
130 // Detector specific aligments
131 for (const auto & specialFolder : m_specialFolders) {
132 try {
133 bool status = processSpecialAlignment(specialFolder, aligninfo.AlignFolder());
134 alignmentChange = (alignmentChange || status);
135 } catch(std::runtime_error& err) {
136 // keys are empty when running simualtion. It is normal for detector specific aligments not to exist.
137 ATH_MSG_INFO(err.what());
138 // We continue as detector specific aligments don't always exist.
139 }
140 }
141
142 // We invalidate all the elements if at least one alignment changed.
143 if (alignmentChange) {
144 //this is non-const as it invalidate the elements we hold
146 }
147
148 return StatusCode::SUCCESS;
149 }
#define ATH_MSG_FATAL(x)
#define ATH_MSG_DEBUG(x)
virtual bool processSpecialAlignment(const std::string &key, InDetDD::AlignFolderType alignfolder)=0
bool processGlobalAlignmentContainer(const std::string &key, const CondAttrListCollection *obj=nullptr, GeoVAlignmentStore *alignStore=nullptr) const
virtual const AtlasDetectorID * getIdHelper() const =0
virtual void invalidateAll()=0
Invalidate cache for all detector elements.
bool processAlignmentContainer(const std::string &key) const
return align folder string to use
status
Definition merge.py:16

◆ align() [2/2]

StatusCode InDetDD::InDetDetectorManager::align ( const RawAlignmentObjects & alignObjects,
GeoVAlignmentStore * alignStore ) const

Definition at line 151 of file InDetDetectorManager.cxx.

152 {
153
154 ATH_MSG_DEBUG("align() called from an alignment CondAlg");
155 if (!getIdHelper()) return StatusCode::SUCCESS; // To Do: is it really a success?
156
157 bool alignmentChange = false;
158 // const AlignInfo &aligninfo = AlignInfo(m_alignfoldertype);
159
160 for(const auto& alignObj : alignObjects) {
161 const std::string& key = alignObj.first;
162
163 ATH_MSG_DEBUG(" Processing folder " << key);
164
165 if(m_globalFolders.find(key)!=m_globalFolders.end()) {
166 try {
167 // New global alignemnts
168 const CondAttrListCollection* obj = static_cast<const CondAttrListCollection*>(alignObj.second);
169 bool status = processGlobalAlignmentContainer(key,obj,alignStore);
170 alignmentChange = (alignmentChange || status);
171 } catch(std::runtime_error& err) {
172 // alignments should always exist so we return fatal if we could not process the alignment for this key
173 ATH_MSG_FATAL(err.what());
174 return StatusCode::FAILURE;
175 }
176 }
177 else if(m_folders.find(key)!=m_folders.end()) {
178 try {
179 // Regular alignemnts
180 const AlignableTransformContainer* container = static_cast<const AlignableTransformContainer*>(alignObj.second);
181 bool status = processAlignmentContainer(container,alignStore);
182 alignmentChange = (alignmentChange || status);
183 } catch(std::runtime_error& err) {
184 // alignments should always exist so we return fatal if we could not process the alignment for this key
185 ATH_MSG_FATAL(err.what());
186 return StatusCode::FAILURE;
187 }
188 }
189 else if(m_specialFolders.find(key)!=m_specialFolders.end()) {
190 try {
191 // Detector specific alignments
192 const CondAttrListCollection *obj =
193 static_cast<const CondAttrListCollection*>(alignObj.second);
194 bool status = processSpecialAlignment(key, obj, alignStore);
195 alignmentChange = (alignmentChange || status);
196 }
197 catch(std::runtime_error& err) {
198 // Should always exist if the folder was requested so we return fatal if
199 // we could not process the alignment for this key
200 ATH_MSG_FATAL(err.what());
201 return StatusCode::FAILURE;
202 }
203 }
204 else {
205 // Should not be any other keys specified in raw alignment object.
206 ATH_MSG_ERROR("Unrecognized folder name "<<key<<". Expected names are:");
207 for (const std::string& out:m_globalFolders) ATH_MSG_ERROR("--"<<out);
208 for (const std::string& out:m_folders) ATH_MSG_ERROR("--"<<out);
209 for (const std::string& out:m_specialFolders) ATH_MSG_ERROR("--"<<out);
210
211 return StatusCode::RECOVERABLE;
212 }
213 }
214 return StatusCode::SUCCESS;
215 }
CondMultChanCollection< AlignableTransform > AlignableTransformContainer
#define ATH_MSG_ERROR(x)

◆ getIdHelper()

virtual const AtlasDetectorID * InDetDD::InDetDetectorManager::getIdHelper ( ) const
privatepure virtual

◆ getLayout()

const std::string & InDetDD::InDetDetectorManager::getLayout ( ) const

Definition at line 38 of file InDetDetectorManager.cxx.

39 {
40 return m_version.layout();
41 }

◆ getLevel()

const InDetDetectorManager::LevelInfo & InDetDD::InDetDetectorManager::getLevel ( const std::string & key) const
private

Retrieve level information.

Definition at line 87 of file InDetDetectorManager.cxx.

88 {
89 std::map<std::string, LevelInfo>::const_iterator iter;
90 iter = m_keys.find(key);
91 if (iter == m_keys.end()) return s_invalidLevel;
92 return iter->second;
93 }
static const LevelInfo s_invalidLevel

◆ getVersion()

const Version & InDetDD::InDetDetectorManager::getVersion ( ) const

Get version information.

Definition at line 33 of file InDetDetectorManager.cxx.

34 {
35 return m_version;
36 }

◆ 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.

40{
42 // If user did not set an explicit level, set a default
43 if (m_lvl == MSG::NIL) {
44 m_lvl = m_imsg ?
45 static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
46 MSG::INFO;
47 }
48}
std::string m_nm
Message source name.
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
std::atomic< MSG::Level > m_lvl
Current logging level.
IMessageSvc * getMessageSvc(bool quiet=false)

◆ invalidateAll()

virtual void InDetDD::InDetDetectorManager::invalidateAll ( )
pure virtual

Invalidate cache for all detector elements.

Implemented in InDetDD::SiDetectorManager, InDetDD::TRT_DetectorManager, and SiDetectorManager.

◆ 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 167 of file AthMessaging.h.

168{
169 MsgStream* ms = m_msg_tls.get();
170 if (!ms) {
171 if (!m_initialized.test_and_set()) initMessaging();
172 ms = new MsgStream(m_imsg,m_nm);
173 m_msg_tls.reset( ms );
174 }
175
176 ms->setLevel (m_lvl);
177 return *ms;
178}
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
void initMessaging() const
Initialize our message level and MessageSvc.

◆ 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 182 of file AthMessaging.h.

183{ return msg() << lvl; }
MsgStream & msg() const
The standard message stream.

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152{
153 // If user did not set explicit message level we have to initialize
154 // the messaging and retrieve the default via the MessageSvc.
155 if (m_lvl==MSG::NIL && !m_initialized.test_and_set()) initMessaging();
156
157 if (m_lvl <= lvl) {
158 msg() << lvl;
159 return true;
160 } else {
161 return false;
162 }
163}

◆ processAlignmentContainer() [1/2]

bool InDetDD::InDetDetectorManager::processAlignmentContainer ( const AlignableTransformContainer * container,
GeoVAlignmentStore * alignStore ) const
private

Definition at line 245 of file InDetDetectorManager.cxx.

246 {
247 bool alignmentChange = false;
248
249 // Check if container is empty - this can occur if it is an invalid IOV.
250 if (container->empty()) {
251 ATH_MSG_ERROR("AlignableTransformContainer "
252 << " is empty. Probably due to out of range IOV"); // To Do: add key to this printout for making it more informative
253 // This should not occur in normal situations so we force job to abort.
254 throw std::runtime_error("Unable to apply Inner Detector alignments.");
255 }
256 // loop over all the AlignableTransform objects in the collection
257 // use only the last ones.
258 // /Indet/AlignL3/SCTEA9 appear repeatedly in tags of the /Indet/AlignL3 folder
259 std::map<const std::string, const AlignableTransform*> stringToTransform;
260 for (const auto *pat : *container) {
261 stringToTransform[pat->tag()] = pat;
262 }
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);
266 }
267 return alignmentChange;
268 }
bool empty() const noexcept
Returns true if the collection is empty.
bool processKey(const std::string &key, const AlignableTransform *transformCollection, GeoVAlignmentStore *alignStore=nullptr) const
Called by processAlignmentContainer, applies only one key on the transform Collections.

◆ 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 217 of file InDetDetectorManager.cxx.

218 {
219 bool alignmentChange = false;
220
221 ATH_MSG_DEBUG("Dealing with key as container");
222 const AlignableTransformContainer* container;
223 if (StatusCode::SUCCESS!=m_detStore->retrieve(container, key)) {
224 ATH_MSG_ERROR("Cannot find AlignableTransformContainer for key "
225 << key << " - no misalignment");
226 // This should not occur in normal situations so we force job to abort.
227 throw std::runtime_error("Unable to apply Inner Detector alignments");
228 }
229 // Check if container is empty - this can occur if it is an invalid IOV.
230 if (container->empty()) {
231 ATH_MSG_ERROR("AlignableTransformContainer for key "
232 << key << " is empty. Probably due to out of range IOV");
233 // This should not occur in normal situations so we force job to abort.
234 throw std::runtime_error("Unable to apply Inner Detector alignments.");
235 }
236 // loop over all the AlignableTransform objects in the collection
237 for (const auto *pat : *container) {
238
239 bool status = processKey(pat->tag(),pat);
240 alignmentChange = (alignmentChange || status);
241 }
242 return alignmentChange;
243 }

◆ 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 333 of file InDetDetectorManager.cxx.

336 {
337 bool alignmentChange = false;
338
339 ATH_MSG_DEBUG("processing GlobalAlignmentContainer with key: " << key);
340 // From the key determine what level in hierarchy we are dealing with.
341 // returns -1 if unrecognized.
342 const LevelInfo & levelInfo = getLevel(key);
343 if (levelInfo.isValid()) {
344 ATH_MSG_VERBOSE("Processing channel: " << key);
345 } else {
346 ATH_MSG_DEBUG("Channel " << key << " not registered in this manager");
347 }
348 // return silently if unrecognised - this can happen in container mode
349 // when a single container holds transforms for both pixel and SCT
350 if (!levelInfo.isValid() ) return false;
351
352 // Within detector specific code
353 bool status = processGlobalAlignment(key, levelInfo.level(), levelInfo.frame(), obj, alignStore);
354
355 alignmentChange = (alignmentChange || status);
356
357 return alignmentChange;
358
359 }
#define ATH_MSG_VERBOSE(x)
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.

◆ 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 270 of file InDetDetectorManager.cxx.

273 {
274 bool alignmentChange = false;
275
276 // From the key determine what level in hierarchy we are dealing with.
277 // returns -1 if unrecognized.
278 const LevelInfo & levelInfo = getLevel(key);
279 if (levelInfo.isValid()) {
280 ATH_MSG_VERBOSE("Processing channel: " << key);
281 } else {
282 ATH_MSG_DEBUG("Channel " << key << " not registered in this manager");
283 }
284 // return silently if unrecognised - this can happen in container mode
285 // when a single container holds transforms for both pixel and SCT
286 if (!levelInfo.isValid() ) return false;
287
288 //Loop over the effected nodes.
289 for (AlignableTransform::AlignTransMem_citr trans_iter = transformCollection->begin();
290 trans_iter != transformCollection->end();
291 ++trans_iter) {
292 ATH_MSG_DEBUG( "Get alignment for identifier "
293 << getIdHelper()->show_to_string(trans_iter->identify())
294 << " at level " << levelInfo.level());
295
296 // The delta in the conditions DB is not necessarily the same as what is needed in the
297 // alignable transform. At the moment we support global frame, local frame or an alternative frame
298 // The setAlignableTransformDelta method takes care of this correction - this is CLHEP <--> Amg interfaced
299 bool status = setAlignableTransformDelta(levelInfo.level(),
300 trans_iter->identify(),
301 Amg::CLHEPTransformToEigen(trans_iter->transform()),
302 levelInfo.frame(),
303 alignStore);
304
305 alignmentChange = (alignmentChange || status);
306
307 if (!status) {
308 if (!identifierBelongs(trans_iter->identify())) {
309 // Its probably OK. Eg /Indet/Align/ID contains alse pixel and sct ids.
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());
314 } else {
315 if (m_suppressWarnings) {
316 ATH_MSG_DEBUG("WARNING: Cannot set AlignableTransform for identifier "
317 << getIdHelper()->show_to_string(trans_iter->identify())
318 << " at level " << levelInfo.level());
319 } else {
320 ATH_MSG_WARNING("Cannot set AlignableTransform for identifier "
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.");
324 m_suppressWarnings = true;
325 }
326 }
327 }
328 }
329 return alignmentChange;
330 }
#define ATH_MSG_WARNING(x)
std::vector< AlignTransMember >::const_iterator AlignTransMem_citr
AlignTransMem_citr end() const
AlignTransMem_citr begin() const
virtual bool identifierBelongs(const Identifier &id) const =0
Check identifier is for this detector.
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...
Amg::Transform3D CLHEPTransformToEigen(const HepGeom::Transform3D &CLHEPtransf)
Converts a CLHEP-based HepGeom::Transform3D into an Eigen Amg::Transform3D.

◆ 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]

bool InDetDD::InDetDetectorManager::processSpecialAlignment ( const std::string & key,
InDetDD::AlignFolderType alignfolder )
privatepure virtual

◆ setAlignableTransformDelta()

virtual bool InDetDD::InDetDetectorManager::setAlignableTransformDelta ( int level,
const Identifier & id,
const Amg::Transform3D & delta,
FrameType frame,
GeoVAlignmentStore * alignStore = nullptr ) const
privatepure virtual

Set method applying the delta transform (in global or local frame) onto the geoModel transform : CLHEP <--> Amg interface.

Implemented in InDetDD::PixelDetectorManager, InDetDD::SCT_DetectorManager, InDetDD::SiDetectorManager, InDetDD::TRT_DetectorManager, PixelDetectorManager, and SCT_DetectorManager.

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29{
30 m_lvl = lvl;
31}

◆ setVersion()

void InDetDD::InDetDetectorManager::setVersion ( const Version & version)

Definition at line 43 of file InDetDetectorManager.cxx.

44 {
46
47 // Since default alignments are for final layout, Pixel Rome-Initial
48 // layout will result in several (harmless) WARNING message. We suppress these.
49 // Also the SR1 layout produce warnings due to missing parts. We suppress these also.
50 m_suppressWarnings = ( (getName() == "Pixel" &&
51 (version.tag() == "Pixel-01" || version.tag() == "Pixel-DC2-Initial-00"))
52 || version.layout() == "SR1" || version.layout() == "SR1-EndcapC");
53
54 }

◆ updateAll()

virtual void InDetDD::InDetDetectorManager::updateAll ( ) const
pure virtual

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_alignfoldertype

AlignFolderType InDetDD::InDetDetectorManager::m_alignfoldertype

Definition at line 93 of file InDetDetectorManager.h.

◆ m_detStore

StoreGateSvc* InDetDD::InDetDetectorManager::m_detStore
protected

Definition at line 96 of file InDetDetectorManager.h.

◆ m_folders

std::set<std::string> InDetDD::InDetDetectorManager::m_folders
private

Definition at line 179 of file InDetDetectorManager.h.

◆ m_globalFolders

std::set<std::string> InDetDD::InDetDetectorManager::m_globalFolders
private

Definition at line 181 of file InDetDetectorManager.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

135{ nullptr };

◆ m_keys

std::map<std::string, LevelInfo> InDetDD::InDetDetectorManager::m_keys
private

Definition at line 178 of file InDetDetectorManager.h.

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

138{ MSG::NIL };

◆ 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

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_specialFolders

std::set<std::string> InDetDD::InDetDetectorManager::m_specialFolders
private

Definition at line 180 of file InDetDetectorManager.h.

◆ m_suppressWarnings

std::atomic_bool InDetDD::InDetDetectorManager::m_suppressWarnings
mutableprotected

Definition at line 97 of file InDetDetectorManager.h.

◆ m_version

Version InDetDD::InDetDetectorManager::m_version
private

Definition at line 177 of file InDetDetectorManager.h.

◆ s_invalidLevel

const InDetDetectorManager::LevelInfo InDetDD::InDetDetectorManager::s_invalidLevel
staticprivate

Definition at line 183 of file InDetDetectorManager.h.


The documentation for this class was generated from the following files: