Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 10:55:08

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 options.parseArguments()
0071 
0072 # Fix to allow scram to compile
0073 #if len(sys.argv) > 1:
0074 #  options.parseArguments()
0075 
0076 runType = RunType()
0077 if not options.runkey.strip():
0078   options.runkey = 'pp_run'
0079 
0080 runType.setRunType(options.runkey.strip())
0081 
0082 if not options.inputFiles:
0083     # Input source
0084     nextLumiTimeoutMillis = 240000
0085     endOfRunKills = True
0086     
0087     if options.scanOnce:
0088         endOfRunKills = False
0089         nextLumiTimeoutMillis = 0
0090     
0091     source = cms.Source("DQMStreamerReader",
0092         runNumber = cms.untracked.uint32(options.runNumber),
0093         runInputDir = cms.untracked.string(options.runInputDir),
0094         SelectEvents = cms.untracked.vstring('*'),
0095         streamLabel = cms.untracked.string('streamDQM'),
0096         scanOnce = cms.untracked.bool(options.scanOnce),
0097         datafnPosition = cms.untracked.uint32(options.datafnPosition),
0098         minEventsPerLumi = cms.untracked.int32(1),
0099         delayMillis = cms.untracked.uint32(500),
0100         nextLumiTimeoutMillis = cms.untracked.int32(nextLumiTimeoutMillis),
0101         skipFirstLumis = cms.untracked.bool(options.skipFirstLumis),
0102         deleteDatFiles = cms.untracked.bool(False),
0103         endOfRunKills  = cms.untracked.bool(endOfRunKills),
0104         inputFileTransitionsEachEvent = cms.untracked.bool(False)
0105     )
0106 else:
0107     print("The list of input files is provided. Disabling discovery and running on everything.")
0108     files = ["file://" + x for x in options.inputFiles]
0109     source = cms.Source("PoolSource",
0110         fileNames = cms.untracked.vstring(files),
0111         secondaryFileNames = cms.untracked.vstring()
0112     )
0113 
0114 #source = cms.Source("PoolSource",
0115 #    fileNames = cms.untracked.vstring(
0116 #       '/store/user/tosi/STEAM/DQM/online/outputDQM_3.root'
0117 #    ),
0118 #    secondaryFileNames = cms.untracked.vstring()
0119 #)
0120 
0121 # https://twiki.cern.ch/twiki/bin/viewauth/CMS/CMSBeamSplash2017
0122 def set_BeamSplashRun_settings( source ):
0123   source.minEventsPerLumi      = 1000000
0124   source.nextLumiTimeoutMillis = 15000
0125 
0126 if options.BeamSplashRun : set_BeamSplashRun_settings( source )
0127 
0128 print("Initial Source settings:", source)