From 68db40dce89079df6b136283f9ed58407ce900b2 Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Fri, 21 Aug 2020 23:11:00 +0200 Subject: [PATCH 01/10] Fix CSC test and round DT and TK test outputs --- .../CSCGeometry/test/testCSCGeometry_cfg.py | 2 +- .../DTGeometry/test/DTGeometryAnalyzer.cc | 25 ++++++++++++----- .../DTGeometry/test/testDTGeometry_cfg.py | 4 ++- .../TrackerGeometryBuilder/test/ModuleInfo.cc | 28 ++++++++++++++----- .../test/trackerModuleInfoDB_cfg.py | 3 +- 5 files changed, 45 insertions(+), 17 deletions(-) diff --git a/Geometry/CSCGeometry/test/testCSCGeometry_cfg.py b/Geometry/CSCGeometry/test/testCSCGeometry_cfg.py index d9990b3956461..2019a3cbd6fa5 100644 --- a/Geometry/CSCGeometry/test/testCSCGeometry_cfg.py +++ b/Geometry/CSCGeometry/test/testCSCGeometry_cfg.py @@ -8,7 +8,7 @@ # ==================== process.load("Geometry.MuonNumbering.muonGeometryConstants_cff") process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi") -process.load("Geometry.MuonCommonData.muonEndcapIdealGeometryXML_cfi") +process.load('Configuration.Geometry.GeometryExtended_cff') # Fake alignment is/should be ideal geometry # ========================================== diff --git a/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc b/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc index 11c726ededef3..71fbe6329a827 100644 --- a/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc +++ b/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc @@ -9,6 +9,8 @@ #include #include #include +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DataFormats/Math/interface/Rounding.h" #include @@ -22,6 +24,7 @@ #include using namespace std; +using namespace cms_rounding; class DTGeometryAnalyzer : public edm::one::EDAnalyzer<> { public: @@ -37,16 +40,23 @@ class DTGeometryAnalyzer : public edm::one::EDAnalyzer<> { const int dashedLineWidth_; const string dashedLine_; const string myName_; + bool tinyDifferences_; }; DTGeometryAnalyzer::DTGeometryAnalyzer(const edm::ParameterSet& iConfig) - : dashedLineWidth_(104), dashedLine_(string(dashedLineWidth_, '-')), myName_("DTGeometryAnalyzer") {} + : dashedLineWidth_(104), + dashedLine_(string(dashedLineWidth_, '-')), + myName_("DTGeometryAnalyzer"), + tinyDifferences_(iConfig.getUntrackedParameter("tinyDifferences", true)) {} DTGeometryAnalyzer::~DTGeometryAnalyzer() {} void DTGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { edm::ESHandle pDD; iSetup.get().get(pDD); + double tolerance = 1.e-7; + if (tinyDifferences_) + tolerance = 1.e-25; cout << myName() << ": Analyzer..." << endl; cout << "start " << dashedLine_ << endl; @@ -83,7 +93,7 @@ void DTGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup cout << "Layer " << det->id() << " SL " << det->superLayer()->id() << " chamber " << det->chamber()->id() << " Topology W/H/L: " << topo.cellWidth() << "/" << topo.cellHeight() << "/" << topo.cellLenght() << " first/last/# wire " << topo.firstChannel() << "/" << topo.lastChannel() << "/" << topo.channels() - << " Position " << surf.position() << " normVect " << surf.normalVector() + << " Position " << surf.position() << " normVect " << roundVecIfNear0(surf.normalVector(), tolerance) << " bounds W/H/L: " << surf.bounds().width() << "/" << surf.bounds().thickness() << "/" << surf.bounds().length() << endl; } @@ -93,8 +103,9 @@ void DTGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup for (auto det : pDD->superLayers()) { const BoundPlane& surf = det->surface(); cout << "SuperLayer " << det->id() << " chamber " << det->chamber()->id() << " Position " << surf.position() - << " normVect " << surf.normalVector() << " bounds W/H/L: " << surf.bounds().width() << "/" - << surf.bounds().thickness() << "/" << surf.bounds().length() << endl; + << " normVect " << roundVecIfNear0(surf.normalVector(), tolerance) + << " bounds W/H/L: " << surf.bounds().width() << "/" << surf.bounds().thickness() << "/" + << surf.bounds().length() << endl; } // check chamber @@ -103,9 +114,9 @@ void DTGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup //cout << "Chamber " << (*det)->geographicalId().det() << endl; const BoundPlane& surf = det->surface(); //cout << "surf " << &surf << endl; - cout << "Chamber " << det->id() << " Position " << surf.position() << " normVect " << surf.normalVector() - << " bounds W/H/L: " << surf.bounds().width() << "/" << surf.bounds().thickness() << "/" - << surf.bounds().length() << endl; + cout << "Chamber " << det->id() << " Position " << surf.position() << " normVect " + << roundVecIfNear0(surf.normalVector(), tolerance) << " bounds W/H/L: " << surf.bounds().width() << "/" + << surf.bounds().thickness() << "/" << surf.bounds().length() << endl; } cout << "END " << dashedLine_ << endl; diff --git a/Geometry/DTGeometry/test/testDTGeometry_cfg.py b/Geometry/DTGeometry/test/testDTGeometry_cfg.py index d843836f83531..dceafeae7194f 100644 --- a/Geometry/DTGeometry/test/testDTGeometry_cfg.py +++ b/Geometry/DTGeometry/test/testDTGeometry_cfg.py @@ -19,7 +19,9 @@ process.out = cms.OutputModule("AsciiOutputModule") -process.prod = cms.EDAnalyzer("DTGeometryAnalyzer") +process.prod = cms.EDAnalyzer("DTGeometryAnalyzer", + tinyDifferences = cms.untracked.bool(True) + ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc b/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc index e3e8c8bddff46..94350a78d486a 100644 --- a/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc +++ b/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc @@ -38,6 +38,7 @@ #include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h" #include "DataFormats/GeometrySurface/interface/BoundSurface.h" +#include "DataFormats/Math/interface/Rounding.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "Geometry/TrackerNumberingBuilder/interface/CmsTrackerDebugNavigator.h" @@ -59,6 +60,8 @@ #include #include +using namespace cms_rounding; + class ModuleInfo : public edm::one::EDAnalyzer<> { public: explicit ModuleInfo(const edm::ParameterSet&); @@ -71,14 +74,15 @@ class ModuleInfo : public edm::one::EDAnalyzer<> { private: bool fromDDD_; bool printDDD_; + bool tinyDifferences_; }; static const double density_units = 6.24151e+18; -ModuleInfo::ModuleInfo(const edm::ParameterSet& ps) { - fromDDD_ = ps.getParameter("fromDDD"); - printDDD_ = ps.getUntrackedParameter("printDDD", true); -} +ModuleInfo::ModuleInfo(const edm::ParameterSet& ps) + : fromDDD_(ps.getParameter("fromDDD")), + printDDD_(ps.getUntrackedParameter("printDDD", true)), + tinyDifferences_(ps.getUntrackedParameter("tinyDifferences", true)) {} ModuleInfo::~ModuleInfo() {} @@ -94,6 +98,10 @@ void ModuleInfo::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup std::ofstream NumberingOutput("ModuleNumbering.dat", std::ios::out); // + double tolerance = 1.e-7; + if (tinyDifferences_) + tolerance = 1.e-25; + // // get the GeometricDet // @@ -473,12 +481,12 @@ void ModuleInfo::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup } else { out_module = tTopo->tecModule(id); } - double out_x = module->translation().X(); - double out_y = module->translation().Y(); + double out_x = roundIfNear0(module->translation().X(), tolerance); + double out_y = roundIfNear0(module->translation().Y(), tolerance); double out_z = module->translation().Z(); double out_r = sqrt(module->translation().X() * module->translation().X() + module->translation().Y() * module->translation().Y()); - double out_phi_rad = atan2(module->translation().Y(), module->translation().X()); + double out_phi_rad = roundIfNear0(atan2(module->translation().Y(), module->translation().X()), tolerance); TECOutput << out_side << " " << out_disk << " " << out_sector << " " << out_petal << " " << out_ring << " " << out_module << " " << out_sensor << " " << out_x << " " << out_y << " " << out_z << " " << out_r << " " << out_phi_rad << std::endl; @@ -526,6 +534,12 @@ void ModuleInfo::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup // active area versors (rotation matrix) DD3Vector x, y, z; module->rotation().GetComponents(x, y, z); + x = roundVecIfNear0(x, tolerance); + y = roundVecIfNear0(y, tolerance); + z = roundVecIfNear0(z, tolerance); + xGlobal = roundVecIfNear0(xGlobal, tolerance); + yGlobal = roundVecIfNear0(yGlobal, tolerance); + zGlobal = roundVecIfNear0(zGlobal, tolerance); Output << "\tActive Area Rotation Matrix" << std::endl; Output << "\t z = n = (" << std::fixed << std::setprecision(4) << z.X() << "," << std::fixed << std::setprecision(4) << z.Y() << "," << std::fixed << std::setprecision(4) << z.Z() << ")" << std::endl diff --git a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py index f0a879ae7181b..671c1e044ec8e 100644 --- a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py +++ b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py @@ -26,7 +26,8 @@ process.out = cms.OutputModule("AsciiOutputModule") process.prod = cms.EDAnalyzer("ModuleInfo", - fromDDD = cms.bool(False) + fromDDD = cms.bool(False), + tinyDifferences = cms.untracked.bool(True) ) process.p1 = cms.Path(process.prod) From 823715cacc534f08db879a96263ad5bb4a5eb5d9 Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Mon, 24 Aug 2020 18:51:21 +0200 Subject: [PATCH 02/10] Fixing output of sim geometry dump --- .../OfflineDBLoader/src/GeometryInfoDump.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/DetectorDescription/OfflineDBLoader/src/GeometryInfoDump.cc b/DetectorDescription/OfflineDBLoader/src/GeometryInfoDump.cc index 3c91a931a9eb6..95ad265ef922c 100644 --- a/DetectorDescription/OfflineDBLoader/src/GeometryInfoDump.cc +++ b/DetectorDescription/OfflineDBLoader/src/GeometryInfoDump.cc @@ -7,6 +7,7 @@ #include "DetectorDescription/Core/interface/DDExpandedNode.h" #include "DetectorDescription/Core/interface/DDExpandedView.h" #include "DetectorDescription/Core/interface/DDLogicalPart.h" +#include "DataFormats/Math/interface/Rounding.h" #include "FWCore/Utilities/interface/Exception.h" #include @@ -17,6 +18,7 @@ using Graph = DDCompactView::Graph; using adjl_iterator = Graph::const_adj_iterator; +using namespace cms_rounding; GeometryInfoDump::GeometryInfoDump() {} @@ -48,13 +50,16 @@ void GeometryInfoDump::dumpInfo( dump << " - " << epv.geoHistory(); DD3Vector x, y, z; epv.rotation().GetComponents(x, y, z); + x = roundVecIfNear0(x, 1.e-5); + y = roundVecIfNear0(y, 1.e-5); + z = roundVecIfNear0(z, 1.e-5); if (dumpPosInfo) { size_t s = snprintf(buf, 256, ",%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f", - epv.translation().x(), - epv.translation().y(), - epv.translation().z(), + roundIfNear0(epv.translation().x()), + roundIfNear0(epv.translation().y()), + roundIfNear0(epv.translation().z()), x.X(), y.X(), z.X(), From b2873a8727279c1b57a2df098de4217bf4777187 Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Mon, 24 Aug 2020 23:27:13 +0200 Subject: [PATCH 03/10] Revise rounding in sim geometry dump --- .../OfflineDBLoader/src/GeometryInfoDump.cc | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/DetectorDescription/OfflineDBLoader/src/GeometryInfoDump.cc b/DetectorDescription/OfflineDBLoader/src/GeometryInfoDump.cc index 95ad265ef922c..58f0d046c2544 100644 --- a/DetectorDescription/OfflineDBLoader/src/GeometryInfoDump.cc +++ b/DetectorDescription/OfflineDBLoader/src/GeometryInfoDump.cc @@ -7,7 +7,6 @@ #include "DetectorDescription/Core/interface/DDExpandedNode.h" #include "DetectorDescription/Core/interface/DDExpandedView.h" #include "DetectorDescription/Core/interface/DDLogicalPart.h" -#include "DataFormats/Math/interface/Rounding.h" #include "FWCore/Utilities/interface/Exception.h" #include @@ -18,7 +17,16 @@ using Graph = DDCompactView::Graph; using adjl_iterator = Graph::const_adj_iterator; -using namespace cms_rounding; + +// For output of values to four decimal places, round negative values +// equivalent to 0 within the precision to 0 to prevent printing "-0". +template +static constexpr valType roundNeg0(valType value) { + if (value < 0. && value > -5.0e-5) + return (0.0); + else + return (value); +} GeometryInfoDump::GeometryInfoDump() {} @@ -50,25 +58,22 @@ void GeometryInfoDump::dumpInfo( dump << " - " << epv.geoHistory(); DD3Vector x, y, z; epv.rotation().GetComponents(x, y, z); - x = roundVecIfNear0(x, 1.e-5); - y = roundVecIfNear0(y, 1.e-5); - z = roundVecIfNear0(z, 1.e-5); if (dumpPosInfo) { size_t s = snprintf(buf, 256, ",%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f", - roundIfNear0(epv.translation().x()), - roundIfNear0(epv.translation().y()), - roundIfNear0(epv.translation().z()), - x.X(), - y.X(), - z.X(), - x.Y(), - y.Y(), - z.Y(), - x.Z(), - y.Z(), - z.Z()); + roundNeg0(epv.translation().x()), + roundNeg0(epv.translation().y()), + roundNeg0(epv.translation().z()), + roundNeg0(x.X()), + roundNeg0(y.X()), + roundNeg0(z.X()), + roundNeg0(x.Y()), + roundNeg0(y.Y()), + roundNeg0(z.Y()), + roundNeg0(x.Z()), + roundNeg0(y.Z()), + roundNeg0(z.Z())); assert(s < 256); dump << buf; } From a300336bec2586e15f1da70247cce02cc2e9fed4 Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Wed, 26 Aug 2020 00:33:38 +0200 Subject: [PATCH 04/10] Making changes consistent --- Geometry/DTGeometry/test/DTGeometryAnalyzer.cc | 2 +- Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py | 4 +++- Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py | 4 +++- Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc | 2 +- .../test/trackerModuleInfoDDD_cfg.py | 3 ++- .../test/trackerModuleInfoFromDDDNoPrintDDD_cfg.py | 3 ++- .../test/trackerModuleInfoLocalDB_cfg.py | 3 ++- .../Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh | 8 +++++++- 8 files changed, 21 insertions(+), 8 deletions(-) diff --git a/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc b/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc index 71fbe6329a827..3bd3286b766ac 100644 --- a/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc +++ b/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc @@ -56,7 +56,7 @@ void DTGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup iSetup.get().get(pDD); double tolerance = 1.e-7; if (tinyDifferences_) - tolerance = 1.e-25; + tolerance = 1.e-23; cout << myName() << ": Analyzer..." << endl; cout << "start " << dashedLine_ << endl; diff --git a/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py b/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py index 34a4e201a9e7d..e91da55dce6cf 100644 --- a/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py +++ b/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py @@ -22,6 +22,8 @@ process.source = cms.Source("EmptySource") -process.prod = cms.EDAnalyzer("DTGeometryAnalyzer") +process.prod = cms.EDAnalyzer("DTGeometryAnalyzer", + tinyDifferences = cms.untracked.bool(True) + ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py b/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py index d80c8f66e63db..570e3cd7cbbf4 100644 --- a/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py +++ b/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py @@ -45,6 +45,8 @@ process.source = cms.Source("EmptySource") -process.prod = cms.EDAnalyzer("DTGeometryAnalyzer") +process.prod = cms.EDAnalyzer("DTGeometryAnalyzer", + tinyDifferences = cms.untracked.bool(True) + ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc b/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc index 94350a78d486a..b6e3eafc467a5 100644 --- a/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc +++ b/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc @@ -100,7 +100,7 @@ void ModuleInfo::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup double tolerance = 1.e-7; if (tinyDifferences_) - tolerance = 1.e-25; + tolerance = 1.e-23; // // get the GeometricDet diff --git a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py index 820d6f48ed100..4f5fd0627f31e 100644 --- a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py +++ b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py @@ -41,7 +41,8 @@ process.prod = cms.EDAnalyzer("ModuleInfo", fromDDD = cms.bool(True), - printDDD = cms.untracked.bool(False) + printDDD = cms.untracked.bool(False), + tinyDifferences = cms.untracked.bool(True) ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoFromDDDNoPrintDDD_cfg.py b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoFromDDDNoPrintDDD_cfg.py index b2f1452b3994b..ec1bf836b3c55 100644 --- a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoFromDDDNoPrintDDD_cfg.py +++ b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoFromDDDNoPrintDDD_cfg.py @@ -28,7 +28,8 @@ process.prod = cms.EDAnalyzer("ModuleInfo", fromDDD = cms.bool(True), - printDDD = cms.untracked.bool(False) + printDDD = cms.untracked.bool(False), + tinyDifferences = cms.untracked.bool(True) ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py index d4a39a53556a4..067fed752ad70 100644 --- a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py +++ b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py @@ -46,7 +46,8 @@ process.out = cms.OutputModule("AsciiOutputModule") process.prod = cms.EDAnalyzer("ModuleInfo", - fromDDD = cms.bool(False) + fromDDD = cms.bool(False), + tinyDifferences = cms.untracked.bool(True) ) process.p1 = cms.Path(process.prod) diff --git a/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh b/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh index 567710c0a9235..c20aae5ae2aab 100755 --- a/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh +++ b/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh @@ -110,6 +110,7 @@ cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInf sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log +sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDB_cfg.py >> GeometryValidation.log cmsRun trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoDB_cfg.py ../ if ( -s ModuleInfo.log ) then @@ -124,6 +125,7 @@ cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInf sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log +sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoLocalDB_cfg.py >> GeometryValidation.log cmsRun trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoLocalDB_cfg.py ../ if ( -s ModuleInfo.log ) then @@ -138,6 +140,7 @@ cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInf sed -i "{s/GeometryExtended/${geometry}/}" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log +sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDDD_cfg.py >> GeometryValidation.log cmsRun trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoDDD_cfg.py ../ if ( -s ModuleInfo.log ) then @@ -171,7 +174,8 @@ echo "Start DT RECO geometry validation" | tee -a GeometryValidation.log cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py . sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometryFromDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log -sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log +sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log +sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromDB_cfg.py >> GeometryValidation.log cmsRun testDTGeometryFromDB_cfg.py > outDB_DT.log if ( -s outDB_DT.log ) then echo "DT test from DB run ok" | tee -a GeometryValidation.log @@ -184,6 +188,7 @@ cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cf sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log +sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log cmsRun testDTGeometryFromLocalDB_cfg.py > outLocalDB_DT.log if ( -s outDB_DT.log ) then echo "DT test from Local DB run ok" | tee -a GeometryValidation.log @@ -196,6 +201,7 @@ cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometry_cfg.py . sed -i "{s/GeometryExtended/${geometry}/}" testDTGeometry_cfg.py >> GeometryValidation.log sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometry_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometry_cfg.py >> GeometryValidation.log +sed -i '/tinyDifferences/s/True/False/' testDTGeometry_cfg.py >> GeometryValidation.log cmsRun testDTGeometry_cfg.py > outDDD_DT.log if ( -s outDDD_DT.log ) then echo "DT test from DDD run ok" | tee -a GeometryValidation.log From b790e79d0520e23e8d0aac0daff23e1ee650f930 Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Thu, 27 Aug 2020 00:28:46 +0200 Subject: [PATCH 05/10] Add comments --- Geometry/DTGeometry/test/DTGeometryAnalyzer.cc | 5 ++++- Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc b/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc index 3bd3286b766ac..00feedfe137c3 100644 --- a/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc +++ b/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc @@ -47,7 +47,10 @@ DTGeometryAnalyzer::DTGeometryAnalyzer(const edm::ParameterSet& iConfig) : dashedLineWidth_(104), dashedLine_(string(dashedLineWidth_, '-')), myName_("DTGeometryAnalyzer"), - tinyDifferences_(iConfig.getUntrackedParameter("tinyDifferences", true)) {} + tinyDifferences_(iConfig.getUntrackedParameter("tinyDifferences", true)) +// Set tinyDifferences to True to show values as small as |1.e-23|; +// otherwise values <|1.e-7| will be rounded to 0. +{} DTGeometryAnalyzer::~DTGeometryAnalyzer() {} diff --git a/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc b/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc index b6e3eafc467a5..b7b17a09bfc82 100644 --- a/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc +++ b/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc @@ -82,7 +82,10 @@ static const double density_units = 6.24151e+18; ModuleInfo::ModuleInfo(const edm::ParameterSet& ps) : fromDDD_(ps.getParameter("fromDDD")), printDDD_(ps.getUntrackedParameter("printDDD", true)), - tinyDifferences_(ps.getUntrackedParameter("tinyDifferences", true)) {} + tinyDifferences_(ps.getUntrackedParameter("tinyDifferences", true)) +// Set tinyDifferences to True to show values as small as |1.e-23|; +// otherwise values <|1.e-7| will be rounded to 0. +{} ModuleInfo::~ModuleInfo() {} From 343f26807d5df7dbf5205d8af8cce69ed0bc0578 Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Tue, 1 Sep 2020 23:31:07 +0200 Subject: [PATCH 06/10] Add rounding option --- .../dddvsdb/runDDDvsDBGeometryValidation.sh | 42 +++++++++++++++---- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh b/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh index c20aae5ae2aab..bf0accc62fc4a 100755 --- a/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh +++ b/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh @@ -3,7 +3,13 @@ cmsenv echo " START Geometry Validation" -set loctag = '' + +# $1 is the Global Tag +# $2 is the scenario +# $3 is "round" to round values in comparisons to 0 if < |1.e7|. +# Omit this option to show differences down to |1.e-23|. + +set roundFlag = '' if ($#argv == 0) then set gtag="auto:run1_mc" set geometry="GeometryExtended" @@ -16,10 +22,12 @@ else if ($#argv == 2) then else if ($#argv == 3) then set gtag=`echo ${1}` set geometry=`echo ${2}` - set loctag = `echo ${3}` + set roundFlag = `echo ${3}` endif echo GlobalTag = ${gtag} echo geometry = ${geometry} +echo roundFlag = ${roundFlag} + #global tag gtag is assumed to be of the form GeometryWORD such as GeometryExtended or GeometryIdeal #as of 3.4.X loaded objects in the DB, these correspond to condlabels Extended, Ideal, etc... # Run 2 Extended condlabel corresponds to GeometryExtended2015 scenario. @@ -106,11 +114,14 @@ mkdir tkddd cp myfile.db tkdblocal cd tkdb +# cp $CMSSW_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py . sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log -sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDB_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDB_cfg.py >> GeometryValidation.log +endif cmsRun trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoDB_cfg.py ../ if ( -s ModuleInfo.log ) then @@ -121,11 +132,14 @@ else endif cd ../tkdblocal +# cp $CMSSW_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py . sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log -sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoLocalDB_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoLocalDB_cfg.py >> GeometryValidation.log +endif cmsRun trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoLocalDB_cfg.py ../ if ( -s ModuleInfo.log ) then @@ -136,11 +150,14 @@ else endif cd ../tkddd +# cp $CMSSW_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py . sed -i "{s/GeometryExtended/${geometry}/}" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log -sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDDD_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDDD_cfg.py >> GeometryValidation.log +endif cmsRun trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoDDD_cfg.py ../ if ( -s ModuleInfo.log ) then @@ -171,11 +188,14 @@ echo "End Tracker RECO geometry validation" | tee -a GeometryValidation.log echo "Start DT RECO geometry validation" | tee -a GeometryValidation.log +# cp $CMSSW_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py . sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometryFromDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log -sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromDB_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromDB_cfg.py >> GeometryValidation.log +endif cmsRun testDTGeometryFromDB_cfg.py > outDB_DT.log if ( -s outDB_DT.log ) then echo "DT test from DB run ok" | tee -a GeometryValidation.log @@ -184,11 +204,14 @@ else exit endif +# cp $CMSSW_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py . sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log -sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log +endif cmsRun testDTGeometryFromLocalDB_cfg.py > outLocalDB_DT.log if ( -s outDB_DT.log ) then echo "DT test from Local DB run ok" | tee -a GeometryValidation.log @@ -197,11 +220,14 @@ else exit endif +# cp $CMSSW_BASE/src/Geometry/DTGeometry/test/testDTGeometry_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometry_cfg.py . sed -i "{s/GeometryExtended/${geometry}/}" testDTGeometry_cfg.py >> GeometryValidation.log sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometry_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometry_cfg.py >> GeometryValidation.log -sed -i '/tinyDifferences/s/True/False/' testDTGeometry_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' testDTGeometry_cfg.py >> GeometryValidation.log +endif cmsRun testDTGeometry_cfg.py > outDDD_DT.log if ( -s outDDD_DT.log ) then echo "DT test from DDD run ok" | tee -a GeometryValidation.log From 118556ce398b23fd49bc579130dcdc261e4839df Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Tue, 1 Sep 2020 23:31:07 +0200 Subject: [PATCH 07/10] Enhance geometry DB payload validation --- .../dddvsdb/runDDDvsDBGeometryValidation.sh | 42 +++++++++++++++---- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh b/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh index c20aae5ae2aab..bf0accc62fc4a 100755 --- a/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh +++ b/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh @@ -3,7 +3,13 @@ cmsenv echo " START Geometry Validation" -set loctag = '' + +# $1 is the Global Tag +# $2 is the scenario +# $3 is "round" to round values in comparisons to 0 if < |1.e7|. +# Omit this option to show differences down to |1.e-23|. + +set roundFlag = '' if ($#argv == 0) then set gtag="auto:run1_mc" set geometry="GeometryExtended" @@ -16,10 +22,12 @@ else if ($#argv == 2) then else if ($#argv == 3) then set gtag=`echo ${1}` set geometry=`echo ${2}` - set loctag = `echo ${3}` + set roundFlag = `echo ${3}` endif echo GlobalTag = ${gtag} echo geometry = ${geometry} +echo roundFlag = ${roundFlag} + #global tag gtag is assumed to be of the form GeometryWORD such as GeometryExtended or GeometryIdeal #as of 3.4.X loaded objects in the DB, these correspond to condlabels Extended, Ideal, etc... # Run 2 Extended condlabel corresponds to GeometryExtended2015 scenario. @@ -106,11 +114,14 @@ mkdir tkddd cp myfile.db tkdblocal cd tkdb +# cp $CMSSW_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py . sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log -sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDB_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDB_cfg.py >> GeometryValidation.log +endif cmsRun trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoDB_cfg.py ../ if ( -s ModuleInfo.log ) then @@ -121,11 +132,14 @@ else endif cd ../tkdblocal +# cp $CMSSW_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py . sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log -sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoLocalDB_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoLocalDB_cfg.py >> GeometryValidation.log +endif cmsRun trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoLocalDB_cfg.py ../ if ( -s ModuleInfo.log ) then @@ -136,11 +150,14 @@ else endif cd ../tkddd +# cp $CMSSW_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py . sed -i "{s/GeometryExtended/${geometry}/}" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log -sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDDD_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDDD_cfg.py >> GeometryValidation.log +endif cmsRun trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoDDD_cfg.py ../ if ( -s ModuleInfo.log ) then @@ -171,11 +188,14 @@ echo "End Tracker RECO geometry validation" | tee -a GeometryValidation.log echo "Start DT RECO geometry validation" | tee -a GeometryValidation.log +# cp $CMSSW_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py . sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometryFromDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log -sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromDB_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromDB_cfg.py >> GeometryValidation.log +endif cmsRun testDTGeometryFromDB_cfg.py > outDB_DT.log if ( -s outDB_DT.log ) then echo "DT test from DB run ok" | tee -a GeometryValidation.log @@ -184,11 +204,14 @@ else exit endif +# cp $CMSSW_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py . sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log -sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log +endif cmsRun testDTGeometryFromLocalDB_cfg.py > outLocalDB_DT.log if ( -s outDB_DT.log ) then echo "DT test from Local DB run ok" | tee -a GeometryValidation.log @@ -197,11 +220,14 @@ else exit endif +# cp $CMSSW_BASE/src/Geometry/DTGeometry/test/testDTGeometry_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometry_cfg.py . sed -i "{s/GeometryExtended/${geometry}/}" testDTGeometry_cfg.py >> GeometryValidation.log sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometry_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometry_cfg.py >> GeometryValidation.log -sed -i '/tinyDifferences/s/True/False/' testDTGeometry_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' testDTGeometry_cfg.py >> GeometryValidation.log +endif cmsRun testDTGeometry_cfg.py > outDDD_DT.log if ( -s outDDD_DT.log ) then echo "DT test from DDD run ok" | tee -a GeometryValidation.log From 137684c027ddebc80fb8d47f0e0909a4c1e675e9 Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Fri, 21 Aug 2020 23:11:00 +0200 Subject: [PATCH 08/10] Enhance geometry DB payload validation scripts --- .../OfflineDBLoader/src/GeometryInfoDump.cc | 34 +++++++++++------ .../CSCGeometry/test/testCSCGeometry_cfg.py | 2 +- .../DTGeometry/test/DTGeometryAnalyzer.cc | 28 ++++++++++---- .../test/testDTGeometryFromDB_cfg.py | 4 +- .../test/testDTGeometryFromLocalDB_cfg.py | 4 +- .../DTGeometry/test/testDTGeometry_cfg.py | 4 +- .../TrackerGeometryBuilder/test/ModuleInfo.cc | 31 +++++++++++---- .../test/trackerModuleInfoDB_cfg.py | 3 +- .../test/trackerModuleInfoDDD_cfg.py | 3 +- .../trackerModuleInfoFromDDDNoPrintDDD_cfg.py | 3 +- .../test/trackerModuleInfoLocalDB_cfg.py | 3 +- .../dddvsdb/runDDDvsDBGeometryValidation.sh | 38 +++++++++++++++++-- 12 files changed, 120 insertions(+), 37 deletions(-) diff --git a/DetectorDescription/OfflineDBLoader/src/GeometryInfoDump.cc b/DetectorDescription/OfflineDBLoader/src/GeometryInfoDump.cc index 3c91a931a9eb6..58f0d046c2544 100644 --- a/DetectorDescription/OfflineDBLoader/src/GeometryInfoDump.cc +++ b/DetectorDescription/OfflineDBLoader/src/GeometryInfoDump.cc @@ -18,6 +18,16 @@ using Graph = DDCompactView::Graph; using adjl_iterator = Graph::const_adj_iterator; +// For output of values to four decimal places, round negative values +// equivalent to 0 within the precision to 0 to prevent printing "-0". +template +static constexpr valType roundNeg0(valType value) { + if (value < 0. && value > -5.0e-5) + return (0.0); + else + return (value); +} + GeometryInfoDump::GeometryInfoDump() {} GeometryInfoDump::~GeometryInfoDump() {} @@ -52,18 +62,18 @@ void GeometryInfoDump::dumpInfo( size_t s = snprintf(buf, 256, ",%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f,%12.4f", - epv.translation().x(), - epv.translation().y(), - epv.translation().z(), - x.X(), - y.X(), - z.X(), - x.Y(), - y.Y(), - z.Y(), - x.Z(), - y.Z(), - z.Z()); + roundNeg0(epv.translation().x()), + roundNeg0(epv.translation().y()), + roundNeg0(epv.translation().z()), + roundNeg0(x.X()), + roundNeg0(y.X()), + roundNeg0(z.X()), + roundNeg0(x.Y()), + roundNeg0(y.Y()), + roundNeg0(z.Y()), + roundNeg0(x.Z()), + roundNeg0(y.Z()), + roundNeg0(z.Z())); assert(s < 256); dump << buf; } diff --git a/Geometry/CSCGeometry/test/testCSCGeometry_cfg.py b/Geometry/CSCGeometry/test/testCSCGeometry_cfg.py index d9990b3956461..2019a3cbd6fa5 100644 --- a/Geometry/CSCGeometry/test/testCSCGeometry_cfg.py +++ b/Geometry/CSCGeometry/test/testCSCGeometry_cfg.py @@ -8,7 +8,7 @@ # ==================== process.load("Geometry.MuonNumbering.muonGeometryConstants_cff") process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi") -process.load("Geometry.MuonCommonData.muonEndcapIdealGeometryXML_cfi") +process.load('Configuration.Geometry.GeometryExtended_cff') # Fake alignment is/should be ideal geometry # ========================================== diff --git a/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc b/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc index 11c726ededef3..00feedfe137c3 100644 --- a/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc +++ b/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc @@ -9,6 +9,8 @@ #include #include #include +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DataFormats/Math/interface/Rounding.h" #include @@ -22,6 +24,7 @@ #include using namespace std; +using namespace cms_rounding; class DTGeometryAnalyzer : public edm::one::EDAnalyzer<> { public: @@ -37,16 +40,26 @@ class DTGeometryAnalyzer : public edm::one::EDAnalyzer<> { const int dashedLineWidth_; const string dashedLine_; const string myName_; + bool tinyDifferences_; }; DTGeometryAnalyzer::DTGeometryAnalyzer(const edm::ParameterSet& iConfig) - : dashedLineWidth_(104), dashedLine_(string(dashedLineWidth_, '-')), myName_("DTGeometryAnalyzer") {} + : dashedLineWidth_(104), + dashedLine_(string(dashedLineWidth_, '-')), + myName_("DTGeometryAnalyzer"), + tinyDifferences_(iConfig.getUntrackedParameter("tinyDifferences", true)) +// Set tinyDifferences to True to show values as small as |1.e-23|; +// otherwise values <|1.e-7| will be rounded to 0. +{} DTGeometryAnalyzer::~DTGeometryAnalyzer() {} void DTGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { edm::ESHandle pDD; iSetup.get().get(pDD); + double tolerance = 1.e-7; + if (tinyDifferences_) + tolerance = 1.e-23; cout << myName() << ": Analyzer..." << endl; cout << "start " << dashedLine_ << endl; @@ -83,7 +96,7 @@ void DTGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup cout << "Layer " << det->id() << " SL " << det->superLayer()->id() << " chamber " << det->chamber()->id() << " Topology W/H/L: " << topo.cellWidth() << "/" << topo.cellHeight() << "/" << topo.cellLenght() << " first/last/# wire " << topo.firstChannel() << "/" << topo.lastChannel() << "/" << topo.channels() - << " Position " << surf.position() << " normVect " << surf.normalVector() + << " Position " << surf.position() << " normVect " << roundVecIfNear0(surf.normalVector(), tolerance) << " bounds W/H/L: " << surf.bounds().width() << "/" << surf.bounds().thickness() << "/" << surf.bounds().length() << endl; } @@ -93,8 +106,9 @@ void DTGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup for (auto det : pDD->superLayers()) { const BoundPlane& surf = det->surface(); cout << "SuperLayer " << det->id() << " chamber " << det->chamber()->id() << " Position " << surf.position() - << " normVect " << surf.normalVector() << " bounds W/H/L: " << surf.bounds().width() << "/" - << surf.bounds().thickness() << "/" << surf.bounds().length() << endl; + << " normVect " << roundVecIfNear0(surf.normalVector(), tolerance) + << " bounds W/H/L: " << surf.bounds().width() << "/" << surf.bounds().thickness() << "/" + << surf.bounds().length() << endl; } // check chamber @@ -103,9 +117,9 @@ void DTGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup //cout << "Chamber " << (*det)->geographicalId().det() << endl; const BoundPlane& surf = det->surface(); //cout << "surf " << &surf << endl; - cout << "Chamber " << det->id() << " Position " << surf.position() << " normVect " << surf.normalVector() - << " bounds W/H/L: " << surf.bounds().width() << "/" << surf.bounds().thickness() << "/" - << surf.bounds().length() << endl; + cout << "Chamber " << det->id() << " Position " << surf.position() << " normVect " + << roundVecIfNear0(surf.normalVector(), tolerance) << " bounds W/H/L: " << surf.bounds().width() << "/" + << surf.bounds().thickness() << "/" << surf.bounds().length() << endl; } cout << "END " << dashedLine_ << endl; diff --git a/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py b/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py index 34a4e201a9e7d..e91da55dce6cf 100644 --- a/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py +++ b/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py @@ -22,6 +22,8 @@ process.source = cms.Source("EmptySource") -process.prod = cms.EDAnalyzer("DTGeometryAnalyzer") +process.prod = cms.EDAnalyzer("DTGeometryAnalyzer", + tinyDifferences = cms.untracked.bool(True) + ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py b/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py index d80c8f66e63db..570e3cd7cbbf4 100644 --- a/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py +++ b/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py @@ -45,6 +45,8 @@ process.source = cms.Source("EmptySource") -process.prod = cms.EDAnalyzer("DTGeometryAnalyzer") +process.prod = cms.EDAnalyzer("DTGeometryAnalyzer", + tinyDifferences = cms.untracked.bool(True) + ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/DTGeometry/test/testDTGeometry_cfg.py b/Geometry/DTGeometry/test/testDTGeometry_cfg.py index d843836f83531..dceafeae7194f 100644 --- a/Geometry/DTGeometry/test/testDTGeometry_cfg.py +++ b/Geometry/DTGeometry/test/testDTGeometry_cfg.py @@ -19,7 +19,9 @@ process.out = cms.OutputModule("AsciiOutputModule") -process.prod = cms.EDAnalyzer("DTGeometryAnalyzer") +process.prod = cms.EDAnalyzer("DTGeometryAnalyzer", + tinyDifferences = cms.untracked.bool(True) + ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc b/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc index e3e8c8bddff46..b7b17a09bfc82 100644 --- a/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc +++ b/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc @@ -38,6 +38,7 @@ #include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h" #include "DataFormats/GeometrySurface/interface/BoundSurface.h" +#include "DataFormats/Math/interface/Rounding.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "Geometry/TrackerNumberingBuilder/interface/CmsTrackerDebugNavigator.h" @@ -59,6 +60,8 @@ #include #include +using namespace cms_rounding; + class ModuleInfo : public edm::one::EDAnalyzer<> { public: explicit ModuleInfo(const edm::ParameterSet&); @@ -71,14 +74,18 @@ class ModuleInfo : public edm::one::EDAnalyzer<> { private: bool fromDDD_; bool printDDD_; + bool tinyDifferences_; }; static const double density_units = 6.24151e+18; -ModuleInfo::ModuleInfo(const edm::ParameterSet& ps) { - fromDDD_ = ps.getParameter("fromDDD"); - printDDD_ = ps.getUntrackedParameter("printDDD", true); -} +ModuleInfo::ModuleInfo(const edm::ParameterSet& ps) + : fromDDD_(ps.getParameter("fromDDD")), + printDDD_(ps.getUntrackedParameter("printDDD", true)), + tinyDifferences_(ps.getUntrackedParameter("tinyDifferences", true)) +// Set tinyDifferences to True to show values as small as |1.e-23|; +// otherwise values <|1.e-7| will be rounded to 0. +{} ModuleInfo::~ModuleInfo() {} @@ -94,6 +101,10 @@ void ModuleInfo::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup std::ofstream NumberingOutput("ModuleNumbering.dat", std::ios::out); // + double tolerance = 1.e-7; + if (tinyDifferences_) + tolerance = 1.e-23; + // // get the GeometricDet // @@ -473,12 +484,12 @@ void ModuleInfo::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup } else { out_module = tTopo->tecModule(id); } - double out_x = module->translation().X(); - double out_y = module->translation().Y(); + double out_x = roundIfNear0(module->translation().X(), tolerance); + double out_y = roundIfNear0(module->translation().Y(), tolerance); double out_z = module->translation().Z(); double out_r = sqrt(module->translation().X() * module->translation().X() + module->translation().Y() * module->translation().Y()); - double out_phi_rad = atan2(module->translation().Y(), module->translation().X()); + double out_phi_rad = roundIfNear0(atan2(module->translation().Y(), module->translation().X()), tolerance); TECOutput << out_side << " " << out_disk << " " << out_sector << " " << out_petal << " " << out_ring << " " << out_module << " " << out_sensor << " " << out_x << " " << out_y << " " << out_z << " " << out_r << " " << out_phi_rad << std::endl; @@ -526,6 +537,12 @@ void ModuleInfo::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup // active area versors (rotation matrix) DD3Vector x, y, z; module->rotation().GetComponents(x, y, z); + x = roundVecIfNear0(x, tolerance); + y = roundVecIfNear0(y, tolerance); + z = roundVecIfNear0(z, tolerance); + xGlobal = roundVecIfNear0(xGlobal, tolerance); + yGlobal = roundVecIfNear0(yGlobal, tolerance); + zGlobal = roundVecIfNear0(zGlobal, tolerance); Output << "\tActive Area Rotation Matrix" << std::endl; Output << "\t z = n = (" << std::fixed << std::setprecision(4) << z.X() << "," << std::fixed << std::setprecision(4) << z.Y() << "," << std::fixed << std::setprecision(4) << z.Z() << ")" << std::endl diff --git a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py index f0a879ae7181b..671c1e044ec8e 100644 --- a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py +++ b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py @@ -26,7 +26,8 @@ process.out = cms.OutputModule("AsciiOutputModule") process.prod = cms.EDAnalyzer("ModuleInfo", - fromDDD = cms.bool(False) + fromDDD = cms.bool(False), + tinyDifferences = cms.untracked.bool(True) ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py index 820d6f48ed100..4f5fd0627f31e 100644 --- a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py +++ b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py @@ -41,7 +41,8 @@ process.prod = cms.EDAnalyzer("ModuleInfo", fromDDD = cms.bool(True), - printDDD = cms.untracked.bool(False) + printDDD = cms.untracked.bool(False), + tinyDifferences = cms.untracked.bool(True) ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoFromDDDNoPrintDDD_cfg.py b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoFromDDDNoPrintDDD_cfg.py index b2f1452b3994b..ec1bf836b3c55 100644 --- a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoFromDDDNoPrintDDD_cfg.py +++ b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoFromDDDNoPrintDDD_cfg.py @@ -28,7 +28,8 @@ process.prod = cms.EDAnalyzer("ModuleInfo", fromDDD = cms.bool(True), - printDDD = cms.untracked.bool(False) + printDDD = cms.untracked.bool(False), + tinyDifferences = cms.untracked.bool(True) ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py index d4a39a53556a4..067fed752ad70 100644 --- a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py +++ b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py @@ -46,7 +46,8 @@ process.out = cms.OutputModule("AsciiOutputModule") process.prod = cms.EDAnalyzer("ModuleInfo", - fromDDD = cms.bool(False) + fromDDD = cms.bool(False), + tinyDifferences = cms.untracked.bool(True) ) process.p1 = cms.Path(process.prod) diff --git a/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh b/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh index 567710c0a9235..bf0accc62fc4a 100755 --- a/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh +++ b/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh @@ -3,7 +3,13 @@ cmsenv echo " START Geometry Validation" -set loctag = '' + +# $1 is the Global Tag +# $2 is the scenario +# $3 is "round" to round values in comparisons to 0 if < |1.e7|. +# Omit this option to show differences down to |1.e-23|. + +set roundFlag = '' if ($#argv == 0) then set gtag="auto:run1_mc" set geometry="GeometryExtended" @@ -16,10 +22,12 @@ else if ($#argv == 2) then else if ($#argv == 3) then set gtag=`echo ${1}` set geometry=`echo ${2}` - set loctag = `echo ${3}` + set roundFlag = `echo ${3}` endif echo GlobalTag = ${gtag} echo geometry = ${geometry} +echo roundFlag = ${roundFlag} + #global tag gtag is assumed to be of the form GeometryWORD such as GeometryExtended or GeometryIdeal #as of 3.4.X loaded objects in the DB, these correspond to condlabels Extended, Ideal, etc... # Run 2 Extended condlabel corresponds to GeometryExtended2015 scenario. @@ -106,10 +114,14 @@ mkdir tkddd cp myfile.db tkdblocal cd tkdb +# cp $CMSSW_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py . sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDB_cfg.py >> GeometryValidation.log +endif cmsRun trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoDB_cfg.py ../ if ( -s ModuleInfo.log ) then @@ -120,10 +132,14 @@ else endif cd ../tkdblocal +# cp $CMSSW_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py . sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoLocalDB_cfg.py >> GeometryValidation.log +endif cmsRun trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoLocalDB_cfg.py ../ if ( -s ModuleInfo.log ) then @@ -134,10 +150,14 @@ else endif cd ../tkddd +# cp $CMSSW_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py . sed -i "{s/GeometryExtended/${geometry}/}" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDDD_cfg.py >> GeometryValidation.log +endif cmsRun trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoDDD_cfg.py ../ if ( -s ModuleInfo.log ) then @@ -168,10 +188,14 @@ echo "End Tracker RECO geometry validation" | tee -a GeometryValidation.log echo "Start DT RECO geometry validation" | tee -a GeometryValidation.log +# cp $CMSSW_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py . sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometryFromDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log -sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log +sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromDB_cfg.py >> GeometryValidation.log +endif cmsRun testDTGeometryFromDB_cfg.py > outDB_DT.log if ( -s outDB_DT.log ) then echo "DT test from DB run ok" | tee -a GeometryValidation.log @@ -180,10 +204,14 @@ else exit endif +# cp $CMSSW_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py . sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log +endif cmsRun testDTGeometryFromLocalDB_cfg.py > outLocalDB_DT.log if ( -s outDB_DT.log ) then echo "DT test from Local DB run ok" | tee -a GeometryValidation.log @@ -192,10 +220,14 @@ else exit endif +# cp $CMSSW_BASE/src/Geometry/DTGeometry/test/testDTGeometry_cfg.py . cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometry_cfg.py . sed -i "{s/GeometryExtended/${geometry}/}" testDTGeometry_cfg.py >> GeometryValidation.log sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometry_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometry_cfg.py >> GeometryValidation.log +if ( "${roundFlag}" == round ) then + sed -i '/tinyDifferences/s/True/False/' testDTGeometry_cfg.py >> GeometryValidation.log +endif cmsRun testDTGeometry_cfg.py > outDDD_DT.log if ( -s outDDD_DT.log ) then echo "DT test from DDD run ok" | tee -a GeometryValidation.log From 2845c10824f3e62b9de0680bb898987c17c6129b Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Fri, 4 Sep 2020 02:12:05 +0200 Subject: [PATCH 09/10] Add tolerance variable --- .../CSCGeometry/test/testCSCGeometry_cfg.py | 16 +++++----- .../DTGeometry/test/DTGeometryAnalyzer.cc | 29 ++++++++---------- .../test/testDTGeometryFromDB_cfg.py | 2 +- .../test/testDTGeometryFromLocalDB_cfg.py | 2 +- .../DTGeometry/test/testDTGeometry_cfg.py | 2 +- .../TrackerGeometryBuilder/test/ModuleInfo.cc | 30 +++++++------------ .../test/trackerModuleInfoDB_cfg.py | 2 +- .../test/trackerModuleInfoDDD_cfg.py | 2 +- .../trackerModuleInfoFromDDDNoPrintDDD_cfg.py | 2 +- .../test/trackerModuleInfoLocalDB_cfg.py | 2 +- .../dddvsdb/runDDDvsDBGeometryValidation.sh | 15 ++++++---- 11 files changed, 46 insertions(+), 58 deletions(-) diff --git a/Geometry/CSCGeometry/test/testCSCGeometry_cfg.py b/Geometry/CSCGeometry/test/testCSCGeometry_cfg.py index 2019a3cbd6fa5..a0e35e2fb608d 100644 --- a/Geometry/CSCGeometry/test/testCSCGeometry_cfg.py +++ b/Geometry/CSCGeometry/test/testCSCGeometry_cfg.py @@ -2,30 +2,28 @@ import FWCore.ParameterSet.Config as cms -process = cms.Process("CSCGeometryAnalyzer") +process = cms.Process('CSCGeometryAnalyzer') # Endcap Muon geometry # ==================== -process.load("Geometry.MuonNumbering.muonGeometryConstants_cff") -process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi") process.load('Configuration.Geometry.GeometryExtended_cff') # Fake alignment is/should be ideal geometry # ========================================== -process.load("Alignment.CommonAlignmentProducer.FakeAlignmentSource_cfi") -process.preferFakeAlign = cms.ESPrefer("FakeAlignmentSource") +process.load('Alignment.CommonAlignmentProducer.FakeAlignmentSource_cfi') +process.preferFakeAlign = cms.ESPrefer('FakeAlignmentSource') # flags for modelling of CSC layer & strip geometry # ================================================= -process.load("Geometry.CSCGeometry.cscGeometry_cfi") +process.load('Geometry.CSCGeometry.cscGeometry_cfi') -process.source = cms.Source("EmptySource") +process.source = cms.Source('EmptySource') process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1) ) -process.load("FWCore.MessageLogger.MessageLogger_cfi") +process.load('FWCore.MessageLogger.MessageLogger_cfi') process.MessageLogger.debugModules.append('CSCGeometryESModule') process.MessageLogger.categories.append('CSCGeometry') process.MessageLogger.categories.append('CSCGeometryBuilder') @@ -36,6 +34,6 @@ CSCGeometryBuilder = cms.untracked.PSet( limit = cms.untracked.int32(-1) ) ) -process.producer = cms.EDAnalyzer("CSCGeometryAnalyzer") +process.producer = cms.EDAnalyzer('CSCGeometryAnalyzer') process.p1 = cms.Path(process.producer) diff --git a/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc b/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc index 00feedfe137c3..f7a98b13e481f 100644 --- a/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc +++ b/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc @@ -5,17 +5,17 @@ #include -#include -#include -#include -#include +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "DataFormats/Math/interface/Rounding.h" -#include +#include "Geometry/CommonDetUnit/interface/GeomDet.h" -#include -#include +#include "Geometry/DTGeometry/interface/DTGeometry.h" +#include "Geometry/Records/interface/MuonGeometryRecord.h" #include #include @@ -40,16 +40,14 @@ class DTGeometryAnalyzer : public edm::one::EDAnalyzer<> { const int dashedLineWidth_; const string dashedLine_; const string myName_; - bool tinyDifferences_; + double tolerance_; }; DTGeometryAnalyzer::DTGeometryAnalyzer(const edm::ParameterSet& iConfig) : dashedLineWidth_(104), dashedLine_(string(dashedLineWidth_, '-')), myName_("DTGeometryAnalyzer"), - tinyDifferences_(iConfig.getUntrackedParameter("tinyDifferences", true)) -// Set tinyDifferences to True to show values as small as |1.e-23|; -// otherwise values <|1.e-7| will be rounded to 0. + tolerance_(iConfig.getUntrackedParameter("tolerance", 1.e-23)) {} DTGeometryAnalyzer::~DTGeometryAnalyzer() {} @@ -57,9 +55,6 @@ DTGeometryAnalyzer::~DTGeometryAnalyzer() {} void DTGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { edm::ESHandle pDD; iSetup.get().get(pDD); - double tolerance = 1.e-7; - if (tinyDifferences_) - tolerance = 1.e-23; cout << myName() << ": Analyzer..." << endl; cout << "start " << dashedLine_ << endl; @@ -96,7 +91,7 @@ void DTGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup cout << "Layer " << det->id() << " SL " << det->superLayer()->id() << " chamber " << det->chamber()->id() << " Topology W/H/L: " << topo.cellWidth() << "/" << topo.cellHeight() << "/" << topo.cellLenght() << " first/last/# wire " << topo.firstChannel() << "/" << topo.lastChannel() << "/" << topo.channels() - << " Position " << surf.position() << " normVect " << roundVecIfNear0(surf.normalVector(), tolerance) + << " Position " << surf.position() << " normVect " << roundVecIfNear0(surf.normalVector(), tolerance_) << " bounds W/H/L: " << surf.bounds().width() << "/" << surf.bounds().thickness() << "/" << surf.bounds().length() << endl; } @@ -106,7 +101,7 @@ void DTGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup for (auto det : pDD->superLayers()) { const BoundPlane& surf = det->surface(); cout << "SuperLayer " << det->id() << " chamber " << det->chamber()->id() << " Position " << surf.position() - << " normVect " << roundVecIfNear0(surf.normalVector(), tolerance) + << " normVect " << roundVecIfNear0(surf.normalVector(), tolerance_) << " bounds W/H/L: " << surf.bounds().width() << "/" << surf.bounds().thickness() << "/" << surf.bounds().length() << endl; } @@ -118,7 +113,7 @@ void DTGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup const BoundPlane& surf = det->surface(); //cout << "surf " << &surf << endl; cout << "Chamber " << det->id() << " Position " << surf.position() << " normVect " - << roundVecIfNear0(surf.normalVector(), tolerance) << " bounds W/H/L: " << surf.bounds().width() << "/" + << roundVecIfNear0(surf.normalVector(), tolerance_) << " bounds W/H/L: " << surf.bounds().width() << "/" << surf.bounds().thickness() << "/" << surf.bounds().length() << endl; } cout << "END " << dashedLine_ << endl; diff --git a/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py b/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py index e91da55dce6cf..50bed20d7e281 100644 --- a/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py +++ b/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py @@ -23,7 +23,7 @@ process.source = cms.Source("EmptySource") process.prod = cms.EDAnalyzer("DTGeometryAnalyzer", - tinyDifferences = cms.untracked.bool(True) + tolerance = cms.untracked.double(1.0e-23) ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py b/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py index 570e3cd7cbbf4..c4377ab1fa67c 100644 --- a/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py +++ b/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py @@ -46,7 +46,7 @@ process.source = cms.Source("EmptySource") process.prod = cms.EDAnalyzer("DTGeometryAnalyzer", - tinyDifferences = cms.untracked.bool(True) + tolerance = cms.untracked.double(1.0e-23) ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/DTGeometry/test/testDTGeometry_cfg.py b/Geometry/DTGeometry/test/testDTGeometry_cfg.py index dceafeae7194f..78c923cf71131 100644 --- a/Geometry/DTGeometry/test/testDTGeometry_cfg.py +++ b/Geometry/DTGeometry/test/testDTGeometry_cfg.py @@ -20,7 +20,7 @@ process.out = cms.OutputModule("AsciiOutputModule") process.prod = cms.EDAnalyzer("DTGeometryAnalyzer", - tinyDifferences = cms.untracked.bool(True) + tolerance = cms.untracked.double(1.0e-23) ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc b/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc index b7b17a09bfc82..2885d1d6c0e7b 100644 --- a/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc +++ b/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc @@ -74,7 +74,7 @@ class ModuleInfo : public edm::one::EDAnalyzer<> { private: bool fromDDD_; bool printDDD_; - bool tinyDifferences_; + double tolerance_; }; static const double density_units = 6.24151e+18; @@ -82,9 +82,7 @@ static const double density_units = 6.24151e+18; ModuleInfo::ModuleInfo(const edm::ParameterSet& ps) : fromDDD_(ps.getParameter("fromDDD")), printDDD_(ps.getUntrackedParameter("printDDD", true)), - tinyDifferences_(ps.getUntrackedParameter("tinyDifferences", true)) -// Set tinyDifferences to True to show values as small as |1.e-23|; -// otherwise values <|1.e-7| will be rounded to 0. + tolerance_(ps.getUntrackedParameter("tolerance", 1.e-23)) {} ModuleInfo::~ModuleInfo() {} @@ -99,13 +97,7 @@ void ModuleInfo::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup std::ofstream TECOutput("TECLayout_CMSSW.dat", std::ios::out); // Numbering Scheme std::ofstream NumberingOutput("ModuleNumbering.dat", std::ios::out); - // - - double tolerance = 1.e-7; - if (tinyDifferences_) - tolerance = 1.e-23; - // // get the GeometricDet // edm::ESHandle rDD; @@ -484,12 +476,12 @@ void ModuleInfo::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup } else { out_module = tTopo->tecModule(id); } - double out_x = roundIfNear0(module->translation().X(), tolerance); - double out_y = roundIfNear0(module->translation().Y(), tolerance); + double out_x = roundIfNear0(module->translation().X(), tolerance_); + double out_y = roundIfNear0(module->translation().Y(), tolerance_); double out_z = module->translation().Z(); double out_r = sqrt(module->translation().X() * module->translation().X() + module->translation().Y() * module->translation().Y()); - double out_phi_rad = roundIfNear0(atan2(module->translation().Y(), module->translation().X()), tolerance); + double out_phi_rad = roundIfNear0(atan2(module->translation().Y(), module->translation().X()), tolerance_); TECOutput << out_side << " " << out_disk << " " << out_sector << " " << out_petal << " " << out_ring << " " << out_module << " " << out_sensor << " " << out_x << " " << out_y << " " << out_z << " " << out_r << " " << out_phi_rad << std::endl; @@ -537,12 +529,12 @@ void ModuleInfo::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup // active area versors (rotation matrix) DD3Vector x, y, z; module->rotation().GetComponents(x, y, z); - x = roundVecIfNear0(x, tolerance); - y = roundVecIfNear0(y, tolerance); - z = roundVecIfNear0(z, tolerance); - xGlobal = roundVecIfNear0(xGlobal, tolerance); - yGlobal = roundVecIfNear0(yGlobal, tolerance); - zGlobal = roundVecIfNear0(zGlobal, tolerance); + x = roundVecIfNear0(x, tolerance_); + y = roundVecIfNear0(y, tolerance_); + z = roundVecIfNear0(z, tolerance_); + xGlobal = roundVecIfNear0(xGlobal, tolerance_); + yGlobal = roundVecIfNear0(yGlobal, tolerance_); + zGlobal = roundVecIfNear0(zGlobal, tolerance_); Output << "\tActive Area Rotation Matrix" << std::endl; Output << "\t z = n = (" << std::fixed << std::setprecision(4) << z.X() << "," << std::fixed << std::setprecision(4) << z.Y() << "," << std::fixed << std::setprecision(4) << z.Z() << ")" << std::endl diff --git a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py index 671c1e044ec8e..40c2d4b21add9 100644 --- a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py +++ b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDB_cfg.py @@ -27,7 +27,7 @@ process.prod = cms.EDAnalyzer("ModuleInfo", fromDDD = cms.bool(False), - tinyDifferences = cms.untracked.bool(True) + tolerance = cms.untracked.double(1.0e-23) ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py index 4f5fd0627f31e..b5b1995abd31d 100644 --- a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py +++ b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoDDD_cfg.py @@ -42,7 +42,7 @@ process.prod = cms.EDAnalyzer("ModuleInfo", fromDDD = cms.bool(True), printDDD = cms.untracked.bool(False), - tinyDifferences = cms.untracked.bool(True) + tolerance = cms.untracked.double(1.0e-23) ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoFromDDDNoPrintDDD_cfg.py b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoFromDDDNoPrintDDD_cfg.py index ec1bf836b3c55..14c144be04c8b 100644 --- a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoFromDDDNoPrintDDD_cfg.py +++ b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoFromDDDNoPrintDDD_cfg.py @@ -29,7 +29,7 @@ process.prod = cms.EDAnalyzer("ModuleInfo", fromDDD = cms.bool(True), printDDD = cms.untracked.bool(False), - tinyDifferences = cms.untracked.bool(True) + tolerance = cms.untracked.double(1.0e-23) ) process.p1 = cms.Path(process.prod) diff --git a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py index 067fed752ad70..09e949ad73f02 100644 --- a/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py +++ b/Geometry/TrackerGeometryBuilder/test/trackerModuleInfoLocalDB_cfg.py @@ -47,7 +47,7 @@ process.prod = cms.EDAnalyzer("ModuleInfo", fromDDD = cms.bool(False), - tinyDifferences = cms.untracked.bool(True) + tolerance = cms.untracked.double(1.0e-23) ) process.p1 = cms.Path(process.prod) diff --git a/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh b/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh index bf0accc62fc4a..7c76f4d5fa580 100755 --- a/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh +++ b/Validation/Geometry/test/dddvsdb/runDDDvsDBGeometryValidation.sh @@ -28,6 +28,9 @@ echo GlobalTag = ${gtag} echo geometry = ${geometry} echo roundFlag = ${roundFlag} +set tolerance = '1.0e-7' +# If rounding enabled, tolerance for numerical comparisons. Absolute values less than this are set to 0. + #global tag gtag is assumed to be of the form GeometryWORD such as GeometryExtended or GeometryIdeal #as of 3.4.X loaded objects in the DB, these correspond to condlabels Extended, Ideal, etc... # Run 2 Extended condlabel corresponds to GeometryExtended2015 scenario. @@ -120,7 +123,7 @@ sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoDB_cfg.py >> ../Geome sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log if ( "${roundFlag}" == round ) then - sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDB_cfg.py >> GeometryValidation.log + sed -i "/tolerance/s/1.0e-23/${tolerance}/" trackerModuleInfoDB_cfg.py >> GeometryValidation.log endif cmsRun trackerModuleInfoDB_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoDB_cfg.py ../ @@ -138,7 +141,7 @@ sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoLocalDB_cfg.py >> ../ sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log if ( "${roundFlag}" == round ) then - sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoLocalDB_cfg.py >> GeometryValidation.log + sed -i "/tolerance/s/1.0e-23/${tolerance}/" trackerModuleInfoLocalDB_cfg.py >> GeometryValidation.log endif cmsRun trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoLocalDB_cfg.py ../ @@ -156,7 +159,7 @@ sed -i "{s/GeometryExtended/${geometry}/}" trackerModuleInfoDDD_cfg.py >> ../Ge sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log if ( "${roundFlag}" == round ) then - sed -i '/tinyDifferences/s/True/False/' trackerModuleInfoDDD_cfg.py >> GeometryValidation.log + sed -i "/tolerance/s/1.0e-23/${tolerance}/" trackerModuleInfoDDD_cfg.py >> GeometryValidation.log endif cmsRun trackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log mv trackerModuleInfoDDD_cfg.py ../ @@ -194,7 +197,7 @@ sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometryFromDB_cfg.py >> Geometr sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log if ( "${roundFlag}" == round ) then - sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromDB_cfg.py >> GeometryValidation.log + sed -i "/tolerance/s/1.0e-23/${tolerance}/" testDTGeometryFromDB_cfg.py >> GeometryValidation.log endif cmsRun testDTGeometryFromDB_cfg.py > outDB_DT.log if ( -s outDB_DT.log ) then @@ -210,7 +213,7 @@ sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometryFromLocalDB_cfg.py >> Ge sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log if ( "${roundFlag}" == round ) then - sed -i '/tinyDifferences/s/True/False/' testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log + sed -i "/tolerance/s/1.0e-23/${tolerance}/" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log endif cmsRun testDTGeometryFromLocalDB_cfg.py > outLocalDB_DT.log if ( -s outDB_DT.log ) then @@ -226,7 +229,7 @@ sed -i "{s/GeometryExtended/${geometry}/}" testDTGeometry_cfg.py >> GeometryVal sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometry_cfg.py >> GeometryValidation.log sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometry_cfg.py >> GeometryValidation.log if ( "${roundFlag}" == round ) then - sed -i '/tinyDifferences/s/True/False/' testDTGeometry_cfg.py >> GeometryValidation.log + sed -i "/tolerance/s/1.0e-23/${tolerance}/" testDTGeometry_cfg.py >> GeometryValidation.log endif cmsRun testDTGeometry_cfg.py > outDDD_DT.log if ( -s outDDD_DT.log ) then From e742e3db83e4c09491d3e8bbdc0705649a70d77d Mon Sep 17 00:00:00 2001 From: Carl Vuosalo Date: Fri, 4 Sep 2020 02:21:41 +0200 Subject: [PATCH 10/10] Minor formatting --- Geometry/DTGeometry/test/DTGeometryAnalyzer.cc | 3 +-- Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc b/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc index f7a98b13e481f..5d32fa7227160 100644 --- a/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc +++ b/Geometry/DTGeometry/test/DTGeometryAnalyzer.cc @@ -47,8 +47,7 @@ DTGeometryAnalyzer::DTGeometryAnalyzer(const edm::ParameterSet& iConfig) : dashedLineWidth_(104), dashedLine_(string(dashedLineWidth_, '-')), myName_("DTGeometryAnalyzer"), - tolerance_(iConfig.getUntrackedParameter("tolerance", 1.e-23)) -{} + tolerance_(iConfig.getUntrackedParameter("tolerance", 1.e-23)) {} DTGeometryAnalyzer::~DTGeometryAnalyzer() {} diff --git a/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc b/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc index 2885d1d6c0e7b..6daf42b831f39 100644 --- a/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc +++ b/Geometry/TrackerGeometryBuilder/test/ModuleInfo.cc @@ -82,8 +82,7 @@ static const double density_units = 6.24151e+18; ModuleInfo::ModuleInfo(const edm::ParameterSet& ps) : fromDDD_(ps.getParameter("fromDDD")), printDDD_(ps.getUntrackedParameter("printDDD", true)), - tolerance_(ps.getUntrackedParameter("tolerance", 1.e-23)) -{} + tolerance_(ps.getUntrackedParameter("tolerance", 1.e-23)) {} ModuleInfo::~ModuleInfo() {}