File indexing completed on 2024-11-25 02:29:19
0001 import time
0002
0003 import FWCore.ParameterSet.Config as cms
0004 import FWCore.ParameterSet.VarParsing as VarParsing
0005
0006 options = VarParsing.VarParsing()
0007 options.register('connectionString',
0008 'frontier://FrontierProd/CMS_CONDITIONS',
0009 VarParsing.VarParsing.multiplicity.singleton,
0010 VarParsing.VarParsing.varType.string,
0011 'Connection string')
0012 options.register('record',
0013 'EcalPedestalsRcd',
0014 VarParsing.VarParsing.multiplicity.singleton,
0015 VarParsing.VarParsing.varType.string,
0016 'Event Setup Record registered for Condition usage')
0017 options.register('label',
0018 '',
0019 VarParsing.VarParsing.multiplicity.singleton,
0020 VarParsing.VarParsing.varType.string,
0021 'Label associated to the Record')
0022 options.register('tag',
0023 'EcalPedestals_205858_200_mc_reduced_noise',
0024 VarParsing.VarParsing.multiplicity.singleton,
0025 VarParsing.VarParsing.varType.string,
0026 'Tag stored in Condition Database')
0027 options.register('snapshotTime',
0028 '9999-12-31 23:59:59.000',
0029 VarParsing.VarParsing.multiplicity.singleton,
0030 VarParsing.VarParsing.varType.string,
0031 'Tag snapshot time')
0032 options.register('refresh',
0033 0,
0034 VarParsing.VarParsing.multiplicity.singleton,
0035 VarParsing.VarParsing.varType.int,
0036 "Refresh type: default no refresh")
0037 options.register('pfnPostfix',
0038 '',
0039 VarParsing.VarParsing.multiplicity.singleton,
0040 VarParsing.VarParsing.varType.string,
0041 "PFN postfix in GlobalTag connection strings")
0042 options.register('pfnPrefix',
0043 '',
0044 VarParsing.VarParsing.multiplicity.singleton,
0045 VarParsing.VarParsing.varType.string,
0046 "PFN prefix in GlobalTag connection strings")
0047 options.register('runNumber',
0048 4294967292,
0049 VarParsing.VarParsing.multiplicity.singleton,
0050 VarParsing.VarParsing.varType.int,
0051 "Run number; default gives latest IOV")
0052 options.register('eventsPerLumi',
0053 3,
0054 VarParsing.VarParsing.multiplicity.singleton,
0055 VarParsing.VarParsing.varType.int,
0056 "number of events per lumi")
0057 options.register('numberOfLumis',
0058 3,
0059 VarParsing.VarParsing.multiplicity.singleton,
0060 VarParsing.VarParsing.varType.int,
0061 "number of lumisections per run")
0062 options.register('numberOfRuns',
0063 3,
0064 VarParsing.VarParsing.multiplicity.singleton,
0065 VarParsing.VarParsing.varType.int,
0066 "number of runs in the job")
0067 options.register('messageLevel',
0068 0,
0069 VarParsing.VarParsing.multiplicity.singleton,
0070 VarParsing.VarParsing.varType.int,
0071 "Message level; default to 0")
0072 options.register('security',
0073 '',
0074 VarParsing.VarParsing.multiplicity.singleton,
0075 VarParsing.VarParsing.varType.string,
0076 "FroNTier connection security: activate it with 'sig'")
0077
0078 options.parseArguments()
0079
0080 process = cms.Process("TEST")
0081
0082 process.MessageLogger = cms.Service( "MessageLogger",
0083 destinations = cms.untracked.vstring( 'recordInfo' ),
0084 recordInfo = cms.untracked.PSet( threshold = cms.untracked.string( 'INFO' ) ),
0085 )
0086
0087 CondDBParameters = cms.PSet( authenticationPath = cms.untracked.string( '' ),
0088 authenticationSystem = cms.untracked.int32( 0 ),
0089 messageLevel = cms.untracked.int32( options.messageLevel ),
0090 security = cms.untracked.string( options.security ),
0091 )
0092
0093 refreshAlways, refreshOpenIOVs, refreshEachRun, reconnectEachRun = False, False, False, False
0094 if options.refresh == 0:
0095 refreshAlways, refreshOpenIOVs, refreshEachRun, reconnectEachRun = False, False, False, False
0096 elif options.refresh == 1:
0097 refreshAlways = True
0098 refreshOpenIOVs, refreshEachRun, reconnectEachRun = False, False, False
0099 elif options.refresh == 2:
0100 refreshAlways = False
0101 refreshOpenIOVs = True
0102 refreshEachRun, reconnectEachRun = False, False
0103 elif options.refresh == 3:
0104 refreshAlways, refreshOpenIOVs = False, False
0105 refreshEachRun = True
0106 reconnectEachRun = False
0107 elif options.refresh == 4:
0108 refreshAlways, refreshOpenIOVs, refreshEachRun = False, False, False
0109 reconnectEachRun = True
0110
0111 process.GlobalTag = cms.ESSource( "PoolDBESSource",
0112 DBParameters = CondDBParameters,
0113 toGet = cms.VPSet( cms.PSet( record = cms.string( options.record ),
0114 label = cms.untracked.string( options.label ),
0115 connect = cms.string( options.connectionString ),
0116 tag = cms.string( options.tag ),
0117 snapshotTime = cms.string( options.snapshotTime ),
0118 ),
0119 ),
0120 RefreshAlways = cms.untracked.bool( refreshAlways ),
0121 RefreshOpenIOVs = cms.untracked.bool( refreshOpenIOVs ),
0122 RefreshEachRun = cms.untracked.bool( refreshEachRun ),
0123 ReconnectEachRun = cms.untracked.bool( reconnectEachRun ),
0124 DumpStat = cms.untracked.bool( True ),
0125 pfnPrefix = cms.untracked.string( '' ),
0126 pfnPostfix = cms.untracked.string( '' )
0127 )
0128
0129 if options.pfnPrefix:
0130 process.GlobalTag.pfnPrefix = options.pfnPrefix
0131 if options.pfnPostfix:
0132 process.GlobalTag.pfnPostfix = options.pfnPostfix
0133
0134 process.source = cms.Source( "EmptySource",
0135 firstRun = cms.untracked.uint32( options.runNumber ),
0136 firstTime = cms.untracked.uint64( ( long( time.time() ) - 24 * 3600 ) << 32 ),
0137 numberEventsInRun = cms.untracked.uint32( options.eventsPerLumi * options.numberOfLumis ),
0138 numberEventsInLuminosityBlock = cms.untracked.uint32( options.eventsPerLumi )
0139 )
0140
0141 process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32( options.eventsPerLumi * options.numberOfLumis * options.numberOfRuns ) )
0142
0143 process.get = cms.EDAnalyzer( "EventSetupRecordDataGetter",
0144 toGet = cms.VPSet(),
0145 verbose = cms.untracked.bool( True )
0146 )
0147
0148 process.escontent = cms.EDAnalyzer( "PrintEventSetupContent",
0149 compact = cms.untracked.bool( True ),
0150 printProviders = cms.untracked.bool( True )
0151 )
0152
0153 process.esretrieval = cms.EDAnalyzer( "PrintEventSetupDataRetrieval",
0154 printProviders = cms.untracked.bool( True )
0155 )
0156
0157 process.p = cms.Path( process.get )
0158 process.esout = cms.EndPath( process.escontent + process.esretrieval )
0159 if process.schedule_() is not None:
0160 process.schedule_().append( process.esout )
0161
0162 for name, module in process.es_sources_().items():
0163 print("ESModules> provider:%s '%s'" % ( name, module.type_() ))
0164 for name, module in process.es_producers_().items():
0165 print("ESModules> provider:%s '%s'" % ( name, module.type_() ))