diff --git a/Geometry/VeryForwardGeometryBuilder/plugins/CTPPSGeometryESModule.cc b/Geometry/VeryForwardGeometryBuilder/plugins/CTPPSGeometryESModule.cc index dd488c7760c82..857d8ad0ce905 100644 --- a/Geometry/VeryForwardGeometryBuilder/plugins/CTPPSGeometryESModule.cc +++ b/Geometry/VeryForwardGeometryBuilder/plugins/CTPPSGeometryESModule.cc @@ -77,6 +77,7 @@ class CTPPSGeometryESModule : public edm::ESProducer { const char* name); const unsigned int verbosity_; + const bool buildMisalignedGeometry_; const bool isRun2_; edm::ESGetToken ddToken_; @@ -95,6 +96,7 @@ class CTPPSGeometryESModule : public edm::ESProducer { CTPPSGeometryESModule::CTPPSGeometryESModule(const edm::ParameterSet& iConfig) : verbosity_(iConfig.getUntrackedParameter("verbosity")), + buildMisalignedGeometry_(iConfig.getParameter("buildMisalignedGeometry")), isRun2_(iConfig.getParameter("isRun2")), fromPreprocessedDB_(iConfig.getUntrackedParameter("fromPreprocessedDB", false)), fromDD4hep_(iConfig.getUntrackedParameter("fromDD4hep", false)) { @@ -106,9 +108,11 @@ CTPPSGeometryESModule::CTPPSGeometryESModule(const edm::ParameterSet& iConfig) idealDBGDToken_ = c1.consumesFrom(edm::ESInputTag()); realAlignmentToken_ = c1.consumesFrom(edm::ESInputTag()); - auto c2 = setWhatProduced(this, &CTPPSGeometryESModule::produceMisalignedGDFromPreprocessedDB); - misAlignmentToken_ = - c2.consumesFrom(edm::ESInputTag()); + if (buildMisalignedGeometry_) { + auto c2 = setWhatProduced(this, &CTPPSGeometryESModule::produceMisalignedGDFromPreprocessedDB); + misAlignmentToken_ = + c2.consumesFrom(edm::ESInputTag()); + } } else if (!fromDD4hep_) { auto c = setWhatProduced(this, &CTPPSGeometryESModule::produceIdealGD); ddToken_ = c.consumes(edm::ESInputTag("", iConfig.getParameter("compactViewTag"))); @@ -117,9 +121,11 @@ CTPPSGeometryESModule::CTPPSGeometryESModule(const edm::ParameterSet& iConfig) idealGDToken_ = c1.consumesFrom(edm::ESInputTag()); realAlignmentToken_ = c1.consumesFrom(edm::ESInputTag()); - auto c2 = setWhatProduced(this, &CTPPSGeometryESModule::produceMisalignedGD); - misAlignmentToken_ = - c2.consumesFrom(edm::ESInputTag()); + if (buildMisalignedGeometry_) { + auto c2 = setWhatProduced(this, &CTPPSGeometryESModule::produceMisalignedGD); + misAlignmentToken_ = + c2.consumesFrom(edm::ESInputTag()); + } } else { auto c = setWhatProduced(this, &CTPPSGeometryESModule::produceIdealGD); dd4hepToken_ = @@ -129,21 +135,26 @@ CTPPSGeometryESModule::CTPPSGeometryESModule(const edm::ParameterSet& iConfig) idealGDToken_ = c1.consumesFrom(edm::ESInputTag()); realAlignmentToken_ = c1.consumesFrom(edm::ESInputTag()); - auto c2 = setWhatProduced(this, &CTPPSGeometryESModule::produceMisalignedGD); - misAlignmentToken_ = - c2.consumesFrom(edm::ESInputTag()); + if (buildMisalignedGeometry_) { + auto c2 = setWhatProduced(this, &CTPPSGeometryESModule::produceMisalignedGD); + misAlignmentToken_ = + c2.consumesFrom(edm::ESInputTag()); + } } auto c_RTG = setWhatProduced(this, &CTPPSGeometryESModule::produceRealTG); dgdRealToken_ = c_RTG.consumes(edm::ESInputTag()); - auto c_MTG = setWhatProduced(this, &CTPPSGeometryESModule::produceMisalignedTG); - dgdMisToken_ = c_MTG.consumes(edm::ESInputTag()); + if (buildMisalignedGeometry_) { + auto c_MTG = setWhatProduced(this, &CTPPSGeometryESModule::produceMisalignedTG); + dgdMisToken_ = c_MTG.consumes(edm::ESInputTag()); + } } void CTPPSGeometryESModule::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; desc.addUntracked("verbosity", 1); + desc.add("buildMisalignedGeometry", false)->setComment("switch if misaligned geometry shall be built"); desc.add("isRun2", false)->setComment("Switch to legacy (2017-18) definition of diamond geometry"); desc.add("dbTag", std::string()); desc.add("compactViewTag", std::string());