text: import FWCore.ParameterSet.Config as cms
  
  process = cms.Process("GeometryWriter")
  
  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.GeometryExtended2015_cff')
  process.load('Geometry.MuonNumbering.muonNumberingInitialization_cfi')
  process.load('Geometry.CaloEventSetup.CaloGeometryDBWriter_cfi')
  
  process.source = cms.Source("EmptyIOVSource",
                              lastValue = cms.uint64(1),
                              timetype = cms.string('runnumber'),
                              firstValue = cms.uint64(1),
                              interval = cms.uint64(1)
                              )
  
  # 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.
  process.XMLGeometryWriter = cms.EDAnalyzer("XMLGeometryBuilder",
                                             XMLFileName = cms.untracked.string('./geSingleBigFile.xml'),
                                             ZIP = cms.untracked.bool(True)
                                             )
  process.TrackerGeometricDetExtraESModule = cms.ESProducer( "TrackerGeometricDetExtraESModule",
                                                             fromDDD = cms.bool( True )
                                                             )
  
  process.TrackerGeometryWriter = cms.EDAnalyzer("PGeometricDetBuilder")
  process.TrackerGeometryExtraWriter = cms.EDAnalyzer("PGeometricDetExtraBuilder")
  process.TrackerParametersWriter = cms.EDAnalyzer("PTrackerParametersDBBuilder")
  
  process.CaloGeometryWriter = cms.EDAnalyzer("PCaloGeometryBuilder")
  process.HcalParametersWriter = cms.EDAnalyzer("HcalParametersDBBuilder")
  
  process.CSCGeometryWriter = cms.EDAnalyzer("CSCRecoIdealDBLoader")
  
  process.DTGeometryWriter = cms.EDAnalyzer("DTRecoIdealDBLoader")
  
  process.RPCGeometryWriter = cms.EDAnalyzer("RPCRecoIdealDBLoader")
  
  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_Extended2015_mc')),
                                                              cms.PSet(record = cms.string('IdealGeometryRecord'),tag = cms.string('TKRECO_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('PGeometricDetExtraRcd'),tag = cms.string('TKExtra_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('PTrackerParametersRcd'),tag = cms.string('TKParameters_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('PEcalBarrelRcd'),   tag = cms.string('EBRECO_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('PEcalEndcapRcd'),   tag = cms.string('EERECO_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('PEcalPreshowerRcd'),tag = cms.string('EPRECO_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('PHcalRcd'),         tag = cms.string('HCALRECO_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('HcalParametersRcd'), tag = cms.string('HCALParameters_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('PCaloTowerRcd'),    tag = cms.string('CTRECO_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('PZdcRcd'),          tag = cms.string('ZDCRECO_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('PCastorRcd'),       tag = cms.string('CASTORRECO_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('CSCRecoGeometryRcd'),tag = cms.string('CSCRECO_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('CSCRecoDigiParametersRcd'),tag = cms.string('CSCRECODIGI_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('DTRecoGeometryRcd'),tag = cms.string('DTRECO_Geometry2015_TagXX')),
                                                              cms.PSet(record = cms.string('RPCRecoGeometryRcd'),tag = cms.string('RPCRECO_Geometry2015_TagXX'))
                                                              )
                                            )
  
  process.maxEvents = cms.untracked.PSet(
      input = cms.untracked.int32(1)
      )
  
  process.p1 = cms.Path(process.XMLGeometryWriter+process.TrackerGeometryWriter+process.TrackerGeometryExtraWriter+process.TrackerParametersWriter+process.CaloGeometryWriter+process.HcalParametersWriter+process.CSCGeometryWriter+process.DTGeometryWriter+process.RPCGeometryWriter)
  