File indexing completed on 2024-04-06 12:07:42
0001 from __future__ import print_function
0002 from __future__ import absolute_import
0003 import FWCore.ParameterSet.Config as cms
0004 import FWCore.ParameterSet.VarParsing as VarParsing
0005
0006 import sys
0007 from .dqmPythonTypes import *
0008
0009 options = VarParsing.VarParsing('analysis')
0010
0011
0012 options.register('runNumber',
0013 111,
0014 VarParsing.VarParsing.multiplicity.singleton,
0015 VarParsing.VarParsing.varType.int,
0016 "Run number.")
0017
0018 options.register('datafnPosition',
0019 3,
0020 VarParsing.VarParsing.multiplicity.singleton,
0021 VarParsing.VarParsing.varType.int,
0022 "Data filename position in the positional arguments array 'data' in json file.")
0023
0024 options.register('runInputDir',
0025 '/tmp',
0026 VarParsing.VarParsing.multiplicity.singleton,
0027 VarParsing.VarParsing.varType.string,
0028 "Directory where the DQM files will appear.")
0029
0030 options.register('scanOnce',
0031 False,
0032 VarParsing.VarParsing.multiplicity.singleton,
0033 VarParsing.VarParsing.varType.bool,
0034 "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'.")
0035
0036 options.register('skipFirstLumis',
0037 False,
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 beginning of the processing.")
0041
0042 options.register('noDB',
0043 True,
0044 VarParsing.VarParsing.multiplicity.singleton,
0045 VarParsing.VarParsing.varType.bool,
0046 "Don't upload the BeamSpot conditions to the DB")
0047
0048 options.register('BeamSplashRun',
0049 False,
0050 VarParsing.VarParsing.multiplicity.singleton,
0051 VarParsing.VarParsing.varType.bool,
0052 "Set client source settings for beam SPLASH run")
0053
0054
0055
0056 options.register('runkey',
0057 'pp_run',
0058 VarParsing.VarParsing.multiplicity.singleton,
0059 VarParsing.VarParsing.varType.string,
0060 "Run Keys of CMS")
0061
0062
0063
0064 options.register('runUniqueKey',
0065 'InValid',
0066 VarParsing.VarParsing.multiplicity.singleton,
0067 VarParsing.VarParsing.varType.string,
0068 "Unique run key from RCMS for Frontier")
0069
0070
0071
0072
0073
0074
0075
0076 options.register('outputBaseDir',
0077 '/fff/BU0/output',
0078 VarParsing.VarParsing.multiplicity.singleton,
0079 VarParsing.VarParsing.varType.string,
0080 "Directory where the visualization output files will appear.")
0081
0082
0083
0084 options.parseArguments()
0085
0086
0087
0088
0089
0090 runType = RunType()
0091 if not options.runkey.strip():
0092 options.runkey = 'pp_run'
0093
0094 runType.setRunType(options.runkey.strip())
0095
0096 if not options.inputFiles:
0097
0098 nextLumiTimeoutMillis = 240000
0099 endOfRunKills = True
0100
0101 if options.scanOnce:
0102 endOfRunKills = False
0103 nextLumiTimeoutMillis = 0
0104
0105
0106 if runType.getRunType() == runType.hi_run:
0107 streamLabel = 'streamHIDQM'
0108 else:
0109 streamLabel = 'streamDQM'
0110
0111 source = cms.Source("DQMStreamerReader",
0112 runNumber = cms.untracked.uint32(options.runNumber),
0113 runInputDir = cms.untracked.string(options.runInputDir),
0114 SelectEvents = cms.untracked.vstring('*'),
0115 streamLabel = cms.untracked.string(streamLabel),
0116 scanOnce = cms.untracked.bool(options.scanOnce),
0117 datafnPosition = cms.untracked.uint32(options.datafnPosition),
0118 minEventsPerLumi = cms.untracked.int32(1),
0119 delayMillis = cms.untracked.uint32(500),
0120 nextLumiTimeoutMillis = cms.untracked.int32(nextLumiTimeoutMillis),
0121 skipFirstLumis = cms.untracked.bool(options.skipFirstLumis),
0122 deleteDatFiles = cms.untracked.bool(False),
0123 endOfRunKills = cms.untracked.bool(endOfRunKills),
0124 inputFileTransitionsEachEvent = cms.untracked.bool(False)
0125 )
0126
0127 else:
0128 print("The list of input files is provided. Disabling discovery and running on everything.")
0129 files = ["file://" + x for x in options.inputFiles]
0130 source = cms.Source("PoolSource",
0131 fileNames = cms.untracked.vstring(files),
0132 secondaryFileNames = cms.untracked.vstring()
0133 )
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143 def set_BeamSplashRun_settings( source ):
0144 source.minEventsPerLumi = 1000000
0145 source.nextLumiTimeoutMillis = 15000
0146
0147 if options.BeamSplashRun : set_BeamSplashRun_settings( source )
0148
0149 print("Initial Source settings:", source)