Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-26 02:34:07

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