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