File indexing completed on 2023-06-20 01:32:25
0001 from __future__ import print_function
0002 import re, os, sys
0003 import FWCore.ParameterSet.Config as cms
0004 from Configuration.DataProcessing.GetScenario import getScenario
0005
0006 """
0007 Example configuration for online reconstruction meant for visualization clients.
0008 """
0009
0010 unitTest = False
0011 if 'unitTest=True' in sys.argv:
0012 unitTest=True
0013
0014 if unitTest:
0015 from DQM.Integration.config.unittestinputsource_cfi import options, runType, source
0016 else:
0017 from DQM.Integration.config.inputsource_cfi import options, runType, source, set_BeamSplashRun_settings
0018
0019
0020
0021
0022 scenarios = {'pp_run': 'ppEra_Run3','cosmic_run':'cosmicsEra_Run3','hi_run':'ppEra_Run3_pp_on_PbPb_approxSiStripClusters', 'commissioning_run':'cosmicsEra_Run3'}
0023
0024 if not runType.getRunTypeName() in scenarios.keys():
0025 msg = "Error getting the scenario out of the 'runkey', no mapping for: %s\n"%runType.getRunTypeName()
0026 raise RuntimeError(msg)
0027
0028 scenarioName = scenarios[runType.getRunTypeName()]
0029
0030 if not unitTest :
0031 if options.BeamSplashRun :
0032 scenarioName = 'ppEra_Run3'
0033 pass
0034
0035 print("Using scenario:",scenarioName)
0036
0037 try:
0038 scenario = getScenario(scenarioName)
0039 except Exception as ex:
0040 msg = "Error getting Scenario implementation for %s\n" % (
0041 scenarioName,)
0042 msg += str(ex)
0043 raise RuntimeError(msg)
0044
0045
0046
0047 from DQM.Integration.config.FrontierCondition_GT_autoExpress_cfi import GlobalTag
0048 kwds = {
0049 'globalTag': GlobalTag.globaltag.value(),
0050 'globalTagConnect': GlobalTag.connect.value(),
0051 'beamSplashRun' : ":localreco+hcalOnlyGlobalRecoSequence+caloTowersRec" if options.BeamSplashRun else "",
0052 }
0053
0054
0055 from EventFilter.RawDataCollector.rawDataMapperByLabel_cfi import rawDataMapperByLabel
0056 rawDataMapperByLabel.rawCollectionList = ["rawDataRepacker"]
0057
0058
0059
0060
0061
0062 process = scenario.visualizationProcessing(writeTiers=['FEVT'], **kwds)
0063
0064 if unitTest:
0065 process.__dict__['_Process__name'] = "RECONEW"
0066
0067 process.source = source
0068
0069 if not unitTest:
0070 process.source.inputFileTransitionsEachEvent = True
0071 process.source.skipFirstLumis = True
0072 process.source.minEventsPerLumi = 0
0073 process.source.nextLumiTimeoutMillis = 10000
0074 process.source.streamLabel = 'streamDQM'
0075 if options.BeamSplashRun :
0076 set_BeamSplashRun_settings( process.source )
0077
0078 m = re.search(r"\((\w+)\)", str(source.runNumber))
0079 runno = str(m.group(1))
0080 outDir= options.outputBaseDir+'/EvD/run'+runno+'/streamEvDOutput'
0081 else:
0082 runno = options.runNumber
0083 outDir = "./upload"
0084
0085
0086 try:
0087 os.makedirs(outDir)
0088 except:
0089 pass
0090
0091 process.options = cms.untracked.PSet(
0092 Rethrow = cms.untracked.vstring('ProductNotFound'),
0093 wantSummary = cms.untracked.bool(True),
0094 numberOfThreads = cms.untracked.uint32(8),
0095 numberOfStreams = cms.untracked.uint32(8)
0096 )
0097
0098 process.maxEvents = cms.untracked.PSet(
0099 input = cms.untracked.int32(-1)
0100 )
0101 oldo = process._Process__outputmodules["FEVToutput"]
0102 del process._Process__outputmodules["FEVToutput"]
0103
0104 process.FEVToutput = cms.OutputModule("JsonWritingTimeoutPoolOutputModule",
0105 splitLevel = oldo.splitLevel,
0106 outputCommands = oldo.outputCommands,
0107 fileName = oldo.fileName,
0108 dataset = oldo.dataset,
0109 runNumber = cms.untracked.uint32(int(runno)),
0110 streamLabel = cms.untracked.string("streamEvDOutput_dqmcluster"),
0111
0112 outputPath = cms.untracked.string(outDir),
0113 )
0114
0115 process.DQMMonitoringService = cms.Service("DQMMonitoringService")
0116
0117 dump = False
0118 if dump:
0119 psetFile = open("RunVisualizationProcessingCfg.py", "w")
0120 psetFile.write(process.dumpPython())
0121 psetFile.close()
0122 cmsRun = "cmsRun -e RunVisualizationProcessingCfg.py"
0123 print("Now do:\n%s" % cmsRun)
0124 print("Final Source settings:", process.source)