Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-25 02:29:34

0001 import FWCore.ParameterSet.Config as cms
0002 import FWCore.ParameterSet.VarParsing as VarParsing
0003 from FWCore.ParameterSet.Types import PSet
0004 
0005 process = cms.Process("DQMTEST")
0006 
0007 options = VarParsing.VarParsing('analysis')
0008 
0009 options.register('runNumber',
0010                  100101,
0011                  VarParsing.VarParsing.multiplicity.singleton,
0012                  VarParsing.VarParsing.varType.int,
0013                  "Run number.")
0014 
0015 options.register('runInputDir',
0016                  '/tmp',
0017                  VarParsing.VarParsing.multiplicity.singleton,
0018                  VarParsing.VarParsing.varType.string,
0019                  "Directory where the DQM files will appear.")
0020 options.register('eventsPerLS',
0021                  35,
0022                   VarParsing.VarParsing.multiplicity.singleton,
0023                   VarParsing.VarParsing.varType.int,          # string, int, or float
0024                   "Max LS to generate (0 to disable limit)")                 
0025 options.register ('maxLS',
0026                   2,
0027                   VarParsing.VarParsing.multiplicity.singleton,
0028                   VarParsing.VarParsing.varType.int,          # string, int, or float
0029                   "Max LS to generate (0 to disable limit)")
0030 
0031 options.parseArguments()
0032 
0033 
0034 process.MessageLogger = cms.Service("MessageLogger",
0035                                     destinations = cms.untracked.vstring('cout'),
0036                                     cout = cms.untracked.PSet(threshold = cms.untracked.string('WARNING'))
0037                                     )
0038 process.source = cms.Source("DQMStreamerReader",
0039         runNumber = cms.untracked.uint32(options.runNumber),
0040         runInputDir = cms.untracked.string(options.runInputDir),
0041         streamLabel = cms.untracked.string('streamDQM'),
0042         scanOnce = cms.untracked.bool(True),
0043         minEventsPerLumi = cms.untracked.int32(1),
0044         delayMillis = cms.untracked.uint32(500),
0045         nextLumiTimeoutMillis = cms.untracked.int32(0),
0046         skipFirstLumis = cms.untracked.bool(False),
0047         deleteDatFiles = cms.untracked.bool(False),
0048         endOfRunKills  = cms.untracked.bool(False),
0049         inputFileTransitionsEachEvent = cms.untracked.bool(False),
0050         SelectEvents = cms.untracked.vstring("HLT*Mu*","HLT_*Physics*")
0051 )
0052 
0053 #make a list of all the EventIDs that were seen by the previous job,
0054 # given the filter is semi-random we do not know which of these will
0055 # be the actual first event written
0056 rn = options.runNumber
0057 transitions = [cms.EventID(rn,0,0)]
0058 evid = 1
0059 for lumi in range(1, options.maxLS+1):
0060     transitions.append(cms.EventID(rn,lumi,0))
0061     for ev in range(0, options.eventsPerLS):
0062         transitions.append(cms.EventID(rn,lumi,evid))
0063         evid += 1
0064     transitions.append(cms.EventID(rn,lumi,0)) #end lumi
0065 transitions.append(cms.EventID(rn,0,0)) #end run
0066 
0067 
0068 #only see 1 event as process.source.minEventsPerLumi == 1
0069 process.test = cms.EDAnalyzer("RunLumiEventChecker",
0070                               eventSequence = cms.untracked.VEventID(*transitions),
0071                               unorderedEvents = cms.untracked.bool(True),
0072                               minNumberOfEvents = cms.untracked.uint32(1+2+2),
0073                               maxNumberOfEvents = cms.untracked.uint32(1+2+2)
0074 )
0075 if options.eventsPerLS == 0:
0076     process.test.eventSequence = []
0077     process.test.minNumberOfEvents = 0
0078     process.test.maxNumberOfEvents = 0
0079     
0080 process.p = cms.Path(process.test)
0081