 |
ATLAS Offline Software
|
#include <SCT_DetectorManager.h>
|
virtual const SiDetectorElementCollection * | getDetectorElementCollection () const override |
| access to whole collectiom More...
|
|
virtual SiDetectorElementCollection::const_iterator | getDetectorElementBegin () const override |
|
virtual SiDetectorElementCollection::const_iterator | getDetectorElementEnd () const override |
|
virtual SiDetectorElementCollection::iterator | getDetectorElementBegin () override |
|
virtual SiDetectorElementCollection::iterator | getDetectorElementEnd () override |
|
virtual void | addDetectorElement (SiDetectorElement *element) override |
| Add elememts during construction. More...
|
|
virtual void | addAlignableTransform (int level, const Identifier &id, GeoAlignableTransform *xf, const GeoVFullPhysVol *child) |
| Add alignable transforms. No access to these, they will be changed by manager: More...
|
|
virtual void | addAlignableTransform (int level, const Identifier &id, GeoAlignableTransform *xf, const GeoVPhysVol *child) |
| As above but does a dynamic_cast to GeoVFullPhysVol. More...
|
|
virtual void | addAlignableTransform (int, const Identifier &, GeoAlignableTransform *) override |
| DEPRECATED For backward compatibility. More...
|
|
virtual void | initNeighbours () override |
| Initialize the neighbours. This can only be done when all elements are built. More...
|
|
virtual bool | isPixel () const override |
| Methods to query which manager we have. More...
|
|
virtual bool | identifierBelongs (const Identifier &id) const override |
| Check identifier is for this detector. More...
|
|
const SCT_ModuleSideDesign * | getSCT_Design (int i) const |
| Access to module design, casts to SCT_ModuleSideDesign. More...
|
|
virtual bool | processGlobalAlignment (const std::string &, int level, FrameType frame, const CondAttrListCollection *obj, GeoVAlignmentStore *alignStore) const override |
| Process new global DB folders for L1 and L2. More...
|
|
bool | processSpecialAlignment (const std::string &key, InDetDD::AlignFolderType alignfolder) override |
| Comply with InDetDetectorManager interface (not implemented for SCT) More...
|
|
bool | processSpecialAlignment (const std::string &key, const CondAttrListCollection *obj=nullptr, GeoVAlignmentStore *alignStore=nullptr) const override |
| Comply with InDetDetectorManager interface (not implemented for SCT) More...
|
|
void | addMotherDesign (std::unique_ptr< const SCT_ModuleSideDesign > &&) |
|
int | getStripEndcapEtaNeighbour (const SiDetectorElement *element, IdentifierHash &idHashNeighbour, const bool phi_plus_one=false) const |
|
virtual bool | setAlignableTransformDelta (int level, const Identifier &id, const Amg::Transform3D &delta, FrameType frame, GeoVAlignmentStore *alignStore) const override |
| implements the main alignment update for delta transforms in different frames, it translates into the LocalDelta or GlobalDelta function of SiDetectorManager More...
|
|
const SCT_DetectorManager & | operator= (const SCT_DetectorManager &right)=delete |
| Prevent assign operator. More...
|
|
| SCT_DetectorManager (const SCT_DetectorManager &right)=delete |
| Prevent copy constructor. More...
|
|
virtual const SCT_ID * | getIdHelper () const override |
|
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT information, access.
- Author
- : Grant Gorfine
- modified and maintained by Nick Styles & Andreas Salzburger
Definition at line 49 of file SCT_DetectorManager.h.
◆ AlignableTransformMap
◆ SCT_DetectorManager() [1/3]
InDetDD::SCT_DetectorManager::SCT_DetectorManager |
( |
StoreGateSvc * |
detStore | ) |
|
◆ SCT_DetectorManager() [2/3]
InDetDD::SCT_DetectorManager::SCT_DetectorManager |
( |
StoreGateSvc * |
detStore, |
|
|
const std::string & |
name, |
|
|
const bool |
doEncapNeighbour = false |
|
) |
| |
◆ SCT_DetectorManager() [3/3]
Prevent copy constructor.
◆ addAlignableTransform() [1/3]
void InDetDD::SCT_DetectorManager::addAlignableTransform |
( |
int |
level, |
|
|
const Identifier & |
id, |
|
|
GeoAlignableTransform * |
xf, |
|
|
const GeoVFullPhysVol * |
child |
|
) |
| |
|
virtual |
Add alignable transforms. No access to these, they will be changed by manager:
Definition at line 353 of file SCT_DetectorManager.cxx.
365 }
else if (
level == 1) {
◆ addAlignableTransform() [2/3]
void InDetDD::SCT_DetectorManager::addAlignableTransform |
( |
int |
level, |
|
|
const Identifier & |
id, |
|
|
GeoAlignableTransform * |
xf, |
|
|
const GeoVPhysVol * |
child |
|
) |
| |
|
virtual |
As above but does a dynamic_cast to GeoVFullPhysVol.
Definition at line 337 of file SCT_DetectorManager.cxx.
344 const GeoVFullPhysVol * childFPV =
dynamic_cast<const GeoVFullPhysVol *
>(child);
346 ATH_MSG_ERROR(
"Child of alignable transform is not a full physical volume");
◆ addAlignableTransform() [3/3]
virtual void InDetDD::SCT_DetectorManager::addAlignableTransform |
( |
int |
, |
|
|
const Identifier & |
, |
|
|
GeoAlignableTransform * |
|
|
) |
| |
|
inlineoverridevirtual |
◆ addAlignFolderType()
◆ addChannel()
void InDetDD::InDetDetectorManager::addChannel |
( |
const std::string & |
key, |
|
|
int |
level, |
|
|
FrameType |
frame |
|
) |
| |
|
inherited |
Alignment access.
Definition at line 56 of file InDetDetectorManager.cxx.
58 std::string frameStr =
"other";
62 <<
", with frame " << frameStr <<
".");
◆ addDesign()
◆ addDetectorElement()
◆ addFolder()
void InDetDD::InDetDetectorManager::addFolder |
( |
const std::string & |
key | ) |
|
|
inherited |
◆ addGlobalFolder()
void InDetDD::InDetDetectorManager::addGlobalFolder |
( |
const std::string & |
key | ) |
|
|
inherited |
◆ addMotherDesign()
◆ addSpecialFolder()
void InDetDD::InDetDetectorManager::addSpecialFolder |
( |
const std::string & |
key | ) |
|
|
inherited |
◆ addTreeTop()
void InDetDD::SCT_DetectorManager::addTreeTop |
( |
const PVConstLink & |
vol | ) |
|
◆ align() [1/2]
StatusCode InDetDD::InDetDetectorManager::align |
( |
const RawAlignmentObjects & |
alignObjects, |
|
|
GeoVAlignmentStore * |
alignStore |
|
) |
| const |
|
inherited |
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]
◆ getDesign()
◆ getDetectorElement() [1/3]
◆ getDetectorElement() [2/3]
◆ getDetectorElement() [3/3]
const SiDetectorElement * InDetDD::SCT_DetectorManager::getDetectorElement |
( |
int |
barrel_endcap, |
|
|
int |
layer_wheel, |
|
|
int |
phi_module, |
|
|
int |
eta_module, |
|
|
int |
side |
|
) |
| const |
◆ getDetectorElementBegin() [1/2]
◆ getDetectorElementBegin() [2/2]
◆ getDetectorElementCollection()
◆ getDetectorElementEnd() [1/2]
◆ getDetectorElementEnd() [2/2]
◆ getIdHelper()
const SCT_ID * InDetDD::SCT_DetectorManager::getIdHelper |
( |
| ) |
const |
|
overrideprivatevirtual |
◆ getLayout()
const std::string & InDetDD::InDetDetectorManager::getLayout |
( |
| ) |
const |
|
inherited |
◆ getLevel()
◆ getNumTreeTops()
unsigned int InDetDD::SCT_DetectorManager::getNumTreeTops |
( |
| ) |
const |
|
overridevirtual |
◆ getSCT_Design()
◆ getStripEndcapEtaNeighbour()
Definition at line 176 of file SCT_DetectorManager.cxx.
181 if( !(element->isSCT() && element->isEndcap()) )
return 1;
194 if(element->isStereo())
return 1;
199 int target_phi = phi_module;
200 if (eta_module==9) target_phi = (phi_plus_one)? 2*phi_module+1 : 2*phi_module;
205 Identifier other_id = other_element->identify();
209 if(other_bec !=
bec)
continue;
212 if(other_layer_disk != layer_disk)
continue;
215 if(other_phi_module != target_phi)
continue;
219 if( (other_eta_module-eta_module) != 1 )
continue;
223 if(other_side==
side)
continue;
226 idHashNeighbour = other_element->identifyHash();
227 ATH_MSG_VERBOSE(__FUNCTION__<<
"found strip endcap neighbour for id="<<
id<<
" neigh="<<other_id
228 <<
" eta:"<<eta_module<<
" "<<other_eta_module);
◆ getTreeTop()
PVConstLink InDetDD::SCT_DetectorManager::getTreeTop |
( |
unsigned int |
i | ) |
const |
|
overridevirtual |
◆ getVersion()
const Version & InDetDD::InDetDetectorManager::getVersion |
( |
| ) |
const |
|
inherited |
◆ identifierBelongs()
bool InDetDD::SCT_DetectorManager::identifierBelongs |
( |
const Identifier & |
id | ) |
const |
|
overridevirtual |
◆ 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.
◆ initNeighbours()
void InDetDD::SCT_DetectorManager::initNeighbours |
( |
| ) |
|
|
overridevirtual |
◆ invalidateAll()
void InDetDD::SiDetectorManager::invalidateAll |
( |
| ) |
|
|
virtualinherited |
◆ isPixel()
virtual bool InDetDD::SCT_DetectorManager::isPixel |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ isSCT()
bool InDetDD::SiDetectorManager::isSCT |
( |
| ) |
const |
|
inlineinherited |
◆ 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.
◆ numDesigns()
int InDetDD::SiDetectorManager::numDesigns |
( |
| ) |
const |
|
inherited |
◆ numerology() [1/2]
◆ numerology() [2/2]
◆ operator=()
◆ 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 |
|
privateinherited |
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()
Process new global DB folders for L1 and L2.
Reimplemented from InDetDD::InDetDetectorManager.
Definition at line 395 of file SCT_DetectorManager.cxx.
398 ATH_MSG_INFO(
"Processing new global alignment containers with key " <<
key <<
" in the " << frame <<
" frame at level ");
403 <<
key <<
" - no new global alignment ");
407 bool alignmentChange =
false;
414 if (atrlist[
"det"].data<int>()!=2)
continue;
417 atrlist[
"layer"].data<int>(),
418 atrlist[
"ring"].data<int>(),
419 atrlist[
"sector"].data<int>(),
424 Amg::Translation3D newtranslation(atrlist[
"Tx"].data<float>(),atrlist[
"Ty"].data<float>(),atrlist[
"Tz"].data<float>());
425 Amg::Transform3D newtrans = newtranslation * Amg::RotationMatrix3D::Identity();
431 <<
" ,det: " << atrlist[
"det"].data<
int>()
432 <<
" ,bec: " << atrlist[
"bec"].data<
int>()
433 <<
" ,layer: " << atrlist[
"layer"].data<
int>()
434 <<
" ,ring: " << atrlist[
"ring"].data<
int>()
435 <<
" ,sector: " << atrlist[
"sector"].data<
int>()
436 <<
" ,Tx: " << atrlist[
"Tx"].data<
float>()
437 <<
" ,Ty: " << atrlist[
"Ty"].data<
float>()
438 <<
" ,Tz: " << atrlist[
"Tz"].data<
float>()
439 <<
" ,Rx: " << atrlist[
"Rx"].data<
float>()
440 <<
" ,Ry: " << atrlist[
"Ry"].data<
float>()
441 <<
" ,Rz: " << atrlist[
"Rz"].data<
float>());
451 ATH_MSG_DEBUG(
"Cannot set AlignableTransform for identifier."
453 <<
" at level " <<
level <<
" for new global DB ");
456 alignmentChange = (alignmentChange ||
status);
458 return alignmentChange;
◆ processGlobalAlignmentContainer()
bool InDetDD::InDetDetectorManager::processGlobalAlignmentContainer |
( |
const std::string & |
key, |
|
|
const CondAttrListCollection * |
obj = nullptr , |
|
|
GeoVAlignmentStore * |
alignStore = nullptr |
|
) |
| const |
|
privateinherited |
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 |
|
privateinherited |
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]
bool InDetDD::SCT_DetectorManager::processSpecialAlignment |
( |
const std::string & |
key, |
|
|
const CondAttrListCollection * |
obj = nullptr , |
|
|
GeoVAlignmentStore * |
alignStore = nullptr |
|
) |
| const |
|
overridevirtual |
◆ processSpecialAlignment() [2/2]
◆ setAlignableTransformDelta()
implements the main alignment update for delta transforms in different frames, it translates into the LocalDelta or GlobalDelta function of SiDetectorManager
Implements InDetDD::SiDetectorManager.
Definition at line 241 of file SCT_DetectorManager.cxx.
252 if (!idHash.
is_valid())
return false;
261 if (!element)
return false;
268 element->updateCache();
276 ATH_MSG_WARNING(
"Frames other than global or local are not supported.");
280 }
else if (
level == 1) {
284 if (!idHash.
is_valid())
return false;
286 int idModuleHash = idHash / 2;
298 if (!element)
return false;
304 element->updateCache();
312 ATH_MSG_WARNING(
"Frames other than global or local are not supported.");
319 ATH_MSG_WARNING(
"Non global shift at higher levels is not supported.");
327 AlignableTransformMap::const_iterator
iter;
◆ setAlignableTransformGlobalDelta()
Helper method to set delta transform from a global delta - Amg interface.
Definition at line 101 of file SiDetectorManager.cxx.
121 if (!extXF)
return false;
123 const GeoVFullPhysVol * child = extXF->child();
124 if (child && extXF->alignableTransform()) {
127 extXF->alignableTransform()->setDelta(
transform.inverse() * delta *
transform, alignStore);
◆ setAlignableTransformLocalDelta()
Helper method to set delta transform from a local delta - Amg interface.
Definition at line 62 of file SiDetectorManager.cxx.
84 if (!extXF)
return false;
86 const GeoVFullPhysVol* child = extXF->child();
87 if (child && extXF->alignableTransform()) {
94 extXF->alignableTransform()->setDelta(correctedDelta, alignStore);
◆ setCommonItems()
void InDetDD::SiDetectorManager::setCommonItems |
( |
std::unique_ptr< const SiCommonItems > && |
commonItems | ) |
|
|
inherited |
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ setVersion()
void InDetDD::InDetDetectorManager::setVersion |
( |
const Version & |
version | ) |
|
|
inherited |
◆ tag()
const std::string & InDetDD::SiDetectorManager::tag |
( |
| ) |
const |
|
inherited |
◆ updateAll()
void InDetDD::SiDetectorManager::updateAll |
( |
| ) |
const |
|
virtualinherited |
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_alignableTransforms
◆ m_alignfoldertype
◆ m_commonItems
◆ m_designs
◆ m_detStore
◆ m_doEndcapEtaNeighbour
bool InDetDD::SCT_DetectorManager::m_doEndcapEtaNeighbour |
|
private |
◆ m_elementCollection
◆ m_folders
std::set<std::string> InDetDD::InDetDetectorManager::m_folders |
|
privateinherited |
◆ m_globalFolders
std::set<std::string> InDetDD::InDetDetectorManager::m_globalFolders |
|
privateinherited |
◆ m_higherAlignableTransforms
◆ m_idHelper
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_isLogical
bool InDetDD::SCT_DetectorManager::m_isLogical |
|
private |
This variable switches the how the local alignment corrections are applied If true they will be calcualted on top of all of other corrections but in the default reference frame If false they will be calcualted on top of all of other corrections but in the globally aligned reference frame.
Definition at line 189 of file SCT_DetectorManager.h.
◆ m_keys
std::map<std::string, LevelInfo> InDetDD::InDetDetectorManager::m_keys |
|
privateinherited |
◆ m_lvl
std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_moduleAlignableTransforms
◆ m_motherDesigns
◆ 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_numerology
◆ m_specialFolders
std::set<std::string> InDetDD::InDetDetectorManager::m_specialFolders |
|
privateinherited |
◆ m_suppressWarnings
std::atomic_bool InDetDD::InDetDetectorManager::m_suppressWarnings |
|
mutableprotectedinherited |
◆ m_tag
std::string InDetDD::SiDetectorManager::m_tag |
|
privateinherited |
◆ m_version
Version InDetDD::InDetDetectorManager::m_version |
|
privateinherited |
◆ m_volume
std::vector<PVConstLink> InDetDD::SCT_DetectorManager::m_volume |
|
private |
◆ s_invalidLevel
The documentation for this class was generated from the following files:
std::vector< AlignableTransformMap > m_higherAlignableTransforms
std::atomic< MSG::Level > m_lvl
Current logging level.
int get_next_in_phi(const IdentifierHash &id, IdentifierHash &next) const
Next wafer hash in phi (return == 0 for neighbor found)
const_iterator end() const
int getStripEndcapEtaNeighbour(const SiDetectorElement *element, IdentifierHash &idHashNeighbour, const bool phi_plus_one=false) const
SCT_DetectorManager(StoreGateSvc *detStore)
Constructor.
DataModel_detail::iterator< DataVector > iterator
Standard iterator.
std::vector< std::unique_ptr< ExtendedAlignableTransform > > m_moduleAlignableTransforms
int get_prev_in_phi(const IdentifierHash &id, IdentifierHash &prev) const
Previous wafer hash in phi (return == 0 for neighbor found)
virtual bool identifierBelongs(const Identifier &id) const =0
Check identifier is for this detector.
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
SiDetectorManager(StoreGateSvc *detStore, const std::string &name)
std::vector< std::unique_ptr< const SCT_ModuleSideDesign > > m_motherDesigns
bool is_sct(Identifier id) const
std::vector< std::unique_ptr< const SiDetectorDesign > > m_designs
A CondMultChanCollection is a template class which can hold a collection of T* objects which are inte...
static bool setAlignableTransformLocalDelta(ExtendedAlignableTransform *extXF, const Amg::Transform3D &localToGlobalXF, const Amg::Transform3D &delta, GeoVAlignmentStore *alignStore=nullptr)
Helper method to set delta transform from a local delta - Amg interface.
virtual const AtlasDetectorID * getIdHelper() const =0
bool m_isLogical
This variable switches the how the local alignment corrections are applied If true they will be calcu...
virtual bool setAlignableTransformDelta(int level, const Identifier &id, const Amg::Transform3D &delta, FrameType frame, GeoVAlignmentStore *alignStore) const override
implements the main alignment update for delta transforms in different frames, it translates into the...
std::atomic_bool m_suppressWarnings
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
int phi_module(const Identifier &id) const
const std::string & layout() const
Layout (eg Initial, Final, TestBeam)
#define ATH_MSG_VERBOSE(x)
const SCT_ID * m_idHelper
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
virtual const SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements via Identifier
IMessageSvc * getMessageSvc(bool quiet=false)
const LevelInfo & getLevel(const std::string &key) const
Retrieve level information.
virtual const SCT_ID * getIdHelper() const override
static bool setAlignableTransformGlobalDelta(ExtendedAlignableTransform *extXF, const Amg::Transform3D &delta, GeoVAlignmentStore *alignStore=nullptr)
Helper method to set delta transform from a global delta - Amg interface.
StatusCode retrieve(const T *&ptr) const
Retrieve the default object into a const T*.
size_type wafer_hash_max() const
std::vector< std::unique_ptr< ExtendedAlignableTransform > > m_alignableTransforms
::StatusCode StatusCode
StatusCode definition for legacy code.
const SiDetectorDesign * getDesign(int i) const
Eigen::Affine3d Transform3D
std::set< std::string > m_globalFolders
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
const int FIRST_HIGHER_LEVEL
static const LevelInfo s_invalidLevel
IdentifierHash wafer_hash(const Identifier &wafer_id) const
wafer hash from id - optimized
int get_other_side(const IdentifierHash &id, IdentifierHash &other) const
Wafer hash on other side.
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.
bool is_valid() const
Check if id is in a valid state.
std::set< std::string > m_folders
SiDetectorElementCollection m_elementCollection
void resize(size_type sz)
Resizes the collection to the specified number of elements.
virtual bool isPixel() const =0
Methods to query which manager we have.
std::vector< PVConstLink > m_volume
SiNumerology m_numerology
int layer_disk(const Identifier &id) const
virtual bool processGlobalAlignment(const std::string &key, int level, FrameType frame, const CondAttrListCollection *obj=nullptr, GeoVAlignmentStore *alignStore=nullptr) const
Eigen::Matrix< double, 3, 1 > Vector3D
bool processKey(const std::string &key, const AlignableTransform *transformCollection, GeoVAlignmentStore *alignStore=nullptr) const
Called by processAlignmentContainer, applies only one key on the transform Collections.
int get_prev_in_eta(const IdentifierHash &id, IdentifierHash &prev) const
Previous wafer hash in eta (return == 0 for neighbor found)
int get_next_in_eta(const IdentifierHash &id, IdentifierHash &next) const
Next wafer hash in eta (return == 0 for neighbor found)
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
#define ATH_MSG_WARNING(x)
ChanAttrListMap::const_iterator const_iterator
Amg::Transform3D CLHEPTransformToEigen(const HepGeom::Transform3D &CLHEPtransf)
Converts a CLHEP-based HepGeom::Transform3D into an Eigen Amg::Transform3D.
std::set< std::string > m_specialFolders
virtual void addAlignableTransform(int level, const Identifier &id, GeoAlignableTransform *xf, const GeoVFullPhysVol *child)
Add alignable transforms. No access to these, they will be changed by manager:
std::string m_nm
Message source name.
int eta_module(const Identifier &id) const
Eigen::Translation< double, 3 > Translation3D
bool processAlignmentContainer(const std::string &key) const
return align folder string to use
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
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
int side(const Identifier &id) const
Eigen::AngleAxisd AngleAxis3D
virtual SiDetectorElementCollection::const_iterator getDetectorElementEnd() const =0
void initMessaging() const
Initialize our message level and MessageSvc.
Identifier wafer_id(int barrel_ec, int layer_disk, int phi_module, int eta_module, int side) const
For a single side of module.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
virtual SiDetectorElementCollection::const_iterator getDetectorElementBegin() const =0
bool m_doEndcapEtaNeighbour
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
std::unique_ptr< const SiCommonItems > m_commonItems
size_type size() const noexcept
Returns the number of elements in the collection.
bool empty() const noexcept
Returns true if the collection is empty.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.