From 9ec7402f69f08783d54e73c4ea71da6526a6ebf7 Mon Sep 17 00:00:00 2001 From: Sunanda Date: Mon, 17 Feb 2025 13:11:07 +0100 Subject: [PATCH] Correct the payload creation scripts for the years 2024 and 2025 --- .../createExtended2024DD4hepPayloads.sh | 2 +- .../createExtended2025DD4hepPayloads.sh | 2 +- .../createExtended2025Payloads.sh | 95 +++++++++---------- .../geometryExtended2025_writer.py | 71 ++++++++------ .../geometryExtended2025_xmlwriter.py | 18 +++- 5 files changed, 104 insertions(+), 84 deletions(-) diff --git a/CondTools/Geometry/test/writehelpers/createExtended2024DD4hepPayloads.sh b/CondTools/Geometry/test/writehelpers/createExtended2024DD4hepPayloads.sh index d84b2d3dafe57..01c5cfcf62869 100755 --- a/CondTools/Geometry/test/writehelpers/createExtended2024DD4hepPayloads.sh +++ b/CondTools/Geometry/test/writehelpers/createExtended2024DD4hepPayloads.sh @@ -50,7 +50,7 @@ cmsRun geometryExtended2024DD4hep_xmlwriter.py --geom=ExtendedGeometry2024FlatPl #sed -i '{s/ExtendedGeometry2024FlatPlus05Percent/ExtendedGeometry2024FlatPlus10Percent/g}' geometryExtended2024DD4hep_xmlwriter.py #sed -i '{s/\/geFP05/\/geFP10/g}' geometryExtended2024DD4hep_xmlwriter.py -cmsRun geometryExtended2024DD4hep_xmlwriter.py --geom=ExtendedGeometry2024FlatPlus05Percent --out=geFP10 || die 'failed geometryExtended2024DD4hep_xmlwriter.py' $? +cmsRun geometryExtended2024DD4hep_xmlwriter.py --geom=ExtendedGeometry2024FlatPlus10Percent --out=geFP10 || die 'failed geometryExtended2024DD4hep_xmlwriter.py' $? # Read the one big XML file and output a record to the # database with the an identifying tag diff --git a/CondTools/Geometry/test/writehelpers/createExtended2025DD4hepPayloads.sh b/CondTools/Geometry/test/writehelpers/createExtended2025DD4hepPayloads.sh index aadcdfa37cd40..a96f74971fc0d 100755 --- a/CondTools/Geometry/test/writehelpers/createExtended2025DD4hepPayloads.sh +++ b/CondTools/Geometry/test/writehelpers/createExtended2025DD4hepPayloads.sh @@ -50,7 +50,7 @@ cmsRun geometryExtended2025DD4hep_xmlwriter.py --geom=ExtendedGeometry2025FlatPl #sed -i '{s/ExtendedGeometry2025FlatPlus05Percent/ExtendedGeometry2025FlatPlus10Percent/g}' geometryExtended2025DD4hep_xmlwriter.py #sed -i '{s/\/geFP05/\/geFP10/g}' geometryExtended2025DD4hep_xmlwriter.py -cmsRun geometryExtended2025DD4hep_xmlwriter.py --geom=ExtendedGeometry2025FlatPlus05Percent --out=geFP10 || die 'failed geometryExtended2025DD4hep_xmlwriter.py' $? +cmsRun geometryExtended2025DD4hep_xmlwriter.py --geom=ExtendedGeometry2025FlatPlus10Percent --out=geFP10 || die 'failed geometryExtended2025DD4hep_xmlwriter.py' $? # Read the one big XML file and output a record to the # database with the an identifying tag diff --git a/CondTools/Geometry/test/writehelpers/createExtended2025Payloads.sh b/CondTools/Geometry/test/writehelpers/createExtended2025Payloads.sh index fa36995fec4a3..dd01df852a110 100755 --- a/CondTools/Geometry/test/writehelpers/createExtended2025Payloads.sh +++ b/CondTools/Geometry/test/writehelpers/createExtended2025Payloads.sh @@ -1,5 +1,5 @@ #!/bin/sh - +function die { echo $1: status $2 ; exit $2; } if [ $# -ne 1 ] then @@ -10,84 +10,79 @@ mytag=$1 echo ${mytag} # Set the tag in all the scripts and the metadata text files -sed -i {s/TagXX/${mytag}/g} *.py +#sed -i {s/TagXX/${mytag}/g} *.py compgen -G "*.txt" > /dev/null && sed -i {s/TagXX/${mytag}/g} *.txt sed -i {s/TagXX/${mytag}/g} splitExtended2025Database.sh # First read in the little XML files and create the -# large XML file for the Phase1_R30F12_HCal Ideal scenario. -# Input cff Output file -# GeometryExtended2025_cff geSingleBigFile.xml -cmsRun geometryExtended2025_xmlwriter.py +# big XML file for the Extended2025 scenario. +cmsRun geometryExtended2025_xmlwriter.py || die 'failed geometryExtended2025_xmlwriter.py' $? # Now convert the content of the large XML file into # a "blob" and write it to the database. # Also reads in the little XML files again and fills # the DDCompactView. From the DDCompactView the # reco parts of the database are also filled. -cmsRun geometryExtended2025_writer.py +cmsRun geometryExtended2025_writer.py --tag=${mytag} || die 'failed geometryExtended2025_writer.py' $? # Now put the other scenarios into the database. # Input the many XML files referenced by the cff file and # output a single big XML file. # This is repeated several times below. The sed commands -# serve to give the following sequence of input and output +# serve to give the correct sequence of input and output # files -# -# Input cff Output file -# GeometryIdeal_cff giSingleBigFile.xml -# -sed -i '{s/Extended2025/Extended2025ZeroMaterial/g}' geometryExtended2025_xmlwriter.py -sed -i '{s/\/ge/\/gez/g}' geometryExtended2025_xmlwriter.py -cmsRun geometryExtended2025_xmlwriter.py - -sed -i '{s/Extended2025ZeroMaterial/Extended2025FlatMinus05Percent/g}' geometryExtended2025_xmlwriter.py -sed -i '{s/\/gez/\/geFM05/g}' geometryExtended2025_xmlwriter.py -cmsRun geometryExtended2025_xmlwriter.py - -sed -i '{s/Extended2025FlatMinus05Percent/Extended2025FlatMinus10Percent/g}' geometryExtended2025_xmlwriter.py -sed -i '{s/\/geFM05/\/geFM10/g}' geometryExtended2025_xmlwriter.py -cmsRun geometryExtended2025_xmlwriter.py - -sed -i '{s/Extended2025FlatMinus10Percent/Extended2025FlatPlus05Percent/g}' geometryExtended2025_xmlwriter.py -sed -i '{s/\/geFM10/\/geFP05/g}' geometryExtended2025_xmlwriter.py -cmsRun geometryExtended2025_xmlwriter.py - -sed -i '{s/Extended2025FlatPlus05Percent/Extended2025FlatPlus10Percent/g}' geometryExtended2025_xmlwriter.py -sed -i '{s/\/geFP05/\/geFP10/g}' geometryExtended2025_xmlwriter.py -cmsRun geometryExtended2025_xmlwriter.py + +#sed -i '{s/Extended2025/Extended2025ZeroMaterial/g}' geometryExtended2025_xmlwriter.py +#sed -i '{s/\/ge/\/gez/g}' geometryExtended2025_xmlwriter.py +cmsRun geometryExtended2025_xmlwriter.py --geom=Extended2025ZeroMaterial --out=gez || die 'failed geometryExtended2025_xmlwriter.py Extended2025ZeroMaterial' $? + +#sed -i '{s/Extended2025ZeroMaterial/Extended2025FlatMinus05Percent/g}' geometryExtended2025_xmlwriter.py +#sed -i '{s/\/gez/\/geFM05/g}' geometryExtended2025_xmlwriter.py +cmsRun geometryExtended2025_xmlwriter.py --geom=Extended2025FlatMinus05Percent --out=geFM05 || die 'failed geometryExtended2025_xmlwriter.py Extended2025FlatMinus05Percent' $? + +#sed -i '{s/Extended2025FlatMinus05Percent/Extended2025FlatMinus10Percent/g}' geometryExtended2025_xmlwriter.py +#sed -i '{s/\/geFM05/\/geFM10/g}' geometryExtended2025_xmlwriter.py +cmsRun geometryExtended2025_xmlwriter.py --geom=Extended2025FlatMinus10Percent --out=geFM10 || die 'failed geometryExtended2025_xmlwriter.py' $? + +#sed -i '{s/Extended2025FlatMinus10Percent/Extended2025FlatPlus05Percent/g}' geometryExtended2025_xmlwriter.py +#sed -i '{s/\/geFM10/\/geFP05/g}' geometryExtended2025_xmlwriter.py +cmsRun geometryExtended2025_xmlwriter.py --geom=Extended2025FlatPlus05Percent --out=geFP05 || die 'failed geometryExtended2025_xmlwriter.py Extended2025FlatPlus05Percent' $? + +#sed -i '{s/Extended2025FlatPlus05Percent/Extended2025FlatPlus10Percent/g}' geometryExtended2025_xmlwriter.py +#sed -i '{s/\/geFP05/\/geFP10/g}' geometryExtended2025_xmlwriter.py +cmsRun geometryExtended2025_xmlwriter.py --geom=Extended2025FlatPlus10Percent --out=geFP10 || die 'failed geometryExtended2025_xmlwriter.py' $? # Read the one big XML file and output a record to the # database with the an identifying tag # This is repeated several times below. The sed commands -# serve to give the following sequence of input file and output +# serve to give the correct sequence of input file and output # tag -# +# To start: # Input file Output tag # gezSingleBigFile.xml XMLFILE_Geometry_${mytag}_Extended2025ZeroMaterial_mc -# -sed -i '{s/Extended/Extended2025ZeroMaterial/g}' xmlgeometrywriter.py -sed -i '{s/\/ge/\/gez/g}' xmlgeometrywriter.py -cmsRun xmlgeometrywriter.py -sed -i '{s/Extended2025ZeroMaterial/Extended2025FlatMinus05Percent/g}' xmlgeometrywriter.py -sed -i '{s/\/gez/\/geFM05/g}' xmlgeometrywriter.py -cmsRun xmlgeometrywriter.py +#sed -i '{s/Extended/Extended2025ZeroMaterial/g}' xmlgeometrywriter.py +#sed -i '{s/\/ge/\/gez/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py --tag=${mytag} --out=Extended2025ZeroMaterial --inPre=gez|| die 'failed xmlgeometrywriter.py Extended2025ZeroMaterial' $? + +#sed -i '{s/Extended2025ZeroMaterial/Extended2025FlatMinus05Percent/g}' xmlgeometrywriter.py +#sed -i '{s/\/gez/\/geFM05/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py --tag=${mytag} --out=Extended2025FlatMinus05Percent --inPre=geFM05 || die 'failed xmlgeometrywriter.py Extended2025FlatMinus05Percent' $? -sed -i '{s/Extended2025FlatMinus05Percent/Extended2025FlatMinus10Percent/g}' xmlgeometrywriter.py -sed -i '{s/\/geFM05/\/geFM10/g}' xmlgeometrywriter.py -cmsRun xmlgeometrywriter.py +#sed -i '{s/Extended2025FlatMinus05Percent/Extended2025FlatMinus10Percent/g}' xmlgeometrywriter.py +#sed -i '{s/\/geFM05/\/geFM10/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py --tag=${mytag} --out=Extended2025FlatMinus10Percent --inPre=geFM10 || die 'failed xmlgeometrywriter.py Extended2025FlatMinus10Percent' $? -sed -i '{s/Extended2025FlatMinus10Percent/Extended2025FlatPlus05Percent/g}' xmlgeometrywriter.py -sed -i '{s/\/geFM10/\/geFP05/g}' xmlgeometrywriter.py -cmsRun xmlgeometrywriter.py +#sed -i '{s/Extended2025FlatMinus10Percent/Extended2025FlatPlus05Percent/g}' xmlgeometrywriter.py +#sed -i '{s/\/geFM10/\/geFP05/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py --tag=${mytag} --out=Extended2025FlatPlus05Percent --inPre=geFP05 || die 'failed xmlgeometrywriter.py Extended2025FlatPlus05Percent' $? -sed -i '{s/Extended2025FlatPlus05Percent/Extended2025FlatPlus10Percent/g}' xmlgeometrywriter.py -sed -i '{s/\/geFP05/\/geFP10/g}' xmlgeometrywriter.py -cmsRun xmlgeometrywriter.py +#sed -i '{s/Extended2025FlatPlus05Percent/Extended2025FlatPlus10Percent/g}' xmlgeometrywriter.py +#sed -i '{s/\/geFP05/\/geFP10/g}' xmlgeometrywriter.py +cmsRun xmlgeometrywriter.py --tag=${mytag} --out=Extended2025FlatPlus10Percent --inPre=geFP10 || die 'failed xmlgeometrywriter.py Extended2025FlatPlus10Percent' $? # All the database objects were written into one database # (myfile.db) in the steps above. Extract the different # pieces into separate database files. These are the payloads -# that get uploaded to the dropbox. There is one for each tag +# that get uploaded to the DB. There is one for each tag ./splitExtended2025Database.sh diff --git a/CondTools/Geometry/test/writehelpers/geometryExtended2025_writer.py b/CondTools/Geometry/test/writehelpers/geometryExtended2025_writer.py index e1255855b1bbe..9301660b386ef 100644 --- a/CondTools/Geometry/test/writehelpers/geometryExtended2025_writer.py +++ b/CondTools/Geometry/test/writehelpers/geometryExtended2025_writer.py @@ -1,17 +1,35 @@ import FWCore.ParameterSet.Config as cms +import argparse +import sys -process = cms.Process("GeometryWriter") +parser = argparse.ArgumentParser(prog=sys.argv[0], description='Generate XML geometry.') +parser.add_argument("--tag", help="global tag to use", type=str) +args = parser.parse_args() + + +import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Run3_DDD_cff import Run3_DDD + +process = cms.Process("GeometryWriter", Run3_DDD) process.load('CondCore.CondDB.CondDB_cfi') -# This will read all the little XML files and from -# that fill the DDCompactView. The modules that fill -# the reco part of the database need the DDCompactView. process.load('Configuration.Geometry.GeometryExtended2025_cff') -process.load('Geometry.MuonNumbering.muonNumberingInitialization_cfi') -process.load("Geometry.MuonNumbering.muonGeometryConstants_cff") process.load('Geometry.CaloEventSetup.CaloGeometryDBWriter_cfi') process.load('CondTools.Geometry.HcalParametersWriter_cff') +process.load("Geometry.MuonNumbering.muonGeometryConstants_cff") +process.load("Geometry.ForwardGeometry.ZdcGeometry_cfi") + +process.CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring( + 'HCAL', + 'ZDC', + 'EcalBarrel', + 'EcalEndcap', + 'EcalPreshower', + 'TOWER' + ) +) process.source = cms.Source("EmptyIOVSource", lastValue = cms.uint64(1), @@ -21,10 +39,7 @@ ) # This reads the big XML file and the only way to fill the -# nonreco part of the database is to read this file. It -# somewhat duplicates the information read from the little -# XML files, but there is no way to directly build the -# DDCompactView from this. +# nonreco part of the database is to read this file. process.XMLGeometryWriter = cms.EDAnalyzer("XMLGeometryBuilder", XMLFileName = cms.untracked.string("./geSingleBigFile.xml"), ZIP = cms.untracked.bool(True) @@ -33,7 +48,7 @@ process.TrackerGeometryWriter = cms.EDAnalyzer("PGeometricDetBuilder",fromDD4hep=cms.bool(False)) process.TrackerParametersWriter = cms.EDAnalyzer("PTrackerParametersDBBuilder",fromDD4hep=cms.bool(False)) -process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder") +process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder",fromDD4hep = cms.untracked.bool(False)) process.CSCGeometryWriter = cms.EDAnalyzer("CSCRecoIdealDBLoader",fromDD4hep = cms.untracked.bool(False)) @@ -41,28 +56,28 @@ process.RPCGeometryWriter = cms.EDAnalyzer("RPCRecoIdealDBLoader",fromDD4hep = cms.untracked.bool(False)) -process.GEMGeometryWriter = cms.EDAnalyzer("GEMRecoIdealDBLoader") +process.GEMGeometryWriter = cms.EDAnalyzer("GEMRecoIdealDBLoader",fromDD4hep = cms.untracked.bool(False)) process.CondDB.timetype = cms.untracked.string('runnumber') process.CondDB.connect = cms.string('sqlite_file:myfile.db') process.PoolDBOutputService = cms.Service("PoolDBOutputService", process.CondDB, - toPut = cms.VPSet(cms.PSet(record = cms.string('GeometryFileRcd'),tag = cms.string('XMLFILE_Geometry_TagXX_Extended2025_mc')), - cms.PSet(record = cms.string('IdealGeometryRecord'),tag = cms.string('TKRECO_Geometry_TagXX')), - cms.PSet(record = cms.string('PTrackerParametersRcd'),tag = cms.string('TKParameters_Geometry_TagXX')), - cms.PSet(record = cms.string('PEcalBarrelRcd'), tag = cms.string('EBRECO_Geometry_TagXX')), - cms.PSet(record = cms.string('PEcalEndcapRcd'), tag = cms.string('EERECO_Geometry_TagXX')), - cms.PSet(record = cms.string('PEcalPreshowerRcd'),tag = cms.string('EPRECO_Geometry_TagXX')), - cms.PSet(record = cms.string('PHcalRcd'), tag = cms.string('HCALRECO_Geometry_TagXX')), - cms.PSet(record = cms.string('HcalParametersRcd'), tag = cms.string('HCALParameters_Geometry_TagXX')), - cms.PSet(record = cms.string('PCaloTowerRcd'), tag = cms.string('CTRECO_Geometry_TagXX')), - cms.PSet(record = cms.string('PZdcRcd'), tag = cms.string('ZDCRECO_Geometry_TagXX')), - cms.PSet(record = cms.string('PCastorRcd'), tag = cms.string('CASTORRECO_Geometry_TagXX')), - cms.PSet(record = cms.string('CSCRecoGeometryRcd'),tag = cms.string('CSCRECO_Geometry_TagXX')), - cms.PSet(record = cms.string('CSCRecoDigiParametersRcd'),tag = cms.string('CSCRECODIGI_Geometry_TagXX')), - cms.PSet(record = cms.string('DTRecoGeometryRcd'),tag = cms.string('DTRECO_Geometry_TagXX')), - cms.PSet(record = cms.string('RPCRecoGeometryRcd'),tag = cms.string('RPCRECO_Geometry_TagXX')), - cms.PSet(record = cms.string('GEMRecoGeometryRcd'),tag = cms.string('GEMRECO_Geometry_TagXX')) + toPut = cms.VPSet(cms.PSet(record = cms.string('GeometryFileRcd'),tag = cms.string('XMLFILE_Geometry_'+args.tag+'_Extended2025_mc')), + cms.PSet(record = cms.string('IdealGeometryRecord'),tag = cms.string('TKRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PTrackerParametersRcd'),tag = cms.string('TKParameters_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PEcalBarrelRcd'), tag = cms.string('EBRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PEcalEndcapRcd'), tag = cms.string('EERECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PEcalPreshowerRcd'),tag = cms.string('EPRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PHcalRcd'), tag = cms.string('HCALRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('HcalParametersRcd'), tag = cms.string('HCALParameters_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PCaloTowerRcd'), tag = cms.string('CTRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PZdcRcd'), tag = cms.string('ZDCRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('PCastorRcd'), tag = cms.string('CASTORRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('CSCRecoGeometryRcd'),tag = cms.string('CSCRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('CSCRecoDigiParametersRcd'),tag = cms.string('CSCRECODIGI_Geometry_'+args.tag)), + cms.PSet(record = cms.string('DTRecoGeometryRcd'),tag = cms.string('DTRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('RPCRecoGeometryRcd'),tag = cms.string('RPCRECO_Geometry_'+args.tag)), + cms.PSet(record = cms.string('GEMRecoGeometryRcd'),tag = cms.string('GEMRECO_Geometry_'+args.tag)) ) ) diff --git a/CondTools/Geometry/test/writehelpers/geometryExtended2025_xmlwriter.py b/CondTools/Geometry/test/writehelpers/geometryExtended2025_xmlwriter.py index 3331fb444ba59..a66b90170f112 100644 --- a/CondTools/Geometry/test/writehelpers/geometryExtended2025_xmlwriter.py +++ b/CondTools/Geometry/test/writehelpers/geometryExtended2025_xmlwriter.py @@ -1,8 +1,18 @@ import FWCore.ParameterSet.Config as cms +import argparse +import sys + +parser = argparse.ArgumentParser(prog=sys.argv[0], description='Generate XML geometry.') +parser.add_argument("--geom", help="Name of parameter", type=str, default='Extended2025') +parser.add_argument("--out", help="Prefix for output file", type=str, default='ge') + +args = parser.parse_args() +import FWCore.ParameterSet.Config as cms + process = cms.Process("GeometryXMLWriter") -process.load('Configuration.Geometry.GeometryExtended2025_cff') +process.load("Configuration.Geometry.Geometry"+args.geom+"_cff") process.source = cms.Source("EmptyIOVSource", lastValue = cms.uint64(1), @@ -12,9 +22,9 @@ ) process.BigXMLWriter = cms.EDAnalyzer("OutputDDToDDL", - rotNumSeed = cms.int32(0), - fileName = cms.untracked.string("./geSingleBigFile.xml") - ) + rotNumSeed = cms.int32(0), + fileName = cms.untracked.string("./"+args.out+"SingleBigFile.xml") +) process.maxEvents = cms.untracked.PSet(