File indexing completed on 2023-03-17 11:27:28
0001
0002
0003 cmsenv
0004
0005 echo " START Geometry Validation"
0006
0007
0008
0009
0010
0011
0012 set roundFlag = ''
0013 if ($
0014 set gtag="auto:run1_mc"
0015 set geometry="GeometryExtended"
0016 else if($
0017 set gtag=`echo ${1}`
0018 set geometry="GeometryExtended"
0019 else if ($
0020 set gtag=`echo ${1}`
0021 set geometry=`echo ${2}`
0022 else if ($
0023 set gtag=`echo ${1}`
0024 set geometry=`echo ${2}`
0025 set roundFlag = `echo ${3}`
0026 endif
0027 echo GlobalTag = ${gtag}
0028 echo geometry = ${geometry}
0029 echo roundFlag = ${roundFlag}
0030
0031 set tolerance = '1.0e-7'
0032
0033
0034
0035
0036
0037 set condlabel = `(echo $geometry | sed -e '{s/Geometry//g}' -e '{s/Plan//g}' -e '{s/[0-9]*//g}')`
0038 echo ${condlabel} " geometry label from db"
0039
0040 set workArea = `(echo $geometry)`
0041 mkdir ${workArea}
0042 cd ${workArea}
0043 set myDir=`pwd`
0044 echo $myDir
0045
0046 cp $CMSSW_RELEASE_BASE/src/CondTools/Geometry/test/writehelpers/geometryxmlwriter.py .
0047 echo $geometry
0048 sed -i "{s/GeometryExtended/${geometry}/}" geometryxmlwriter.py > GeometryValidation.log
0049 cmsRun geometryxmlwriter.py >> GeometryValidation.log
0050
0051 cp $CMSSW_RELEASE_BASE/src/CondTools/Geometry/test/geometrywriter.py .
0052
0053 sed -i "{s/GeometryExtended/${geometry}/}" geometrywriter.py >> GeometryValidation.log
0054 sed -i "{s/geTagXX.xml/geSingleBigFile.xml/g}" geometrywriter.py >> GeometryValidation.log
0055 cmsRun geometrywriter.py >> GeometryValidation.log
0056 if ( -e myfile.db ) then
0057 echo "The local DB file is present" | tee -a GeometryValidation.log
0058 else
0059 echo "ERROR the local DB file is not present" | tee -a GeometryValidation.log
0060 exit
0061 endif
0062
0063 echo "Start compare the content of GT and the local DB" | tee -a GeometryValidation.log
0064
0065
0066
0067
0068
0069 cp $CMSSW_RELEASE_BASE/src/CondTools/Geometry/test/geometrytest_local.py .
0070 sed -i "{/process.GlobalTag.globaltag/d}" geometrytest_local.py >> GeometryValidation.log
0071 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" geometrytest_local.py >> GeometryValidation.log
0072
0073 cmsRun geometrytest_local.py > outLocalDB.log
0074 if ( -s outLocalDB.log ) then
0075 echo "Local DB access run ok" | tee -a GeometryValidation.log
0076 else
0077 echo "ERROR the output of Local DB access test is empty" | tee -a GeometryValidation.log
0078 exit
0079 endif
0080
0081 cp $CMSSW_RELEASE_BASE/src/CondTools/Geometry/test/geometrytest_db.py .
0082 sed -i "{/process.GlobalTag.globaltag/d}" geometrytest_db.py >> GeometryValidation.log
0083 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" geometrytest_db.py >> GeometryValidation.log
0084 sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" geometrytest_db.py >> GeometryValidation.log
0085 cmsRun geometrytest_db.py > outGTDB.log
0086 if ( -s outGTDB.log ) then
0087 echo "GT DB access run ok" | tee -a GeometryValidation.log
0088 else
0089 echo "ERROR the output of GT DB access test is empty" | tee -a GeometryValidation.log
0090 exit
0091 endif
0092
0093 diff outLocalDB.log outGTDB.log > logDiffLocalvsGT.log
0094 if ( -s logDiffLocalvsGT.log ) then
0095 echo "WARNING THE CONTENT OF GLOBAL TAG MAY BE DIFFERENT WITH RESPECT TO THE LOCAL DB FILE" | tee -a GeometryValidation.log
0096 cp $CMSSW_BASE/src/Validation/Geometry/test/dddvsdb/sortXML.sh .
0097 cp $CMSSW_BASE/src/Validation/Geometry/test/dddvsdb/sortCompositeMaterials.py .
0098 ./sortXML.sh outLocalDB.log localdb.xml
0099 ./sortXML.sh outGTDB.log gtdb.xml
0100 diff localdb.xml gtdb.xml > logDiffLocXMLvsGTXML.log
0101 sort localdb.xml > localdb.sort
0102 sort gtdb.xml > gtdb.sort
0103 diff localdb.sort gtdb.sort > logDiffLocvsGTSort.log
0104 echo Examine logDiffLocXMLvsGTXML.log to see the differences in the local and GT XML files. | tee -a GeometryValidation.log
0105 echo Examine logDiffLocvsGTSort.log to see the differences in sorted content of the local and GT XML files. | tee -a GeometryValidation.log
0106 echo The two XML files may have real differences, or they may have identical content that is simply re-arranged. | tee -a GeometryValidation.log
0107 echo Examining these log files can help you determine whether the XML files have significant differences. | tee -a GeometryValidation.log
0108 endif
0109
0110 echo "End compare the content of GT and the local DB" | tee -a GeometryValidation.log
0111
0112 echo "Start Tracker RECO geometry validation" | tee -a GeometryValidation.log
0113
0114 mkdir tkdb
0115 mkdir tkdblocal
0116 mkdir tkddd
0117
0118 cp myfile.db tkdblocal
0119
0120 cd tkdb
0121 cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/python/testTrackerModuleInfoDB_cfg.py .
0122 sed -i "{/process.GlobalTag.globaltag/d}" testTrackerModuleInfoDB_cfg.py >> ../GeometryValidation.log
0123 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testTrackerModuleInfoDB_cfg.py >> ../GeometryValidation.log
0124 sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testTrackerModuleInfoDB_cfg.py >> ../GeometryValidation.log
0125 if ( "${roundFlag}" == round ) then
0126 sed -i "/tolerance/s/1.0e-23/${tolerance}/" testTrackerModuleInfoDB_cfg.py >> GeometryValidation.log
0127 endif
0128 cmsRun testTrackerModuleInfoDB_cfg.py >> ../GeometryValidation.log
0129 mv testTrackerModuleInfoDB_cfg.py ../
0130 if ( -s ModuleInfo.log ) then
0131 echo "TK test from DB run ok" | tee -a ../GeometryValidation.log
0132 else
0133 echo "ERROR the output of TK test from DB is empty" | tee -a ../GeometryValidation.log
0134 exit
0135 endif
0136
0137 cd ../tkdblocal
0138 cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/python/trackerModuleInfoLocalDB_cfg.py .
0139
0140 sed -i "{/process.GlobalTag.globaltag/d}" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log
0141 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log
0142 sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log
0143 if ( "${roundFlag}" == round ) then
0144 sed -i "/tolerance/s/1.0e-23/${tolerance}/" trackerModuleInfoLocalDB_cfg.py >> GeometryValidation.log
0145 endif
0146 cmsRun trackerModuleInfoLocalDB_cfg.py >> ../GeometryValidation.log
0147 mv trackerModuleInfoLocalDB_cfg.py ../
0148 if ( -s ModuleInfo.log ) then
0149 echo "TK test from Local DB run ok" | tee -a ../GeometryValidation.log
0150 else
0151 echo "ERROR the output of TK test from Local DB is empty" | tee -a ../GeometryValidation.log
0152 exit
0153 endif
0154
0155 cd ../tkddd
0156 cp $CMSSW_RELEASE_BASE/src/Geometry/TrackerGeometryBuilder/test/python/testTrackerModuleInfoDDD_cfg.py .
0157 sed -i "{s/GeometryExtended/${geometry}/}" testTrackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log
0158 sed -i "{/process.GlobalTag.globaltag/d}" testTrackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log
0159 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testTrackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log
0160 if ( "${roundFlag}" == round ) then
0161 sed -i "/tolerance/s/1.0e-23/${tolerance}/" testTrackerModuleInfoDDD_cfg.py >> GeometryValidation.log
0162 endif
0163 cmsRun testTrackerModuleInfoDDD_cfg.py >> ../GeometryValidation.log
0164 mv testTrackerModuleInfoDDD_cfg.py ../
0165 if ( -s ModuleInfo.log ) then
0166 echo "TK test from DDD run ok" | tee -a ../GeometryValidation.log
0167 else
0168 echo "ERROR the output of TK test from DDD is empty" | tee -a ../GeometryValidation.log
0169 exit
0170 endif
0171
0172 cd ../
0173 rm -f tkdblocal/myfile.db
0174 diff -r tkdb/ tkddd/ > logTkDiffGTvsDDD.log
0175 if ( -s logTkDiffGTvsDDD.log ) then
0176 echo "WARNING THE TRACKER RECO GEOMETRY IS DIFFERENT BETWEEN DDD AND GT DB" | tee -a GeometryValidation.log
0177 endif
0178
0179 diff -r tkdblocal/ tkddd/ > logTkDiffLocalvsDDD.log
0180 if ( -s logTkDiffLocalvsDDD.log ) then
0181 echo "WARNING THE TRACKER RECO GEOMETRY IS DIFFERENT BETWEEN DDD AND LOCAL DB" | tee -a GeometryValidation.log
0182 endif
0183
0184 diff -r tkdb/ tkdblocal/ > logTkDiffGTvsLocal.log
0185 if ( -s logTkDiffGTvsLocal.log ) then
0186 echo "WARNING THE TRACKER RECO GEOMETRY IS DIFFERENT BETWEEN GT DB AND LOCAL DB" | tee -a GeometryValidation.log
0187 endif
0188
0189 echo "End Tracker RECO geometry validation" | tee -a GeometryValidation.log
0190
0191 echo "Start DT RECO geometry validation" | tee -a GeometryValidation.log
0192
0193
0194 cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromDB_cfg.py .
0195 sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometryFromDB_cfg.py >> GeometryValidation.log
0196 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log
0197 sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromDB_cfg.py >> GeometryValidation.log
0198 if ( "${roundFlag}" == round ) then
0199 sed -i "/tolerance/s/1.0e-23/${tolerance}/" testDTGeometryFromDB_cfg.py >> GeometryValidation.log
0200 endif
0201 cmsRun testDTGeometryFromDB_cfg.py > outDB_DT.log
0202 if ( -s outDB_DT.log ) then
0203 echo "DT test from DB run ok" | tee -a GeometryValidation.log
0204 else
0205 echo "ERROR the output of DT test from DB is empty" | tee -a GeometryValidation.log
0206 exit
0207 endif
0208
0209
0210 cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometryFromLocalDB_cfg.py .
0211 sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log
0212 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log
0213 sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log
0214 if ( "${roundFlag}" == round ) then
0215 sed -i "/tolerance/s/1.0e-23/${tolerance}/" testDTGeometryFromLocalDB_cfg.py >> GeometryValidation.log
0216 endif
0217 cmsRun testDTGeometryFromLocalDB_cfg.py > outLocalDB_DT.log
0218 if ( -s outDB_DT.log ) then
0219 echo "DT test from Local DB run ok" | tee -a GeometryValidation.log
0220 else
0221 echo "ERROR the output of DT test from Local DB is empty" | tee -a GeometryValidation.log
0222 exit
0223 endif
0224
0225
0226 cp $CMSSW_RELEASE_BASE/src/Geometry/DTGeometry/test/testDTGeometry_cfg.py .
0227 sed -i "{s/GeometryExtended/${geometry}/}" testDTGeometry_cfg.py >> GeometryValidation.log
0228 sed -i "{/process.GlobalTag.globaltag/d}" testDTGeometry_cfg.py >> GeometryValidation.log
0229 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testDTGeometry_cfg.py >> GeometryValidation.log
0230 if ( "${roundFlag}" == round ) then
0231 sed -i "/tolerance/s/1.0e-23/${tolerance}/" testDTGeometry_cfg.py >> GeometryValidation.log
0232 endif
0233 cmsRun testDTGeometry_cfg.py > outDDD_DT.log
0234 if ( -s outDDD_DT.log ) then
0235 echo "DT test from DDD run ok" | tee -a GeometryValidation.log
0236 else
0237 echo "ERROR the output of DT test from DDD is empty" | tee -a GeometryValidation.log
0238 exit
0239 endif
0240
0241 diff --ignore-matching-lines='Geometry node for DTGeom' outDB_DT.log outDDD_DT.log > logDTDiffGTvsDDD.log
0242 if ( -s logDTDiffGTvsDDD.log ) then
0243 echo "WARNING THE DT RECO GEOMETRY IS DIFFERENT BETWEEN DDD AND GT DB" | tee -a GeometryValidation.log
0244 endif
0245
0246 diff --ignore-matching-lines='Geometry node for DTGeom' outLocalDB_DT.log outDDD_DT.log > logDTDiffLocalvsDDD.log
0247 if ( -s logDTDiffLocalvsDDD.log ) then
0248 echo "WARNING THE DT RECO GEOMETRY IS DIFFERENT BETWEEN DDD AND LOCAL DB" | tee -a GeometryValidation.log
0249 endif
0250
0251 diff --ignore-matching-lines='Geometry node for DTGeom' outDB_DT.log outLocalDB_DT.log > logDTDiffGTvsLocal.log
0252 if ( -s logDTDiffGTvsLocal.log ) then
0253 echo "WARNING THE DT RECO GEOMETRY IS DIFFERENT BETWEEN GT DB AND LOCAL DB" | tee -a GeometryValidation.log
0254 endif
0255
0256 echo "End DT RECO geometry validation" | tee -a GeometryValidation.log
0257
0258 echo "Start CSC RECO geometry validation" | tee -a GeometryValidation.log
0259
0260 cp $CMSSW_RELEASE_BASE/src/Geometry/CSCGeometry/test/testCSCGeometryFromDB_cfg.py .
0261 sed -i "{/process.GlobalTag.globaltag/d}" testCSCGeometryFromDB_cfg.py >> GeometryValidation.log
0262 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testCSCGeometryFromDB_cfg.py >> GeometryValidation.log
0263 sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testCSCGeometryFromDB_cfg.py >> GeometryValidation.log
0264 cmsRun testCSCGeometryFromDB_cfg.py > outDB_CSC.log
0265 if ( -s outDB_CSC.log ) then
0266 echo "CSC test from GT DB run ok" | tee -a GeometryValidation.log
0267 else
0268 echo "ERROR the output of CSC test from GT DB is empty" | tee -a GeometryValidation.log
0269 exit
0270 endif
0271
0272 cp $CMSSW_RELEASE_BASE/src/Geometry/CSCGeometry/test/testCSCGeometryFromLocalDB_cfg.py .
0273 sed -i "{/process.GlobalTag.globaltag/d}" testCSCGeometryFromLocalDB_cfg.py >> GeometryValidation.log
0274 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testCSCGeometryFromLocalDB_cfg.py >> GeometryValidation.log
0275 sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testCSCGeometryFromLocalDB_cfg.py >> GeometryValidation.log
0276 cmsRun testCSCGeometryFromLocalDB_cfg.py > outLocalDB_CSC.log
0277 if ( -s outLocalDB_CSC.log ) then
0278 echo "CSC test from Local DB run ok" | tee -a GeometryValidation.log
0279 else
0280 echo "ERROR the output of CSC test from Local DB is empty" | tee -a GeometryValidation.log
0281 exit
0282 endif
0283
0284 cp $CMSSW_RELEASE_BASE/src/Geometry/CSCGeometry/test/testCSCGeometry_cfg.py .
0285 sed -i "{s/GeometryExtended/${geometry}/}" testCSCGeometry_cfg.py >> GeometryValidation.log
0286 sed -i "{/process.GlobalTag.globaltag/d}" testCSCGeometry_cfg.py >> GeometryValidation.log
0287 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testCSCGeometry_cfg.py >> GeometryValidation.log
0288 cmsRun testCSCGeometry_cfg.py > outDDD_CSC.log
0289 if ( -s outDDD_CSC.log ) then
0290 echo "CSC test from DDD run ok" | tee -a GeometryValidation.log
0291 else
0292 echo "ERROR the output of CSC test from DDD is empty" | tee -a GeometryValidation.log
0293 exit
0294 endif
0295
0296 diff --ignore-matching-lines='Geometry node for CSCGeom' outDB_CSC.log outDDD_CSC.log > logCSCDiffGTvsDDD.log
0297 if ( -s logCSCDiffGTvsDDD.log ) then
0298 echo "WARNING THE CSC RECO GEOMETRY IS DIFFERENT BETWEEN DDD AND GT DB" | tee -a GeometryValidation.log
0299 endif
0300
0301 diff --ignore-matching-lines='Geometry node for CSCGeom' outLocalDB_CSC.log outDDD_CSC.log > logCSCDiffLocalvsDDD.log
0302 if ( -s logCSCDiffLocalvsDDD.log ) then
0303 echo "WARNING THE CSC RECO GEOMETRY IS DIFFERENT BETWEEN DDD AND LOCAL DB" | tee -a GeometryValidation.log
0304 endif
0305
0306 diff --ignore-matching-lines='Geometry node for CSCGeom' outLocalDB_CSC.log outDB_CSC.log > logCSCDiffLocalvsGT.log
0307 if ( -s logCSCDiffLocalvsGT.log ) then
0308 echo "WARNING THE CSC RECO GEOMETRY IS DIFFERENT BETWEEN GT DB AND LOCAL DB" | tee -a GeometryValidation.log
0309 endif
0310
0311 echo "End CSC RECO geometry validation" | tee -a GeometryValidation.log
0312
0313 echo "Start RPC RECO geometry validation" | tee -a GeometryValidation.log
0314
0315 cp $CMSSW_RELEASE_BASE/src/Geometry/RPCGeometry/test/testRPCGeometryFromDB_cfg.py .
0316 sed -i "{/process.GlobalTag.globaltag/d}" testRPCGeometryFromDB_cfg.py >> GeometryValidation.log
0317 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testRPCGeometryFromDB_cfg.py >> GeometryValidation.log
0318 sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testRPCGeometryFromDB_cfg.py >> GeometryValidation.log
0319 cmsRun testRPCGeometryFromDB_cfg.py > outDB_RPC.log
0320 if ( -s outDB_RPC.log ) then
0321 echo "RPC test from GT DB run ok" | tee -a GeometryValidation.log
0322 else
0323 echo "ERROR the output of RPC test from GT DB is empty" | tee -a GeometryValidation.log
0324 exit
0325 endif
0326
0327 cp $CMSSW_RELEASE_BASE/src/Geometry/RPCGeometry/test/testRPCGeometryFromLocalDB_cfg.py .
0328 sed -i "{/process.GlobalTag.globaltag/d}" testRPCGeometryFromLocalDB_cfg.py >> GeometryValidation.log
0329 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testRPCGeometryFromLocalDB_cfg.py >> GeometryValidation.log
0330 sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testRPCGeometryFromLocalDB_cfg.py >> GeometryValidation.log
0331 cmsRun testRPCGeometryFromLocalDB_cfg.py > outLocalDB_RPC.log
0332 if ( -s outLocalDB_RPC.log ) then
0333 echo "RPC test from Local DB run ok" | tee -a GeometryValidation.log
0334 else
0335 echo "ERROR the output of RPC test from Local DB is empty" | tee -a GeometryValidation.log
0336 exit
0337 endif
0338
0339 cp $CMSSW_RELEASE_BASE/src/Geometry/RPCGeometry/test/testRPCGeometry_cfg.py .
0340 sed -i "{s/GeometryExtended/${geometry}/}" testRPCGeometry_cfg.py >> GeometryValidation.log
0341 sed -i "{/process.GlobalTag.globaltag/d}" testRPCGeometry_cfg.py >> GeometryValidation.log
0342 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testRPCGeometry_cfg.py >> GeometryValidation.log
0343 cmsRun testRPCGeometry_cfg.py > outDDD_RPC.log
0344 if ( -s outDDD_RPC.log ) then
0345 echo "RPC test from DDD run ok" | tee -a GeometryValidation.log
0346 else
0347 echo "ERROR the output of RPC test from DDD is empty" | tee -a GeometryValidation.log
0348 exit
0349 endif
0350
0351 diff --ignore-matching-lines='Geometry node for RPCGeom' outDB_RPC.log outDDD_RPC.log > logRPCDiffGTvsDDD.log
0352 if ( -s logRPCDiffGTvsDDD.log ) then
0353 echo "WARNING THE RPC RECO GEOMETRY IS DIFFERENT BETWEEN DDD AND GT DB" | tee -a GeometryValidation.log
0354 endif
0355
0356 diff --ignore-matching-lines='Geometry node for RPCGeom' outLocalDB_RPC.log outDDD_RPC.log > logRPCDiffLocalvsDDD.log
0357 if ( -s logRPCDiffLocalvsDDD.log ) then
0358 echo "WARNING THE RPC RECO GEOMETRY IS DIFFERENT BETWEEN DDD AND LOCAL DB" | tee -a GeometryValidation.log
0359 endif
0360
0361 diff --ignore-matching-lines='Geometry node for RPCGeom' outLocalDB_RPC.log outDB_RPC.log > logRPCDiffLocalvsDB.log
0362 if ( -s logRPCDiffLocalvsDB.log ) then
0363 echo "WARNING THE RPC RECO GEOMETRY IS DIFFERENT BETWEEN GT DB AND LOCAL DB" | tee -a GeometryValidation.log
0364 endif
0365
0366 echo "End RPC RECO geometry validation" | tee -a GeometryValidation.log
0367
0368 echo "Start CALO RECO geometry validation" | tee -a GeometryValidation.log
0369
0370 cp myfile.db $CMSSW_BASE/src/Geometry/CaloEventSetup/test/
0371 cd $CMSSW_BASE/src/Geometry/CaloEventSetup/
0372 cd data
0373 wget -i download.url
0374 cd ../test
0375 source setup.scr >> ${myDir}/GeometryValidation.log
0376 sed -i "{s/GeometryExtended/${geometry}/}" runTestCaloGeometryDDD_cfg.py >> ${myDir}/GeometryValidation.log
0377 sed -i "{/process.GlobalTag.globaltag/d}" runTestCaloGeometryDDD_cfg.py >> ${myDir}/GeometryValidation.log
0378 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" runTestCaloGeometryDDD_cfg.py >> ${myDir}/GeometryValidation.log
0379 cmsRun runTestCaloGeometryDDD_cfg.py > GeometryCaloValidationDDD.log
0380 if ( -s GeometryCaloValidationDDD.log ) then
0381 echo "CALO test from DDD run ok" | tee -a ${myDir}/GeometryValidation.log
0382 else
0383 echo "ERROR the output of CALO test from DDD is empty" | tee -a ${myDir}/GeometryValidation.log
0384 exit
0385 endif
0386
0387 sed -i "{/process.GlobalTag.globaltag/d}" runTestCaloGeometryDB_cfg.py >> ${myDir}/GeometryValidation.log
0388 sed -i "s/auto:startup/${gtag}/" runTestCaloGeometryDB_cfg.py >> ${myDir}/GeometryValidation.log
0389 sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" runTestCaloGeometryDB_cfg.py >> ${myDir}/GeometryValidation.log
0390 cmsRun runTestCaloGeometryDB_cfg.py > GeometryCaloValidationDB.log
0391 if ( -s GeometryCaloValidationDB.log ) then
0392 echo "CALO test from GT DB run ok" | tee -a ${myDir}/GeometryValidation.log
0393 else
0394 echo "ERROR the output of CALO test from GT DB is empty" | tee -a ${myDir}/GeometryValidation.log
0395 exit
0396 endif
0397
0398 sed -i "{/process.GlobalTag.globaltag/d}" runTestCaloGeometryLocalDB_cfg.py >> ${myDir}/GeometryValidation.log
0399 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" runTestCaloGeometryLocalDB_cfg.py >> ${myDir}/GeometryValidation.log
0400 sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" runTestCaloGeometryLocalDB_cfg.py >> ${myDir}/GeometryValidation.log
0401 cmsRun runTestCaloGeometryLocalDB_cfg.py > GeometryCaloValidationLocal.log
0402 if ( -s GeometryCaloValidationLocal.log ) then
0403 echo "CALO Local test from Local DB run ok" | tee -a ${myDir}/GeometryValidation.log
0404 else
0405 echo "ERROR the output of CALO test from Local DB is empty" | tee -a ${myDir}/GeometryValidation.log
0406 exit
0407 endif
0408 cd ${myDir}
0409
0410 less $CMSSW_BASE/src/Geometry/CaloEventSetup/test/GeometryCaloValidationDDD.log >> GeometryValidation.log
0411 less $CMSSW_BASE/src/Geometry/CaloEventSetup/test/GeometryCaloValidationDB.log >> GeometryValidation.log
0412 less $CMSSW_BASE/src/Geometry/CaloEventSetup/test/GeometryCaloValidationLocal.log >> GeometryValidation.log
0413
0414 grep 'BIG DISAGREEMENT FOUND' $CMSSW_BASE/src/Geometry/CaloEventSetup/test/GeometryCaloValidationDDD.log > CALODDDError.log
0415 grep 'BIG DISAGREEMENT FOUND' $CMSSW_BASE/src/Geometry/CaloEventSetup/test/GeometryCaloValidationDB.log > CALODBError.log
0416 grep 'BIG DISAGREEMENT FOUND' $CMSSW_BASE/src/Geometry/CaloEventSetup/test/GeometryCaloValidationLocal.log > CALOLocalError.log
0417
0418 rm -f $CMSSW_BASE/src/Geometry/CaloEventSetup/test/GeometryCaloValidationDDD.log
0419 rm -f $CMSSW_BASE/src/Geometry/CaloEventSetup/test/GeometryCaloValidationDB.log
0420 rm -f $CMSSW_BASE/src/Geometry/CaloEventSetup/test/GeometryCaloValidationLocal.log
0421 source $CMSSW_BASE/src/Geometry/CaloEventSetup/test/clean.scr
0422
0423 if ( -s CALODDDError.log ) then
0424 echo "WARNING THE CALO GEOMETRY IS DIFFERENT BETWEEN DDD AND REF" | tee -a GeometryValidation.log
0425 endif
0426
0427 if ( -s CALODBError.log ) then
0428 echo "WARNING THE CALO GEOMETRY IS DIFFERENT BETWEEN GT DB AND REF" | tee -a GeometryValidation.log
0429 endif
0430
0431 if ( -s CALOLocalError.log ) then
0432 echo "WARNING THE CALO GEOMETRY IS DIFFERENT BETWEEN LOCAL DB AND REF" | tee -a GeometryValidation.log
0433 endif
0434
0435 echo "End CALO RECO geometry validation" | tee -a GeometryValidation.log
0436
0437 echo "Start Simulation geometry validation" | tee -a GeometryValidation.log
0438
0439
0440
0441
0442
0443
0444
0445
0446
0447
0448
0449
0450
0451
0452
0453
0454
0455
0456
0457 if ( ${geometry} == GeometryExtended2021 ) then
0458 cat > readXML.expected <<END_OF_TEXT
0459 Here I am
0460 Top Most LogicalPart =cms:OCMS
0461 mat=materials:Air
0462 solid=cms:OCMS Box: xhalf[cm]=10100 yhalf[cm]=10100 zhalf[cm]=45000
0463 After the GeoHistory in the output file dumpGeoHistoryOnRead you will see x, y, z, r11, r12, r13, r21, r22, r23, r31, r32, r33
0464 finished
0465 END_OF_TEXT
0466
0467 else
0468
0469 cat > readXML.expected <<END_OF_TEXT
0470 Here I am
0471 Top Most LogicalPart =cms:OCMS
0472 mat=materials:Air
0473 solid=cms:OCMS Polycone_rrz: startPhi[deg]=0 dPhi[deg]=360 Sizes[cm]=-45000 0 100 -2700 0 100 -2700 0 1750 2700 0 1750 2700 0 100 45000 0 100
0474 After the GeoHistory in the output file dumpGeoHistoryOnRead you will see x, y, z, r11, r12, r13, r21, r22, r23, r31, r32, r33
0475 finished
0476 END_OF_TEXT
0477
0478 endif
0479
0480 cp $CMSSW_RELEASE_BASE/src/GeometryReaders/XMLIdealGeometryESSource/test/readExtendedAndDump.py .
0481 sed -i "{s/GeometryExtended/${geometry}/}" readExtendedAndDump.py >> GeometryValidation.log
0482 cmsRun readExtendedAndDump.py > readXMLAndDump.log
0483
0484 cp $CMSSW_RELEASE_BASE/src/GeometryReaders/XMLIdealGeometryESSource/test/testReadXMLFromGTDB.py .
0485
0486 sed -i "{/process.GlobalTag.globaltag/d}" testReadXMLFromGTDB.py >> GeometryValidation.log
0487 sed -i "{/process.XMLFromDBSource.label/d}" testReadXMLFromGTDB.py >> GeometryValidation.log
0488 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testReadXMLFromGTDB.py >> GeometryValidation.log
0489 sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('${condlabel}')" testReadXMLFromGTDB.py >> GeometryValidation.log
0490 cmsRun testReadXMLFromGTDB.py > readXMLfromGTDB.log
0491
0492 cp $CMSSW_RELEASE_BASE/src/GeometryReaders/XMLIdealGeometryESSource/test/testReadXMLFromDB.py .
0493
0494 sed -i "{/process.GlobalTag.globaltag/d}" testReadXMLFromDB.py >> GeometryValidation.log
0495 sed -i "{/process.XMLFromDBSource.label/d}" testReadXMLFromDB.py >> GeometryValidation.log
0496 sed -i "/FrontierConditions_GlobalTag_cff/ a\from Configuration.AlCa.GlobalTag import GlobalTag\nprocess.GlobalTag = GlobalTag(process.GlobalTag, '${gtag}', '')" testReadXMLFromDB.py >> GeometryValidation.log
0497 sed -i "/FrontierConditions_GlobalTag_cff/ a\process.XMLFromDBSource.label = cms.string('')" testReadXMLFromDB.py >> GeometryValidation.log
0498 cmsRun testReadXMLFromDB.py > readXMLfromLocDB.log
0499
0500 cp $CMSSW_RELEASE_BASE/src/GeometryReaders/XMLIdealGeometryESSource/test/readBigXMLAndDump.py .
0501 sed -i "{/geomXMLFiles = cms.vstring('GeometryReaders\/XMLIdealGeometryESSource\/test\/fred.xml'),/d}" readBigXMLAndDump.py >> GeometryValidation.log
0502 sed -i "/XMLIdealGeometryESSource/ a\\t\tgeomXMLFiles=cms.vstring('${workArea}\/geSingleBigFile.xml')," readBigXMLAndDump.py >> GeometryValidation.log
0503 cmsRun readBigXMLAndDump.py > readBigXMLAndDump.log
0504
0505 diff readXMLAndDump.log readXML.expected > diffreadXMLSTD.log
0506 diff readXMLfromGTDB.log readXML.expected > diffreadXMLGTDB.log
0507 diff readXMLfromLocDB.log readXML.expected > diffreadXMLLocDB.log
0508 diff readBigXMLAndDump.log readXML.expected > diffreadXMLBDB.log
0509
0510 if ( -s diffreadXMLSTD.log ) then
0511 echo "ERROR THE MULTI-XML FILE GEOMETRY WAS NOT DUMPED PROPERLY." | tee -a GeometryValidation.log
0512 exit
0513 else
0514 echo "GeometryFile dump from multiple XML files done."
0515 endif
0516
0517 if ( -s diffreadXMLGTDB.log ) then
0518 echo "ERROR THE GLOBAL TAG DATABASE GEOMETRY WAS NOT DUMPED PROPERLY." | tee -a GeometryValidation.log
0519 exit
0520 else
0521 echo "GeometryFile dump from global tag database done."
0522 endif
0523
0524 if ( -s diffreadXMLLocDB.log ) then
0525 echo "ERROR THE LOCAL DATABASE GEOMETRY WAS NOT DUMPED PROPERLY." | tee -a GeometryValidation.log
0526 exit
0527 else
0528 echo "GeometryFile dump from local database done."
0529 endif
0530
0531 if ( -s diffreadXMLBDB.log ) then
0532 echo "ERROR THE BIG SINGLE XML FILE WAS NOT DUMPED PROPERLY." | tee -a GeometryValidation.log
0533 exit
0534 else
0535 echo "GeometryFile dump from big single XML file done."
0536 endif
0537
0538
0539
0540
0541
0542
0543
0544
0545 echo ">>> processing event # run: 1 lumi: 1 event: 1 time 1" >compDDdumperrors.expected
0546 echo ">>> processed 1 events" >>compDDdumperrors.expected
0547
0548 cp $CMSSW_RELEASE_BASE/src/GeometryReaders/XMLIdealGeometryESSource/test/testCompareDumpFiles.py .
0549 sed -i "{/dumpFile1 /d}" testCompareDumpFiles.py
0550 sed -i "{/dumpFile2 /d}" testCompareDumpFiles.py
0551 sed -i "/TestCompareDDDumpFiles/ a\dumpFile1=cms.string\('./dumpSTD'\)\, dumpFile2=cms.string\('./dumpBDB'\)," testCompareDumpFiles.py
0552 cmsRun testCompareDumpFiles.py > tcdfSTDvsBDB.log
0553
0554
0555 if (-s tcdfSTDvsBDB.log || -s diffcompSTDvsBDB.log ) then
0556 echo "WARNING THE GEOMETRYFILE IS DIFFERENT BETWEEN STD XML AND BIG SINGLE XML." | tee -a GeometryValidation.log
0557 endif
0558
0559 rm testCompareDumpFiles.py
0560 cp $CMSSW_RELEASE_BASE/src/GeometryReaders/XMLIdealGeometryESSource/test/testCompareDumpFiles.py .
0561 sed -i "{/dumpFile1 /d}" testCompareDumpFiles.py
0562 sed -i "{/dumpFile2 /d}" testCompareDumpFiles.py
0563 sed -i "/TestCompareDDDumpFiles/ a\dumpFile1=cms.string\('./dumpSTD'\)\, dumpFile2=cms.string\('./dumpLocDB'\)," testCompareDumpFiles.py
0564 cmsRun testCompareDumpFiles.py > tcdfSTDvsLocDB.log
0565
0566 diff compDDdumperrors.log compDDdumperrors.expected > diffcompSTDvsLocDB.log
0567 if (-s tcdfSTDvsLocDB.log || -s diffcompSTDvsLocDB.log ) then
0568 echo "WARNING THE GEOMETRYFILE IS DIFFERENT BETWEEN STD XML AND LOCAL DATABASE BLOB." | tee -a GeometryValidation.log
0569 endif
0570
0571 rm testCompareDumpFiles.py
0572 cp $CMSSW_RELEASE_BASE/src/GeometryReaders/XMLIdealGeometryESSource/test/testCompareDumpFiles.py .
0573 sed -i "{/dumpFile1 /d}" testCompareDumpFiles.py
0574 sed -i "{/dumpFile2 /d}" testCompareDumpFiles.py
0575 sed -i "/TestCompareDDDumpFiles/ a\dumpFile1=cms.string\('./dumpSTD'\)\, dumpFile2=cms.string\('./dumpGTDB'\)," testCompareDumpFiles.py
0576 cmsRun testCompareDumpFiles.py > tcdfSTDvsGTDB.log
0577
0578 diff compDDdumperrors.log compDDdumperrors.expected > diffcompSTDvsGTDB.log
0579 if (-s tcdfSTDvsGTDB.log || -s diffcompSTDvsGTDB.log ) then
0580 echo "WARNING THE GEOMETRYFILE IS DIFFERENT BETWEEN STD XML AND GLOBALTAG DATABASE BLOB." | tee -a GeometryValidation.log
0581 endif
0582
0583 rm testCompareDumpFiles.py
0584 cp $CMSSW_RELEASE_BASE/src/GeometryReaders/XMLIdealGeometryESSource/test/testCompareDumpFiles.py .
0585 sed -i "{/dumpFile1 /d}" testCompareDumpFiles.py
0586 sed -i "{/dumpFile2 /d}" testCompareDumpFiles.py
0587 sed -i "/TestCompareDDDumpFiles/ a\dumpFile1=cms.string\('./dumpBDB'\)\, dumpFile2=cms.string\('./dumpLocDB'\)," testCompareDumpFiles.py
0588 cmsRun testCompareDumpFiles.py > tcdfBDBvsLocDB.log
0589
0590 diff compDDdumperrors.log compDDdumperrors.expected > diffcompBDBvsLocDB.log
0591 if (-s tcdfBDBvsLocDB.log || -s diffcompBDBvsLocDB.log ) then
0592 echo "WARNING THE GEOMETRYFILE IS DIFFERENT BETWEEN SINGLE BIG XML FILE AND LOCAL DATABASE BLOB." | tee -a GeometryValidation.log
0593 endif
0594
0595 rm testCompareDumpFiles.py
0596 cp $CMSSW_RELEASE_BASE/src/GeometryReaders/XMLIdealGeometryESSource/test/testCompareDumpFiles.py .
0597 sed -i "{/dumpFile1 /d}" testCompareDumpFiles.py
0598 sed -i "{/dumpFile2 /d}" testCompareDumpFiles.py
0599 sed -i "/TestCompareDDDumpFiles/ a\dumpFile1=cms.string\('./dumpBDB'\)\, dumpFile2=cms.string\('./dumpGTDB'\)," testCompareDumpFiles.py
0600 cmsRun testCompareDumpFiles.py > tcdfBDBvsGTDB.log
0601
0602 diff compDDdumperrors.log compDDdumperrors.expected > diffcompBDBvsGTDB.log
0603 if (-s tcdfBDBvsGTDB.log || -s diffcompBDBvsGTDB.log ) then
0604 echo "WARNING THE GEOMETRYFILE IS DIFFERENT BETWEEN SINGLE BIG XML FILE AND GLOBALTAG DATABASE BLOB." | tee -a GeometryValidation.log
0605 endif
0606
0607 rm testCompareDumpFiles.py
0608 cp $CMSSW_RELEASE_BASE/src/GeometryReaders/XMLIdealGeometryESSource/test/testCompareDumpFiles.py .
0609 sed -i "{/dumpFile1 /d}" testCompareDumpFiles.py
0610 sed -i "{/dumpFile2 /d}" testCompareDumpFiles.py
0611 sed -i "/TestCompareDDDumpFiles/ a\dumpFile1=cms.string\('./dumpLocDB'\)\, dumpFile2=cms.string\('./dumpGTDB'\)," testCompareDumpFiles.py
0612 cmsRun testCompareDumpFiles.py > tcdfLocDBvsGTDB.log
0613
0614 diff compDDdumperrors.log compDDdumperrors.expected > diffcompLocDBvsGTDB.log
0615 if (-s tcdfLocDBvsGTDB.log || -s diffcompLocDBvsGTDB.log ) then
0616 echo "WARNING THE GEOMETRYFILE IS DIFFERENT BETWEEN LOCAL AND GLOBALTAG DATABASE BLOBS." | tee -a GeometryValidation.log
0617 endif
0618
0619 echo "End Simulation geometry validation" | tee -a GeometryValidation.log