1 import FWCore.ParameterSet.Config
as cms
3 import FWCore.ParameterSet.VarParsing
as VarParsing
4 from FWCore.Utilities.Enumerate
import Enumerate
6 varType = Enumerate (
"Run1 2015 2017 2019 2023D7 2023D10 2023D4 2023D8 MaPSA")
9 print "Usage: cmsRun dumpFWRecoGeometry_cfg.py tag=TAG "
11 print " indentify geometry condition database tag"
12 print " ", varType.keys()
15 print " dump in TGeo format to borwse it geomtery viewer"
16 print " import this will in Fireworks with option --sim-geom-file"
19 print " include Tracker subdetectors"
22 print " include Muon subdetectors"
25 print " include Calo subdetectors"
28 print " include Timing subdetectors"
34 print "Loading configuration for tag ", options.tag ,
"...\n"
37 process.load(
"Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
39 process.GlobalTag.globaltag = autoCond[
'run1_mc']
40 process.load(
"Configuration.StandardSequences.GeometryDB_cff")
43 process.load(
"Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
45 process.GlobalTag.globaltag = autoCond[
'run2_mc']
46 process.load(
"Configuration.StandardSequences.GeometryDB_cff")
49 process.load(
"Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
51 process.GlobalTag.globaltag = autoCond[
'upgrade2017']
52 process.load(
'Configuration.Geometry.GeometryExtended2017Reco_cff')
55 process.load(
"Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
57 process.GlobalTag.globaltag = autoCond[
'upgrade2019']
59 process.load(
'Geometry.TrackerGeometryBuilder.trackerParameters_cfi')
60 process.load(
'Configuration.Geometry.GeometryExtended2019Reco_cff')
62 process.DTGeometryESModule.applyAlignment = cms.bool(
False)
63 process.CSCGeometryESModule.applyAlignment = cms.bool(
False)
65 elif score ==
"2023D7":
66 process.load(
"Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
68 process.GlobalTag.globaltag = autoCond[
'run2_mc']
69 process.load(
'Configuration.Geometry.GeometryExtended2023D7Reco_cff')
71 elif score ==
"2023D10":
72 process.load(
"Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
74 process.GlobalTag.globaltag = autoCond[
'phase2_realistic']
75 process.load(
'Configuration.Geometry.GeometryExtended2023D10Reco_cff')
77 elif score ==
"2023D4":
78 process.load(
"Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
80 process.GlobalTag.globaltag = autoCond[
'phase2_realistic']
81 process.load(
'Configuration.Geometry.GeometryExtended2023D4Reco_cff')
83 elif score ==
"2023D8":
84 process.load(
"Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
86 process.GlobalTag.globaltag = autoCond[
'phase2_realistic']
87 process.load(
'Configuration.Geometry.GeometryExtended2023D8Reco_cff')
89 elif score ==
"MaPSA":
90 process.load(
'Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff')
91 process.load(
'Geometry.TrackerCommonData.mapsaGeometryXML_cfi')
92 process.load(
'Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi')
93 process.load(
'Geometry.TrackerNumberingBuilder.trackerTopology_cfi')
94 process.load(
'Geometry.TrackerGeometryBuilder.trackerParameters_cfi')
95 process.load(
'Geometry.TrackerGeometryBuilder.trackerGeometry_cfi')
96 process.trackerGeometry.applyAlignment = cms.bool(
False)
97 process.load(
'RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi')
99 process.load(
'Geometry.CommonDetUnit.bareGlobalTrackingGeometry_cfi')
101 elif score ==
"HGCTB160":
102 process.load(
"Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
104 process.GlobalTag.globaltag = autoCond[
'mc']
105 process.load(
'Geometry.HGCalCommonData.hgcalV6ParametersInitialization_cfi')
106 process.load(
'Geometry.HGCalCommonData.hgcalV6NumberingInitialization_cfi')
107 process.load(
'Geometry.CaloEventSetup.HGCalV6Topology_cfi')
108 process.load(
'Geometry.HGCalGeometry.HGCalV6GeometryESProducer_cfi')
109 process.load(
'Geometry.CaloEventSetup.CaloTopology_cfi')
110 process.load(
'Geometry.CaloEventSetup.CaloGeometryBuilder_cfi')
111 process.CaloGeometryBuilder = cms.ESProducer(
112 "CaloGeometryBuilder",
113 SelectedCalos = cms.vstring(
"HGCalEESensitive")
115 process.load(
"SimG4CMS.HGCalTestBeam.HGCalTB160XML_cfi")
126 defaultOutputFileName=
"cmsRecoGeom.root"
128 options.register (
'tag',
130 VarParsing.VarParsing.multiplicity.singleton,
131 VarParsing.VarParsing.varType.string,
132 "tag info about geometry database conditions")
134 options.register (
'tgeo',
136 VarParsing.VarParsing.multiplicity.singleton,
137 VarParsing.VarParsing.varType.bool,
138 "write geometry in TGeo format")
140 options.register (
'tracker',
142 VarParsing.VarParsing.multiplicity.singleton,
143 VarParsing.VarParsing.varType.bool,
144 "write Tracker geometry")
146 options.register (
'muon',
148 VarParsing.VarParsing.multiplicity.singleton,
149 VarParsing.VarParsing.varType.bool,
150 "write Muon geometry")
152 options.register (
'calo',
154 VarParsing.VarParsing.multiplicity.singleton,
155 VarParsing.VarParsing.varType.bool,
156 "write Calo geometry")
158 options.register (
'timing',
160 VarParsing.VarParsing.multiplicity.singleton,
161 VarParsing.VarParsing.varType.bool,
162 "write Timing geometry")
164 options.register (
'out',
165 defaultOutputFileName,
166 VarParsing.VarParsing.multiplicity.singleton,
167 VarParsing.VarParsing.varType.string,
170 options.parseArguments()
175 process = cms.Process(
"DUMP")
176 process.add_(cms.Service(
"InitRootHandlers", ResetRootErrHandler = cms.untracked.bool(
False)))
177 process.source = cms.Source(
"EmptySource")
178 process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32(1))
183 if ( options.tgeo ==
True):
184 if (options.out == defaultOutputFileName ):
185 options.out =
"cmsTGeoRecoGeom-" + str(options.tag) +
".root"
186 process.add_(cms.ESProducer(
"FWTGeoRecoGeometryESProducer",
187 Tracker = cms.untracked.bool(options.tracker),
188 Muon = cms.untracked.bool(options.muon),
189 Calo = cms.untracked.bool(options.calo),
190 Timing = cms.untracked.bool(options.timing)))
191 process.dump = cms.EDAnalyzer(
"DumpFWTGeoRecoGeometry",
192 tagInfo = cms.untracked.string(options.tag),
193 outputFileName = cms.untracked.string(options.out)
196 if (options.out == defaultOutputFileName ):
197 options.out =
"cmsRecoGeom-" + str(options.tag) +
".root"
198 process.add_(cms.ESProducer(
"FWRecoGeometryESProducer",
199 Tracker = cms.untracked.bool(options.tracker),
200 Muon = cms.untracked.bool(options.muon),
201 Calo = cms.untracked.bool(options.calo),
202 Timing = cms.untracked.bool(options.timing)))
203 process.dump = cms.EDAnalyzer(
"DumpFWRecoGeometry",
204 level = cms.untracked.int32(1),
205 tagInfo = cms.untracked.string(options.tag),
206 outputFileName = cms.untracked.string(options.out)
209 print "Dumping geometry in " , options.out,
"\n";
210 process.p = cms.Path(process.dump)