Back to home page

Project CMSSW displayed by LXR

 
 

    


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 # 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('datafnPosition',
0019                  3, # default value
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, # default value
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, # 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 beginning of the processing.")
0041 
0042 options.register('noDB',
0043                  True, # default value
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, # default value
0050                  VarParsing.VarParsing.multiplicity.singleton,
0051                  VarParsing.VarParsing.varType.bool,
0052                  "Set client source settings for beam SPLASH run")
0053 
0054 # Parameters for runType
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 # Parameter for frontierKey
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 # Parameter for output directory of the event display clients
0071 # visualization-live and visualization-live-secondInstance
0072 # this additional input argument was added in the hltd framework
0073 # only for the visualization clients 
0074 # Note, the other clients do not use this input parameter
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 # Fix to allow scram to compile
0087 #if len(sys.argv) > 1:
0088 #  options.parseArguments()
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     # Input source
0098     nextLumiTimeoutMillis = 240000
0099     endOfRunKills = True
0100 
0101     if options.scanOnce:
0102         endOfRunKills = False
0103         nextLumiTimeoutMillis = 0
0104 
0105     # stream label
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 #source = cms.Source("PoolSource",
0136 #    fileNames = cms.untracked.vstring(
0137 #       '/store/user/tosi/STEAM/DQM/online/outputDQM_3.root'
0138 #    ),
0139 #    secondaryFileNames = cms.untracked.vstring()
0140 #)
0141 
0142 # https://twiki.cern.ch/twiki/bin/viewauth/CMS/CMSBeamSplash2017
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)