diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/InDetDetectorManager.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/InDetDetectorManager.h index 5765370a8b25920b0d22dced1512d14052932777..ec30e328f79d69888803ab2e11dfd82349b54619 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/InDetDetectorManager.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/InDetDetectorManager.h @@ -169,8 +169,13 @@ namespace InDetDD { const Amg::Transform3D & delta, FrameType frame, GeoVAlignmentStore* alignStore=nullptr) const = 0; - - virtual bool processSpecialAlignment(const std::string & key, InDetDD::AlignFolderType alignfolder) const; + + virtual bool processSpecialAlignment(const std::string & key, + InDetDD::AlignFolderType alignfolder) const = 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, diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h index 7d42b82f07c15fa4f3079099f022733278f0d211..9f3cadbcda506e2432f88d58279489cd9ddbcde6 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h @@ -128,7 +128,11 @@ namespace InDetDD { virtual const PixelModuleDesign * getPixelDesign(int i) const; /** Process new IBLDist DB folder **/ - bool processSpecialAlignment(const std::string &, InDetDD::AlignFolderType) const; + bool processSpecialAlignment(const std::string &, InDetDD::AlignFolderType) const override; + + bool processSpecialAlignment(const std::string& key, + const CondAttrListCollection* obj=nullptr, + GeoVAlignmentStore* alignStore=nullptr) const override; /** Process new global DB folders for L1 and L2 **/ bool processGlobalAlignment(const std::string &, int level, FrameType frame, diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SCT_DetectorManager.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SCT_DetectorManager.h index bf936f02197645f2e9cf6d752d609b091fd2ccc9..93e6c5d3d1f8a123e5f84d4caf9d8939ac759b3b 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SCT_DetectorManager.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SCT_DetectorManager.h @@ -114,8 +114,17 @@ namespace InDetDD { bool processGlobalAlignment(const std::string &, int level, FrameType frame, const CondAttrListCollection* obj, GeoVAlignmentStore* alignStore) const; - - private: + + // comply with InDetDetectorManager interface + bool processSpecialAlignment(const std::string & key, + InDetDD::AlignFolderType alignfolder) const override; + + bool processSpecialAlignment(const std::string& key, + const CondAttrListCollection* obj=nullptr, + GeoVAlignmentStore* alignStore=nullptr) const override; + + + private: /** implements the main alignment update for delta transforms in different frames, it translates into the LocalDelta or GlobalDelta function of SiDetectorManager */ diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_DetectorManager.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_DetectorManager.h index b79ad864f284c310d02fb84066b4fb6a2bc18185..d4c64548cce1fc70ee714f59e77454fa16c6c832 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_DetectorManager.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_DetectorManager.h @@ -219,9 +219,15 @@ namespace InDetDD { bool processGlobalAlignment(const std::string &, int level, FrameType frame, const CondAttrListCollection* obj, GeoVAlignmentStore* alignStore) const; - - private: - + + bool processSpecialAlignment(const std::string & key, InDetDD::AlignFolderType dummy) const override; + + bool processSpecialAlignment(const std::string& key, + const CondAttrListCollection* obj=nullptr, + GeoVAlignmentStore* alignStore=nullptr) const override; + + private: + // Illegal operations:---------------------------------------------------------// // // @@ -262,7 +268,6 @@ namespace InDetDD { // here temporarily virtual const TRT_ID *getIdHelper() const; // - virtual bool processSpecialAlignment(const std::string & key, InDetDD::AlignFolderType dummy) const; //-----------------------------------------------------------------------------// }; diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/InDetDetectorManager.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/InDetDetectorManager.cxx index ae8514eb2cef70331012c42f192b7bbe102171c3..214a0feb4047d4eec72922e1d9caf795aa83a2c8 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/InDetDetectorManager.cxx +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/InDetDetectorManager.cxx @@ -251,6 +251,10 @@ namespace InDetDD } else if(m_specialFolders.find(key)!=m_specialFolders.end()) { // To Do: do we really need this? + // => Yes, this is where the IBL bowing is handled + + ATH_MSG_FATAL("Special folder " << key << " handling requested, but not currently implemented!"); + return StatusCode::FAILURE; /* try { diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDetectorManager.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDetectorManager.cxx index 9139354154ec9b80da2f56c320456ed137118dbe..166c10472157d41b8918af1d16e8e691060374de 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDetectorManager.cxx +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/PixelDetectorManager.cxx @@ -458,6 +458,12 @@ namespace InDetDD { return alignmentChange; } + bool PixelDetectorManager::processSpecialAlignment(const std::string& /*key*/, + const CondAttrListCollection* /*obj*/, + GeoVAlignmentStore* /*alignStore*/) const { + return false; + } + // New global alignment folders bool PixelDetectorManager::processGlobalAlignment(const std::string & key, int level, FrameType frame, const CondAttrListCollection* /*obj*/, GeoVAlignmentStore* alignStore) const { diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SCT_DetectorManager.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SCT_DetectorManager.cxx index 4ac1b74552a04ed7514aa2fc349fcb46eca5107d..4a78fe55b957397e1c69cf252f76923ba97caf32 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SCT_DetectorManager.cxx +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SCT_DetectorManager.cxx @@ -393,5 +393,16 @@ namespace InDetDD { return alignmentChange; } +bool SCT_DetectorManager::processSpecialAlignment( + const std::string &, InDetDD::AlignFolderType) const { + return false; +} + +bool SCT_DetectorManager::processSpecialAlignment(const std::string& /*key*/, + const CondAttrListCollection* /*obj*/, + GeoVAlignmentStore* /*alignStore*/) const { + return false; + +} } // namespace InDetDD diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx index 43f1ab2de4755001267d3af4f962deb340a07782..3d3417d1d20982cd13890829119c6bad298a0a22 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx @@ -630,6 +630,12 @@ namespace InDetDD { } } + bool TRT_DetectorManager::processSpecialAlignment(const std::string& /*key*/, + const CondAttrListCollection* /*obj*/, + GeoVAlignmentStore* /*alignStore*/) const { + return false; + } + void TRT_DetectorManager::setConditions(TRT_Conditions * conditions) {