Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
import FWCore.ParameterSet.Config as cms

# Define once the BeamSpotOnline record name,
# will be used both in BeamMonitor setup and in payload creation/upload

import sys

from Configuration.Eras.Era_Run3_2025_cff import Run3_2025
process = cms.Process("OnlineBeamMonitor", Run3_2025)

# Message logger
#process.load("FWCore.MessageLogger.MessageLogger_cfi")
#process.MessageLogger = cms.Service("MessageLogger",
#    debugModules = cms.untracked.vstring('*'),
#    cerr = cms.untracked.PSet(
#        FwkReport = cms.untracked.PSet(
#            optionalPSet = cms.untracked.bool(True),
#            reportEvery = cms.untracked.int32(1000),
#            limit = cms.untracked.int32(999999)
#        )
#    ),
#    destinations = cms.untracked.vstring('cerr'),
#)

unitTest = 'unitTest=True' in sys.argv

#-----------------------------
if unitTest:
  process.load("DQM.Integration.config.unitteststreamerinputsource_cfi")
  from DQM.Integration.config.unitteststreamerinputsource_cfi import options
else:
  process.load("DQM.Integration.config.inputsource_cfi")
  from DQM.Integration.config.inputsource_cfi import options

#ESProducer
process.load("CondCore.CondDB.CondDB_cfi")
process.BeamSpotESProducer = cms.ESProducer("OnlineBeamSpotESProducer")

#-----------------------------
# DQM Live Environment
#-----------------------------
process.load("DQM.Integration.config.environment_cfi")
process.dqmEnv.subSystemFolder = 'OnlineBeamMonitor'
process.dqmSaver.tag           = 'OnlineBeamMonitor'
process.dqmSaver.runNumber     = options.runNumber
# process.dqmSaverPB.tag         = 'OnlineBeamMonitor'
# process.dqmSaverPB.runNumber   = options.runNumber

#-----------------------------
# BeamMonitor
#-----------------------------
process.dqmOnlineBeamMonitor = cms.EDProducer("OnlineBeamMonitor",
MonitorName         = cms.untracked.string("OnlineBeamMonitor"),
AppendRunToFileName = cms.untracked.bool(False),
WriteDIPAscii       = cms.untracked.bool(True),
OnlineBeamSpotLabel = cms.untracked.InputTag("hltOnlineBeamSpot"),
DIPFileName         = cms.untracked.string("/nfshome0/dqmpro/BeamMonitorDQM/BeamFitResultsForDIP.txt")
)

#---------------
# Calibration
#---------------
# Condition for P5 cluster
process.load("DQM.Integration.config.FrontierCondition_GT_cfi")
# Condition for lxplus: change and possibly customise the GT
#from Configuration.AlCa.GlobalTag import GlobalTag as gtCustomise
#process.GlobalTag = gtCustomise(process.GlobalTag, 'auto:run3_data', '')

# Please *do not* delete this toGet statement as it is needed to fetch BeamSpotOnline
# information every lumisection (instead of every run as for the other records in the GT)
process.GlobalTag.toGet = cms.VPSet(
  cms.PSet(
    record = cms.string("BeamSpotOnlineLegacyObjectsRcd"),
    refreshTime = cms.uint64(2)
  ),
  cms.PSet(
    record = cms.string("BeamSpotOnlineHLTObjectsRcd"),
    refreshTime = cms.uint64(2)
  )
)

process.dqmcommon = cms.Sequence(process.dqmEnv
                               * process.dqmSaver )#* process.dqmSaverPB)

process.monitor = cms.Sequence(process.dqmOnlineBeamMonitor)

#-----------------------------------------------------------
# process customizations included here
from DQM.Integration.config.online_customizations_cfi import *
process = customise(process)

process.p = cms.Path( process.dqmcommon * process.monitor )

print("Global Tag used:", process.GlobalTag.globaltag.value())
print("Final Source settings:", process.source)