Revert SCT_AlignCondAlg to AthAlgorithm. Lock recursive mutex at the begining of each method. (ATLASRECTS-4824, ATLASSIM-3931)
Revert SCT_AlignCondAlg to AthAlgorithm. Lock recursive mutex at the begining of each method.
I noticed that we cannot make SCT_AlignCondAlg reentrant because it has to use GeoVFullPhysVol::getDefAbsoluteTransform
without argument.
To be thread-safe, we need to pass non-const GeoVAlignmentStore
pointer.
https://gitlab.cern.ch/GeoModelDev/GeoModelKernel/blob/master/src/GeoVFullPhysVol.cxx#L84
But we cannot give non-const pointer for SiDetectorElement
in SCT_DetectorManager
in the following chain.
// SCT_AlignCondAlg::execute uses the following methods.
// InDetDD::InDetDetectorManager::align
// InDetDD::InDetDetectorManager::processAlignmentContainer
// InDetDD::InDetDetectorManager::processKey
// InDetDD::SCT_DetectorManager::setAlignableTransformDelta
// InDetDD::SiDetectorElement::defModuleTransform
// InDetDD::SiDetectorElement::defTransform
// InDetDD::SiDetectorElement::defTransformCLHEP
// GeoVFullPhysVol::getDefAbsoluteTransform
Edited by Susumu Oda