test
CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 2023D1 2023D2 2023D3 2023D4 2023D5 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 ""
28  exit(1);
29 
30 def recoGeoLoad(score):
31  print "Loading configuration for tag ", options.tag ,"...\n"
32 
33  if score == "Run1":
34  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
35  from Configuration.AlCa.autoCond import autoCond
36  process.GlobalTag.globaltag = autoCond['run1_mc']
37  process.load("Configuration.StandardSequences.GeometryDB_cff")
38 
39  elif score == "2015":
40  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
41  from Configuration.AlCa.autoCond import autoCond
42  process.GlobalTag.globaltag = autoCond['run2_mc']
43  process.load("Configuration.StandardSequences.GeometryDB_cff")
44 
45  elif score == "2017":
46  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
47  from Configuration.AlCa.autoCond import autoCond
48  process.GlobalTag.globaltag = autoCond['upgrade2017']
49  process.load('Configuration.Geometry.GeometryExtended2017Reco_cff')
50 
51  elif score == "2019":
52  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
53  from Configuration.AlCa.autoCond import autoCond
54  process.GlobalTag.globaltag = autoCond['upgrade2019']
55  ## NOTE: There is no PTrackerParameters Rcd in this GT yet
56  process.load('Geometry.TrackerGeometryBuilder.trackerParameters_cfi')
57  process.load('Configuration.Geometry.GeometryExtended2019Reco_cff')
58  ## NOTE: There are no Muon alignement records in the GT yet
59  process.DTGeometryESModule.applyAlignment = cms.bool(False)
60  process.CSCGeometryESModule.applyAlignment = cms.bool(False)
61 
62  elif score == "2023D1":
63  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
64  from Configuration.AlCa.autoCond import autoCond
65  process.GlobalTag.globaltag = autoCond['run2_mc']
66  process.load('Configuration.Geometry.GeometryExtended2023D1Reco_cff')
67 
68  elif score == "2023D2":
69  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
70  from Configuration.AlCa.autoCond import autoCond
71  process.GlobalTag.globaltag = autoCond['run2_mc']
72  process.load('Configuration.Geometry.GeometryExtended2023D2Reco_cff')
73 
74  elif score == "2023D3":
75  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
76  from Configuration.AlCa.autoCond import autoCond
77  process.GlobalTag.globaltag = autoCond['run2_mc']
78  process.load('Configuration.Geometry.GeometryExtended2023D3Reco_cff')
79 
80  elif score == "2023D4":
81  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
82  from Configuration.AlCa.autoCond import autoCond
83  process.GlobalTag.globaltag = autoCond['run2_mc']
84  process.load('Configuration.Geometry.GeometryExtended2023D4Reco_cff')
85 
86  elif score == "2023D5":
87  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
88  from Configuration.AlCa.autoCond import autoCond
89  process.GlobalTag.globaltag = autoCond['run2_mc']
90  process.load('Configuration.Geometry.GeometryExtended2023D5Reco_cff')
91 
92  elif score == "MaPSA":
93  process.load('Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff')
94  process.load('Geometry.TrackerCommonData.mapsaGeometryXML_cfi')
95  process.load('Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi')
96  process.load('Geometry.TrackerNumberingBuilder.trackerTopology_cfi')
97  process.load('Geometry.TrackerGeometryBuilder.trackerParameters_cfi')
98  process.load('Geometry.TrackerGeometryBuilder.trackerGeometry_cfi')
99  process.trackerGeometry.applyAlignment = cms.bool(False)
100  process.load('RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi')
101 
102  process.load('Geometry.CommonDetUnit.bareGlobalTrackingGeometry_cfi')
103 
104  elif score == "HGCTB160": ## hgcal testbeam
105  process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
106  from Configuration.AlCa.autoCond import autoCond
107  process.GlobalTag.globaltag = autoCond['mc']
108  process.load('Geometry.HGCalCommonData.hgcalV6ParametersInitialization_cfi')
109  process.load('Geometry.HGCalCommonData.hgcalV6NumberingInitialization_cfi')
110  process.load('Geometry.CaloEventSetup.HGCalV6Topology_cfi')
111  process.load('Geometry.HGCalGeometry.HGCalV6GeometryESProducer_cfi')
112  process.load('Geometry.CaloEventSetup.CaloTopology_cfi')
113  process.load('Geometry.CaloEventSetup.CaloGeometryBuilder_cfi')
114  process.CaloGeometryBuilder = cms.ESProducer(
115  "CaloGeometryBuilder",
116  SelectedCalos = cms.vstring("HGCalEESensitive")
117  )
118  process.load("SimG4CMS.HGCalTestBeam.HGCalTB160XML_cfi")
119 
120  else:
121  help()
122 
123 
124 
125 
127 
128 
129 defaultOutputFileName="cmsRecoGeom.root"
130 
131 options.register ('tag',
132  "2015", # default value
133  VarParsing.VarParsing.multiplicity.singleton,
134  VarParsing.VarParsing.varType.string,
135  "tag info about geometry database conditions")
136 
137 options.register ('tgeo',
138  False, # default value
139  VarParsing.VarParsing.multiplicity.singleton,
140  VarParsing.VarParsing.varType.bool,
141  "write geometry in TGeo format")
142 
143 options.register ('tracker',
144  True, # default value
145  VarParsing.VarParsing.multiplicity.singleton,
146  VarParsing.VarParsing.varType.bool,
147  "write Tracker geometry")
148 
149 options.register ('muon',
150  True, # default value
151  VarParsing.VarParsing.multiplicity.singleton,
152  VarParsing.VarParsing.varType.bool,
153  "write Muon geometry")
154 
155 options.register ('calo',
156  True, # default value
157  VarParsing.VarParsing.multiplicity.singleton,
158  VarParsing.VarParsing.varType.bool,
159  "write Calo geometry")
160 
161 options.register ('out',
162  defaultOutputFileName, # default value
163  VarParsing.VarParsing.multiplicity.singleton,
164  VarParsing.VarParsing.varType.string,
165  "Output file name")
166 
167 options.parseArguments()
168 
169 
170 
171 
172 process = cms.Process("DUMP")
173 process.add_(cms.Service("InitRootHandlers", ResetRootErrHandler = cms.untracked.bool(False)))
174 process.source = cms.Source("EmptySource")
175 process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32(1))
176 
177 
178 recoGeoLoad(options.tag)
179 
180 if ( options.tgeo == True):
181  if (options.out == defaultOutputFileName ):
182  options.out = "cmsTGeoRecoGeom-" + str(options.tag) + ".root"
183  process.add_(cms.ESProducer("FWTGeoRecoGeometryESProducer",
184  Tracker = cms.untracked.bool(options.tracker),
185  Muon = cms.untracked.bool(options.muon),
186  Calo = cms.untracked.bool(options.calo)))
187  process.dump = cms.EDAnalyzer("DumpFWTGeoRecoGeometry",
188  tagInfo = cms.untracked.string(options.tag),
189  outputFileName = cms.untracked.string(options.out)
190  )
191 else:
192  if (options.out == defaultOutputFileName ):
193  options.out = "cmsRecoGeom-" + str(options.tag) + ".root"
194  process.add_(cms.ESProducer("FWRecoGeometryESProducer",
195  Tracker = cms.untracked.bool(options.tracker),
196  Muon = cms.untracked.bool(options.muon),
197  Calo = cms.untracked.bool(options.calo)))
198  process.dump = cms.EDAnalyzer("DumpFWRecoGeometry",
199  level = cms.untracked.int32(1),
200  tagInfo = cms.untracked.string(options.tag),
201  outputFileName = cms.untracked.string(options.out)
202  )
203 
204 print "Dumping geometry in " , options.out, "\n";
205 process.p = cms.Path(process.dump)
206 
207