File indexing completed on 2024-04-06 12:07:42
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 = 'unitTest=True' in sys.argv
0011
0012 if unitTest:
0013 from DQM.Integration.config.unittestinputsource_cfi import options, runType, source
0014 else:
0015 from DQM.Integration.config.inputsource_cfi import options, runType, source, set_BeamSplashRun_settings
0016
0017
0018
0019
0020 scenarios = {'pp_run': 'ppEra_Run3','cosmic_run':'cosmicsEra_Run3','hi_run':'ppEra_Run3_pp_on_PbPb_approxSiStripClusters', 'commissioning_run':'cosmicsEra_Run3'}
0021
0022 if not runType.getRunTypeName() in scenarios.keys():
0023 msg = "Error getting the scenario out of the 'runkey', no mapping for: %s\n"%runType.getRunTypeName()
0024 raise RuntimeError(msg)
0025
0026 scenarioName = scenarios[runType.getRunTypeName()]
0027
0028 if not unitTest :
0029 if options.BeamSplashRun :
0030 scenarioName = 'ppEra_Run3'
0031 pass
0032
0033 print("Using scenario:",scenarioName)
0034
0035 try:
0036 scenario = getScenario(scenarioName)
0037 except Exception as ex:
0038 msg = "Error getting Scenario implementation for %s\n" % (
0039 scenarioName,)
0040 msg += str(ex)
0041 raise RuntimeError(msg)
0042
0043
0044
0045 from DQM.Integration.config.FrontierCondition_GT_autoExpress_cfi import GlobalTag
0046 kwds = {
0047 'globalTag': GlobalTag.globaltag.value(),
0048 'globalTagConnect': GlobalTag.connect.value(),
0049 'beamSplashRun' : ":localreco+hcalOnlyGlobalRecoSequence+caloTowersRec" if options.BeamSplashRun else "",
0050 }
0051
0052
0053 from EventFilter.RawDataCollector.rawDataMapperByLabel_cfi import rawDataMapperByLabel
0054 rawDataMapperByLabel.rawCollectionList = ["rawDataRepacker"]
0055
0056
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
0075 if options.BeamSplashRun:
0076 set_BeamSplashRun_settings( process.source )
0077
0078
0079 if runType.getRunType() == runType.hi_run:
0080 process.source.streamLabel = "streamHIDQMEventDisplay"
0081 else:
0082 process.source.streamLabel = "streamDQMEventDisplay"
0083
0084 m = re.search(r"\((\w+)\)", str(source.runNumber))
0085 runno = str(m.group(1))
0086 outDir= options.outputBaseDir+'/EvD/run'+runno+'/streamEvDOutput2'
0087 else:
0088 runno = options.runNumber
0089 outDir = "./upload"
0090
0091
0092 try:
0093 os.makedirs(outDir)
0094 except:
0095 pass
0096
0097 process.options = cms.untracked.PSet(
0098 Rethrow = cms.untracked.vstring('ProductNotFound'),
0099 wantSummary = cms.untracked.bool(True),
0100 numberOfThreads = cms.untracked.uint32(8),
0101 numberOfStreams = cms.untracked.uint32(8)
0102 )
0103
0104 process.maxEvents = cms.untracked.PSet(
0105 input = cms.untracked.int32(-1)
0106 )
0107 oldo = process._Process__outputmodules["FEVToutput"]
0108 del process._Process__outputmodules["FEVToutput"]
0109
0110 process.FEVToutput = cms.OutputModule("JsonWritingTimeoutPoolOutputModule",
0111 splitLevel = oldo.splitLevel,
0112 outputCommands = oldo.outputCommands,
0113 fileName = oldo.fileName,
0114 dataset = oldo.dataset,
0115 runNumber = cms.untracked.uint32(int(runno)),
0116 streamLabel = cms.untracked.string("streamEvDOutput2_dqmcluster"),
0117
0118 outputPath = cms.untracked.string(outDir),
0119 )
0120
0121 if hasattr(oldo, 'SelectEvents'):
0122 process.FEVToutput.SelectEvents = oldo.SelectEvents
0123
0124 process.DQMMonitoringService = cms.Service("DQMMonitoringService")
0125
0126 dump = False
0127 if dump:
0128 psetFile = open("RunVisualizationProcessingCfg.py", "w")
0129 psetFile.write(process.dumpPython())
0130 psetFile.close()
0131 cmsRun = "cmsRun -e RunVisualizationProcessingCfg.py"
0132 print("Now do:\n%s" % cmsRun)
0133 print("Final Source settings:", process.source)