Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:02:43

0001 import FWCore.ParameterSet.Config as cms
0002 import FWCore.ParameterSet.VarParsing as VarParsing
0003 
0004 process = cms.Process("READ")
0005 
0006 options = VarParsing.VarParsing()
0007 options.register('unitTest',
0008                  False, # default value
0009                  VarParsing.VarParsing.multiplicity.singleton, # singleton or list
0010                  VarParsing.VarParsing.varType.bool, # string, int, or float
0011                  "are we running the unit test?")
0012 options.register('inputTag',
0013                  "myInputTagName", # default value
0014                  VarParsing.VarParsing.multiplicity.singleton, # singleton or list
0015                  VarParsing.VarParsing.varType.string, # string, int, or float
0016                  "input tag name")
0017 options.register('inputFile',
0018                  "", # default value
0019                  VarParsing.VarParsing.multiplicity.singleton, # singleton or list
0020                  VarParsing.VarParsing.varType.string, # string, int, or float
0021                  "input sqlite (.db) file")
0022 options.register('outputTag',
0023                  "myOutputTagName", # default value
0024                  VarParsing.VarParsing.multiplicity.singleton, # singleton or list
0025                  VarParsing.VarParsing.varType.string, # string, int, or float
0026                  "output tag name")
0027 options.register('outputRecord',
0028                  "BeamSpotOnlineLegacyObjectsRcd", # default value
0029                  VarParsing.VarParsing.multiplicity.singleton, # singleton or list
0030                  VarParsing.VarParsing.varType.string, # string, int, or float
0031                  "type of output record")
0032 options.register('startRun',
0033                  1, # default value
0034                  VarParsing.VarParsing.multiplicity.singleton, # singleton or list
0035                  VarParsing.VarParsing.varType.int, # string, int, or float
0036                  "location of the input data")
0037 options.register('startLumi',
0038                  1, # default value
0039                  VarParsing.VarParsing.multiplicity.singleton, # singleton or list
0040                  VarParsing.VarParsing.varType.int, # string, int, or float
0041                  "IOV Start Lumi")
0042 options.parseArguments()
0043 
0044 process.load("FWCore.MessageService.MessageLogger_cfi")
0045 process.MessageLogger.cerr.FwkReport.reportEvery = 100000 # do not clog output with IO
0046 
0047 process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32(999))
0048 
0049 ####################################################################
0050 # Empty source 
0051 ####################################################################
0052 process.source = cms.Source("EmptySource",
0053                             firstRun = cms.untracked.uint32(options.startRun),                  
0054                             firstLuminosityBlock = cms.untracked.uint32(options.startLumi),     
0055                             numberEventsInLuminosityBlock = cms.untracked.uint32(1),            
0056                             numberEventsInRun = cms.untracked.uint32(999))
0057 
0058 ####################################################################
0059 # Connect to conditions DB
0060 ####################################################################
0061 if options.inputFile != "":
0062     from CondCore.CondDB.CondDB_cfi import *
0063     # Load from a local db file
0064     CondDBBeamSpotObjects = CondDB.clone(connect = cms.string('sqlite_file:'+options.inputFile))
0065     #To connect directly to a database replace the above line with:
0066     #CondDBBeamSpotObjects = CondDB.clone(connect = cms.string('frontier://FrontierProd/CMS_CONDITIONS'))
0067 
0068     # Specifying the tag name:
0069     process.dbInput = cms.ESSource("PoolDBESSource",
0070                                    CondDBBeamSpotObjects,
0071                                    toGet = cms.VPSet(cms.PSet(record = cms.string('BeamSpotObjectsRcd'),
0072                                                               tag = cms.string(options.inputTag) # choose your input tag
0073                                                              )
0074                                                     )
0075                                   )
0076 else:
0077     # Load from Global Tag
0078     process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
0079     from Configuration.AlCa.GlobalTag import GlobalTag
0080     process.GlobalTag = GlobalTag(process.GlobalTag,"auto:run2_data")
0081 
0082 ####################################################################
0083 # Load and configure outputservice
0084 ####################################################################
0085 if options.unitTest :
0086     if options.outputRecord ==  "BeamSpotOnlineLegacyObjectsRcd" :
0087         tag_name = 'BSLegacy_tag'
0088     else:
0089         tag_name = 'BSHLT_tag'
0090 else:
0091     tag_name = options.outputTag
0092 
0093 from CondCore.CondDB.CondDB_cfi import *
0094 CondDBBeamSpotObjects = CondDB.clone(connect = cms.string('sqlite_file:test_%s.db' % tag_name)) # choose an output name
0095 process.PoolDBOutputService = cms.Service("PoolDBOutputService",
0096                                           CondDBBeamSpotObjects,
0097                                           timetype = cms.untracked.string('lumiid'), #('lumiid'), #('runnumber')
0098                                           toPut = cms.VPSet(cms.PSet(record = cms.string(options.outputRecord), # BeamSpotOnline record
0099                                                                      tag = cms.string(tag_name))),              # choose your favourite tag
0100                                           loadBlobStreamer = cms.untracked.bool(False)
0101                                           )
0102 
0103 isForHLT = (options.outputRecord == "BeamSpotOnlineHLTObjectsRcd")
0104 print("isForHLT: ",isForHLT)
0105 
0106 ####################################################################
0107 # Load and configure analyzer
0108 ####################################################################
0109 from CondTools.BeamSpot.beamSpotOnlineFromOfflineConverter_cfi import beamSpotOnlineFromOfflineConverter
0110 process.BeamSpotOnlineFromOfflineConverter = beamSpotOnlineFromOfflineConverter.clone(isHLT = isForHLT)
0111 process.BeamSpotOnlineFromOfflineConverter.IOVStartRun  = options.startRun
0112 process.BeamSpotOnlineFromOfflineConverter.IOVStartLumi = options.startLumi
0113 
0114 # Put module in path:
0115 process.p = cms.Path(process.BeamSpotOnlineFromOfflineConverter)