Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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