File indexing completed on 2023-03-17 10:54:14
0001 from __future__ import print_function
0002 import FWCore.ParameterSet.Config as cms
0003 import FWCore.ParameterSet.VarParsing as VarParsing
0004
0005 import sys
0006
0007 from DQM.Integration.config.dqmPythonTypes import RunType
0008 from DQM.DTMonitorModule.test.dtDqmPythonTypes import DTDQMConfig
0009
0010 options = VarParsing.VarParsing('analysis')
0011
0012
0013 options.register('runNumber',
0014 111,
0015 VarParsing.VarParsing.multiplicity.singleton,
0016 VarParsing.VarParsing.varType.int,
0017 "Run number.")
0018
0019 options.register('runInputDir',
0020 '/tmp',
0021 VarParsing.VarParsing.multiplicity.singleton,
0022 VarParsing.VarParsing.varType.string,
0023 "Directory where the DQM files will appear.")
0024
0025 options.register('scanOnce',
0026 False,
0027 VarParsing.VarParsing.multiplicity.singleton,
0028 VarParsing.VarParsing.varType.bool,
0029 "Don't repeat file scans: use what was found during the initial scan. EOR file is ignored and the state is set to 'past end of run'.")
0030
0031 options.register('minEventsPerLumi',
0032 1,
0033 VarParsing.VarParsing.multiplicity.singleton,
0034 VarParsing.VarParsing.varType.int,
0035 "If scanOnce is tue, sets the minimal # of events per LS to be processed before switching to the next LS (and file).")
0036
0037 options.register('skipFirstLumis',
0038 False,
0039 VarParsing.VarParsing.multiplicity.singleton,
0040 VarParsing.VarParsing.varType.bool,
0041 "Skip (and ignore the minEventsPerLumi parameter) for the files which have been available at the begining of the processing. ")
0042
0043
0044
0045 options.register ('runkey',
0046 'pp_run',
0047 VarParsing.VarParsing.multiplicity.singleton,
0048 VarParsing.VarParsing.varType.string,
0049 "Run Keys of CMS")
0050
0051
0052
0053 options.register('processAB7Digis',
0054 False,
0055 VarParsing.VarParsing.multiplicity.singleton,
0056 VarParsing.VarParsing.varType.bool,
0057 "Enable processing of AB7 DT digi data (duplicate occupancy plot and other customisations to DT digi monitoring)")
0058
0059 options.register('processAB7TPs',
0060 False,
0061 VarParsing.VarParsing.multiplicity.singleton,
0062 VarParsing.VarParsing.varType.bool,
0063 "Enable processing of AB7 DT local trigger data (DOES NOTHING FOR NOW)")
0064
0065 options.register('runWithLargeTimeBox',
0066 False,
0067 VarParsing.VarParsing.multiplicity.singleton,
0068 VarParsing.VarParsing.varType.bool,
0069 "Runs DTDigiTask with a timebox plot window of 6400 TDC Counts")
0070
0071 options.register('timeBoxTDCPedestal',
0072 -200,
0073 VarParsing.VarParsing.multiplicity.singleton,
0074 VarParsing.VarParsing.varType.int,
0075 "Pedestal of the lower edge of AB7 time boxes")
0076
0077
0078 options.parseArguments()
0079
0080 runType = RunType()
0081 if not options.runkey.strip():
0082 options.runkey = 'pp_run'
0083
0084 dtDqmConfig = DTDQMConfig()
0085 dtDqmConfig.setProcessAB7Digis(options.processAB7Digis)
0086 dtDqmConfig.setProcessAB7TPs(options.processAB7TPs)
0087
0088 dtDqmConfig.setRunWithLargeTB(options.runWithLargeTimeBox)
0089 dtDqmConfig.setTBTDCPedestal(options.timeBoxTDCPedestal)
0090
0091 runType.setRunType(options.runkey.strip())
0092
0093 if not options.inputFiles:
0094
0095 minEventsPerLumi = 1
0096 nextLumiTimeoutMillis = 240000
0097 endOfRunKills = True
0098
0099 if options.scanOnce:
0100 endOfRunKills = False
0101 nextLumiTimeoutMillis = 0
0102 minEventsPerLumi = options.minEventsPerLumi
0103
0104 source = cms.Source("DQMStreamerReader",
0105 runNumber = cms.untracked.uint32(options.runNumber),
0106 runInputDir = cms.untracked.string(options.runInputDir),
0107 SelectEvents = cms.untracked.vstring('*'),
0108 streamLabel = cms.untracked.string('streamDQM'),
0109 scanOnce = cms.untracked.bool(options.scanOnce),
0110 minEventsPerLumi = cms.untracked.int32(minEventsPerLumi),
0111 delayMillis = cms.untracked.uint32(500),
0112 nextLumiTimeoutMillis = cms.untracked.int32(nextLumiTimeoutMillis),
0113 skipFirstLumis = cms.untracked.bool(options.skipFirstLumis),
0114 deleteDatFiles = cms.untracked.bool(False),
0115 endOfRunKills = cms.untracked.bool(endOfRunKills),
0116 )
0117 else:
0118 print("The list of input files is provided. Disabling discovery and running on everything.")
0119 files = map(lambda x: "file://" + x, options.inputFiles)
0120 source = cms.Source("PoolSource",
0121 fileNames = cms.untracked.vstring(files),
0122 secondaryFileNames = cms.untracked.vstring()
0123 )
0124
0125 print("Source:", source)
0126
0127 print("RunType:", runType)
0128
0129 print("DTDQMConfig:", dtDqmConfig)
0130