CMS 3D CMS Logo

dumpRecoGeometry_cfg.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 import sys
3 import FWCore.ParameterSet.VarParsing as VarParsing
4 from FWCore.Utilities.Enumerate import Enumerate
5 
6 varType = Enumerate ("Run1 2015 2017 2019 2023D17 2023D19 MaPSA")
7 
8 def help():
9  print "Usage: cmsRun dumpFWRecoGeometry_cfg.py tag=TAG "
10  print " tag=tagname"
11  print " indentify geometry condition database tag"
12  print " ", varType.keys()
13  print ""
14  print " tgeo=bool"
15  print " dump in TGeo format to borwse it geomtery viewer"
16  print " import this will in Fireworks with option --sim-geom-file"
17  print ""
18  print " tracker=bool"
19  print " include Tracker subdetectors"
20  print ""
21  print " muon=bool"
22  print " include Muon subdetectors"
23  print ""
24  print " calo=bool"
25  print " include Calo subdetectors"
26  print ""
27  print " timing=bool"
28  print " include Timing subdetectors"
29  print ""
30  print ""
31  exit(1);
32 
33 def recoGeoLoad(score):
34  print "Loading configuration for tag ", options.tag ,"...\n"
35 
36  if score == "Run1":
37  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
38  from Configuration.AlCa.autoCond import autoCond
39  process.GlobalTag.globaltag = autoCond['run1_mc']
40  process.load("Configuration.StandardSequences.GeometryDB_cff")
41 
42  elif score == "2015":
43  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
44  from Configuration.AlCa.autoCond import autoCond
45  process.GlobalTag.globaltag = autoCond['run2_mc']
46  process.load("Configuration.StandardSequences.GeometryDB_cff")
47 
48  elif score == "2017":
49  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
50  from Configuration.AlCa.autoCond import autoCond
51  process.GlobalTag.globaltag = autoCond['upgrade2017']
52  process.load('Configuration.Geometry.GeometryExtended2017Reco_cff')
53 
54  elif score == "2019":
55  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
56  from Configuration.AlCa.autoCond import autoCond
57  process.GlobalTag.globaltag = autoCond['upgrade2019']
58  ## NOTE: There is no PTrackerParameters Rcd in this GT yet
59  process.load('Geometry.TrackerGeometryBuilder.trackerParameters_cfi')
60  process.load('Configuration.Geometry.GeometryExtended2019Reco_cff')
61  ## NOTE: There are no Muon alignement records in the GT yet
62  process.DTGeometryESModule.applyAlignment = cms.bool(False)
63  process.CSCGeometryESModule.applyAlignment = cms.bool(False)
64 
65  elif "2023" in score:
66  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
67  from Configuration.AlCa.autoCond import autoCond
68  process.GlobalTag.globaltag = autoCond['run2_mc']
69  process.load('Configuration.Geometry.GeometryExtended'+score+'Reco_cff')
70 
71  elif score == "MaPSA":
72  process.load('Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff')
73  process.load('Geometry.TrackerCommonData.mapsaGeometryXML_cfi')
74  process.load('Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi')
75  process.load('Geometry.TrackerNumberingBuilder.trackerTopology_cfi')
76  process.load('Geometry.TrackerGeometryBuilder.trackerParameters_cfi')
77  process.load('Geometry.TrackerGeometryBuilder.trackerGeometry_cfi')
78  process.trackerGeometry.applyAlignment = cms.bool(False)
79  process.load('RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi')
80 
81  process.load('Geometry.CommonDetUnit.bareGlobalTrackingGeometry_cfi')
82 
83  elif score == "HGCTB160": ## hgcal testbeam
84  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
85  from Configuration.AlCa.autoCond import autoCond
86  process.GlobalTag.globaltag = autoCond['mc']
87  process.load('Geometry.HGCalCommonData.hgcalV6ParametersInitialization_cfi')
88  process.load('Geometry.HGCalCommonData.hgcalV6NumberingInitialization_cfi')
89  process.load('Geometry.CaloEventSetup.HGCalV6Topology_cfi')
90  process.load('Geometry.HGCalGeometry.HGCalV6GeometryESProducer_cfi')
91  process.load('Geometry.CaloEventSetup.CaloTopology_cfi')
92  process.load('Geometry.CaloEventSetup.CaloGeometryBuilder_cfi')
93  process.CaloGeometryBuilder = cms.ESProducer(
94  "CaloGeometryBuilder",
95  SelectedCalos = cms.vstring("HGCalEESensitive")
96  )
97  process.load("SimG4CMS.HGCalTestBeam.HGCalTB160XML_cfi")
98 
99  else:
100  help()
101 
102 
103 
104 
105 options = VarParsing.VarParsing ()
106 
107 
108 defaultOutputFileName="cmsRecoGeom.root"
109 
110 options.register ('tag',
111  "2017", # default value
112  VarParsing.VarParsing.multiplicity.singleton,
113  VarParsing.VarParsing.varType.string,
114  "tag info about geometry database conditions")
115 
116 options.register ('tgeo',
117  False, # default value
118  VarParsing.VarParsing.multiplicity.singleton,
119  VarParsing.VarParsing.varType.bool,
120  "write geometry in TGeo format")
121 
122 options.register ('tracker',
123  True, # default value
124  VarParsing.VarParsing.multiplicity.singleton,
125  VarParsing.VarParsing.varType.bool,
126  "write Tracker geometry")
127 
128 options.register ('muon',
129  True, # default value
130  VarParsing.VarParsing.multiplicity.singleton,
131  VarParsing.VarParsing.varType.bool,
132  "write Muon geometry")
133 
134 options.register ('calo',
135  True, # default value
136  VarParsing.VarParsing.multiplicity.singleton,
137  VarParsing.VarParsing.varType.bool,
138  "write Calo geometry")
139 
140 options.register ('timing',
141  False, # default value
142  VarParsing.VarParsing.multiplicity.singleton,
143  VarParsing.VarParsing.varType.bool,
144  "write Timing geometry")
145 
146 options.register ('out',
147  defaultOutputFileName, # default value
148  VarParsing.VarParsing.multiplicity.singleton,
149  VarParsing.VarParsing.varType.string,
150  "Output file name")
151 
152 options.parseArguments()
153 
154 
155 
156 
157 process = cms.Process("DUMP")
158 process.add_(cms.Service("InitRootHandlers", ResetRootErrHandler = cms.untracked.bool(False)))
159 process.source = cms.Source("EmptySource")
160 process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32(1))
161 
162 
163 recoGeoLoad(options.tag)
164 
165 if ( options.tgeo == True):
166  if (options.out == defaultOutputFileName ):
167  options.out = "cmsTGeoRecoGeom-" + str(options.tag) + ".root"
168  process.add_(cms.ESProducer("FWTGeoRecoGeometryESProducer",
169  Tracker = cms.untracked.bool(options.tracker),
170  Muon = cms.untracked.bool(options.muon),
171  Calo = cms.untracked.bool(options.calo),
172  Timing = cms.untracked.bool(options.timing)))
173  process.dump = cms.EDAnalyzer("DumpFWTGeoRecoGeometry",
174  tagInfo = cms.untracked.string(options.tag),
175  outputFileName = cms.untracked.string(options.out)
176  )
177 else:
178  if (options.out == defaultOutputFileName ):
179  options.out = "cmsRecoGeom-" + str(options.tag) + ".root"
180  process.add_(cms.ESProducer("FWRecoGeometryESProducer",
181  Tracker = cms.untracked.bool(options.tracker),
182  Muon = cms.untracked.bool(options.muon),
183  Calo = cms.untracked.bool(options.calo),
184  Timing = cms.untracked.bool(options.timing)))
185  process.dump = cms.EDAnalyzer("DumpFWRecoGeometry",
186  level = cms.untracked.int32(1),
187  tagInfo = cms.untracked.string(options.tag),
188  outputFileName = cms.untracked.string(options.out)
189  )
190 
191 print "Dumping geometry in " , options.out, "\n";
192 process.p = cms.Path(process.dump)
193 
194 
#define str(s)