diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorElement.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorElement.h index 3d080a519b120768c7c84eebf4149823075b52f7..ec8c48f06842d38fe7e8b1339cac3c8b88dbec14 100644 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorElement.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorElement.h @@ -616,15 +616,15 @@ namespace InDetDD { // Directions of axes. These are true if the hit/simulation and reconstruction local frames are // in the same direction and false if they are opposite. - mutable std::atomic_bool m_depthDirection; // Direction of depth axis. + mutable bool m_depthDirection ATLAS_THREAD_SAFE; // Guarded by m_mutex // Direction of depth axis. // Also direction of readout implant (n+ for pixel, p+ for SCT). - mutable std::atomic_bool m_phiDirection; // - mutable std::atomic_bool m_etaDirection; // - + mutable bool m_phiDirection ATLAS_THREAD_SAFE; // + mutable bool m_etaDirection ATLAS_THREAD_SAFE; // + mutable std::atomic_bool m_cacheValid; // Alignment associated quatities. mutable std::atomic_bool m_firstTime; - mutable std::atomic_bool m_isStereo; - + mutable bool m_isStereo ATLAS_THREAD_SAFE; + mutable std::recursive_mutex m_mutex; mutable Amg::Transform3D m_transform ATLAS_THREAD_SAFE; // Guarded by m_mutex @@ -638,12 +638,12 @@ namespace InDetDD { mutable Amg::Vector3D m_center ATLAS_THREAD_SAFE; // Guarded by m_mutex mutable HepGeom::Vector3D<double> m_centerCLHEP ATLAS_THREAD_SAFE; // Guarded by m_mutex - mutable std::atomic<double> m_minZ; - mutable std::atomic<double> m_maxZ; - mutable std::atomic<double> m_minR; - mutable std::atomic<double> m_maxR; - mutable std::atomic<double> m_minPhi; - mutable std::atomic<double> m_maxPhi; + mutable double m_minZ ATLAS_THREAD_SAFE;// Guarded by m_mutex + mutable double m_maxZ ATLAS_THREAD_SAFE;// Guarded by m_mutex + mutable double m_minR ATLAS_THREAD_SAFE;// Guarded by m_mutex + mutable double m_maxR ATLAS_THREAD_SAFE;// Guarded by m_mutex + mutable double m_minPhi ATLAS_THREAD_SAFE;// Guarded by m_mutex + mutable double m_maxPhi ATLAS_THREAD_SAFE;// Guarded by m_mutex CxxUtils::CachedUniquePtr<Trk::Surface> m_surface; mutable std::vector<const Trk::Surface*> m_surfaces ATLAS_THREAD_SAFE; // Guarded by m_mutex diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorElement.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorElement.cxx index bb597d1be11827dd18a6baa137ab4568ff81c42b..ded850688698d692dcd6c9defe01805c4bc8e405 100644 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorElement.cxx +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorElement.cxx @@ -331,14 +331,8 @@ SiDetectorElement::updateCache() const m_phiAxis = Amg::Vector3D(m_phiAxisCLHEP[0],m_phiAxisCLHEP[1],m_phiAxisCLHEP[2]); m_etaAxis = Amg::Vector3D(m_etaAxisCLHEP[0],m_etaAxisCLHEP[1],m_etaAxisCLHEP[2]); - double minR, maxR, minZ, maxZ, minPhi, maxPhi; - getExtent(minR, maxR, minZ, maxZ, minPhi, maxPhi); - m_minR = minR; - m_maxR = maxR; - m_minZ = minZ; - m_maxZ = maxZ; - m_minPhi = minPhi; - m_maxPhi = maxPhi; + getExtent(m_minR, m_maxR, m_minZ, m_maxZ, m_minPhi, m_maxPhi); + // Determin isStereo if (firstTimeTmp) {