Back to home page

Project CMSSW displayed by LXR

 
 

    


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', #default value
0009                  VarParsing.VarParsing.multiplicity.singleton,
0010                  VarParsing.VarParsing.varType.string,
0011                  'Connection string')
0012 options.register('record',
0013                  'EcalPedestalsRcd', #default value
0014                  VarParsing.VarParsing.multiplicity.singleton,
0015                  VarParsing.VarParsing.varType.string,
0016                  'Event Setup Record registered for Condition usage')
0017 options.register('label',
0018                  '', #default value
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', #default value
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', #default value is MAX_TIMESTAMP
0029                  VarParsing.VarParsing.multiplicity.singleton,
0030                  VarParsing.VarParsing.varType.string,
0031                  'Tag snapshot time')
0032 options.register('refresh',
0033                  0, #default value
0034                  VarParsing.VarParsing.multiplicity.singleton,
0035                  VarParsing.VarParsing.varType.int,
0036                  "Refresh type: default no refresh")
0037 options.register('pfnPostfix',
0038                  '', #default value
0039                  VarParsing.VarParsing.multiplicity.singleton,
0040                  VarParsing.VarParsing.varType.string,
0041                  "PFN postfix in GlobalTag connection strings")
0042 options.register('pfnPrefix',
0043                  '', #default value
0044                  VarParsing.VarParsing.multiplicity.singleton,
0045                  VarParsing.VarParsing.varType.string,
0046                  "PFN prefix in GlobalTag connection strings")
0047 options.register('runNumber',
0048                  4294967292, #default value, int limit -3
0049                  VarParsing.VarParsing.multiplicity.singleton,
0050                  VarParsing.VarParsing.varType.int,
0051                  "Run number; default gives latest IOV")
0052 options.register('eventsPerLumi',
0053                  3, #default value
0054                  VarParsing.VarParsing.multiplicity.singleton,
0055                  VarParsing.VarParsing.varType.int,
0056                  "number of events per lumi")
0057 options.register('numberOfLumis',
0058                  3, #default value
0059                  VarParsing.VarParsing.multiplicity.singleton,
0060                  VarParsing.VarParsing.varType.int,
0061                  "number of lumisections per run")
0062 options.register('numberOfRuns',
0063                  3, #default value
0064                  VarParsing.VarParsing.multiplicity.singleton,
0065                  VarParsing.VarParsing.varType.int,
0066                  "number of runs in the job")
0067 options.register('messageLevel',
0068                  0, #default value
0069                  VarParsing.VarParsing.multiplicity.singleton,
0070                  VarParsing.VarParsing.varType.int,
0071                  "Message level; default to 0")
0072 options.register('security',
0073                  '', #default value
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 ), #24 hours ago in nanoseconds
0137                              numberEventsInRun = cms.untracked.uint32( options.eventsPerLumi *  options.numberOfLumis ), # options.numberOfLumis lumi sections per run
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 ) ) #options.numberOfRuns runs per job
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_() ))