File indexing completed on 2023-10-25 09:42:27
0001 from __future__ import print_function
0002 import FWCore.ParameterSet.Config as cms
0003
0004
0005
0006 BSOnlineRecordName = 'BeamSpotOnlineLegacyObjectsRcd'
0007 BSOnlineTag = 'BeamSpotOnlineLegacy'
0008 BSOnlineJobName = 'BeamSpotOnlineLegacy'
0009 BSOnlineOmsServiceUrl = 'http://cmsoms-eventing.cms:9949/urn:xdaq-application:lid=100/getRunAndLumiSection'
0010 useLockRecords = True
0011
0012 import sys
0013 if 'runkey=hi_run' in sys.argv:
0014 from Configuration.Eras.Era_Run3_pp_on_PbPb_approxSiStripClusters_cff import Run3_pp_on_PbPb_approxSiStripClusters
0015 process = cms.Process("BeamMonitorLegacy", Run3_pp_on_PbPb_approxSiStripClusters)
0016 else:
0017 from Configuration.Eras.Era_Run3_cff import Run3
0018 process = cms.Process("BeamMonitorLegacy", Run3)
0019
0020 process.MessageLogger = cms.Service("MessageLogger",
0021 debugModules = cms.untracked.vstring('*'),
0022 cerr = cms.untracked.PSet(
0023 threshold = cms.untracked.string('WARNING')
0024 ),
0025 destinations = cms.untracked.vstring('cerr')
0026 )
0027
0028
0029 live = True
0030 unitTest = False
0031
0032 if 'unitTest=True' in sys.argv:
0033 live=False
0034 unitTest=True
0035 useLockRecords = False
0036
0037
0038
0039 if unitTest:
0040 process.load("DQM.Integration.config.unittestinputsource_cfi")
0041 from DQM.Integration.config.unittestinputsource_cfi import options
0042 elif live:
0043 process.load("DQM.Integration.config.inputsource_cfi")
0044 from DQM.Integration.config.inputsource_cfi import options
0045 else:
0046 process.load("DQM.Integration.config.fileinputsource_cfi")
0047 from DQM.Integration.config.fileinputsource_cfi import options
0048
0049
0050
0051 process.hltTriggerTypeFilter = cms.EDFilter("HLTTriggerTypeFilter",
0052 SelectedTriggerType = cms.int32(1)
0053 )
0054
0055
0056
0057 process.load("DQM.Integration.config.environment_cfi")
0058 process.dqmEnv.subSystemFolder = 'BeamMonitorLegacy'
0059 process.dqmSaver.tag = 'BeamMonitorLegacy'
0060 process.dqmSaver.runNumber = options.runNumber
0061 process.dqmSaverPB.tag = 'BeamMonitorLegacy'
0062 process.dqmSaverPB.runNumber = options.runNumber
0063
0064 process.dqmEnvPixelLess = process.dqmEnv.clone(
0065 subSystemFolder = 'BeamMonitor_PixelLess'
0066 )
0067
0068
0069 if process.isDqmPlayback.value :
0070 BSOnlineTag = BSOnlineTag + 'Playback'
0071 BSOnlineJobName = BSOnlineJobName + 'Playback'
0072 BSOnlineOmsServiceUrl = ''
0073 useLockRecords = False
0074
0075
0076
0077
0078 if (live):
0079 process.load("DQM.Integration.config.FrontierCondition_GT_cfi")
0080 process.GlobalTag.DBParameters.authenticationPath = '.'
0081 else:
0082 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0083 from Configuration.AlCa.GlobalTag import GlobalTag as gtCustomise
0084 process.GlobalTag = gtCustomise(process.GlobalTag, 'auto:run3_data', '')
0085 process.GlobalTag.DBParameters.authenticationPath = '.'
0086
0087
0088
0089
0090
0091
0092 import RecoVertex.BeamSpotProducer.onlineBeamSpotESProducer_cfi as _mod
0093 process.BeamSpotESProducer = _mod.onlineBeamSpotESProducer.clone()
0094
0095
0096 if ((not live) or process.isDqmPlayback.value):
0097 process.BeamSpotESProducer.timeThreshold = cms.int32(int(1e6))
0098
0099 import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi
0100 process.offlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone()
0101
0102
0103
0104 process.load("DQM.BeamMonitor.BeamMonitor_Pixel_cff")
0105 process.load("DQM.BeamMonitor.BeamSpotProblemMonitor_cff")
0106 process.load("DQM.BeamMonitor.BeamConditionsMonitor_cff")
0107
0108 if process.dqmRunConfig.type.value() == "production":
0109 process.dqmBeamMonitor.BeamFitter.WriteAscii = True
0110 process.dqmBeamMonitor.BeamFitter.AsciiFileName = '/nfshome0/yumiceva/BeamMonitorDQM/BeamFitResultsOld.txt'
0111 process.dqmBeamMonitor.BeamFitter.WriteDIPAscii = True
0112 process.dqmBeamMonitor.BeamFitter.DIPFileName = '/nfshome0/dqmpro/BeamMonitorDQM/BeamFitResultsOld.txt'
0113 else:
0114 process.dqmBeamMonitor.BeamFitter.WriteAscii = False
0115 process.dqmBeamMonitor.BeamFitter.AsciiFileName = '/nfshome0/yumiceva/BeamMonitorDQM/BeamFitResultsOld.txt'
0116 process.dqmBeamMonitor.BeamFitter.WriteDIPAscii = True
0117 if (live):
0118 process.dqmBeamMonitor.BeamFitter.DIPFileName = '/nfshome0/dqmdev/BeamMonitorDQM/BeamFitResultsOld.txt'
0119 else:
0120 process.dqmBeamMonitor.BeamFitter.DIPFileName = 'BeamFitResultsOld.txt'
0121
0122
0123
0124 process.load("Configuration.StandardSequences.GeometryRecoDB_cff")
0125 process.load('Configuration.StandardSequences.MagneticField_AutoFromDBCurrent_cff')
0126 process.load("Configuration.StandardSequences.RawToDigi_Data_cff")
0127 process.load("RecoLocalTracker.Configuration.RecoLocalTracker_cff")
0128 process.load("TrackingTools.TransientTrack.TransientTrackBuilder_cfi")
0129 from RecoTracker.PixelLowPtUtilities.siPixelClusterShapeCache_cfi import *
0130 process.siPixelClusterShapeCachePreSplitting = siPixelClusterShapeCache.clone(
0131 src = 'siPixelClustersPreSplitting'
0132 )
0133 process.load("RecoLocalTracker.SiPixelRecHits.PixelCPEGeneric_cfi")
0134
0135
0136
0137
0138 process.pixelTracksCutClassifier = cms.EDProducer( "TrackCutClassifier",
0139 src = cms.InputTag( "pixelTracks" ),
0140 beamspot = cms.InputTag( "offlineBeamSpot" ),
0141 vertices = cms.InputTag( "" ),
0142 qualityCuts = cms.vdouble( -0.7, 0.1, 0.7 ),
0143 mva = cms.PSet(
0144 minPixelHits = cms.vint32( 0, 3, 3 ),
0145 maxDzWrtBS = cms.vdouble( 3.40282346639E38, 3.40282346639E38, 60.0 ),
0146 dr_par = cms.PSet(
0147 d0err = cms.vdouble( 0.003, 0.003, 3.40282346639E38 ),
0148 dr_par2 = cms.vdouble( 0.3, 0.3, 3.40282346639E38 ),
0149 dr_par1 = cms.vdouble( 0.4, 0.4, 3.40282346639E38 ),
0150 dr_exp = cms.vint32( 4, 4, 4 ),
0151 d0err_par = cms.vdouble( 0.001, 0.001, 3.40282346639E38 )
0152 ),
0153 maxLostLayers = cms.vint32( 99, 99, 99 ),
0154 min3DLayers = cms.vint32( 0, 2, 3 ),
0155 dz_par = cms.PSet(
0156 dz_par1 = cms.vdouble( 0.4, 0.4, 3.40282346639E38 ),
0157 dz_par2 = cms.vdouble( 0.35, 0.35, 3.40282346639E38 ),
0158 dz_exp = cms.vint32( 4, 4, 4 )
0159 ),
0160 minNVtxTrk = cms.int32( 3 ),
0161 maxDz = cms.vdouble( 3.40282346639E38, 3.40282346639E38, 3.40282346639E38 ),
0162 minNdof = cms.vdouble( 1.0E-5, 1.0E-5, 1.0E-5 ),
0163 maxChi2 = cms.vdouble( 9999., 9999., 30.0 ),
0164 maxDr = cms.vdouble( 99., 99., 1. ),
0165 minLayers = cms.vint32( 0, 2, 3 )
0166 ),
0167 ignoreVertices = cms.bool( True ),
0168 )
0169
0170
0171 process.pixelTracksHP = cms.EDProducer( "TrackCollectionFilterCloner",
0172 minQuality = cms.string( "highPurity" ),
0173 copyExtras = cms.untracked.bool( True ),
0174 copyTrajectories = cms.untracked.bool( False ),
0175 originalSource = cms.InputTag( "pixelTracks" ),
0176 originalQualVals = cms.InputTag( 'pixelTracksCutClassifier','QualityMasks' ),
0177 originalMVAVals = cms.InputTag( 'pixelTracksCutClassifier','MVAValues' )
0178 )
0179
0180
0181
0182
0183 import DQM.TrackingMonitor.TrackerCollisionTrackingMonitor_cfi
0184 process.pixelTracksMonitor = DQM.TrackingMonitor.TrackerCollisionTrackingMonitor_cfi.TrackerCollisionTrackMon.clone(
0185 FolderName = 'BeamMonitorLegacy/Tracking/pixelTracks',
0186 TrackProducer = 'pixelTracks',
0187 allTrackProducer = 'pixelTracks',
0188 beamSpot = "offlineBeamSpot",
0189 primaryVertex = "pixelVertices",
0190
0191 doAllPlots = False,
0192 doLumiAnalysis = False,
0193 doProfilesVsLS = True,
0194 doDCAPlots = True,
0195 doPlotsVsGoodPVtx = True,
0196
0197 doEffFromHitPatternVsPU = False,
0198 doEffFromHitPatternVsBX = True,
0199 doEffFromHitPatternVsLUMI = False,
0200 doPlotsVsLUMI = True,
0201 doPlotsVsBX = True,
0202
0203 AbsDxyMax = 1.2,
0204 AbsDxyBin = 12,
0205 DxyMin = -1.2,
0206 DxyMax = 1.2,
0207 DxyBin = 60,
0208
0209 Chi2NDFMax = 35.,
0210 Chi2NDFMin = 0.,
0211 Chi2NDFBin = 70,
0212
0213 VZBin = 124,
0214 VZMin = -62.,
0215 VZMax = 62.,
0216
0217 TrackPtMin = 0.,
0218 TrackPtMax = 50.,
0219 TrackPtBin = 250
0220 )
0221
0222 process.tracks2monitor = cms.EDFilter('TrackSelector',
0223 src = cms.InputTag('pixelTracks'),
0224 cut = cms.string("")
0225 )
0226 process.tracks2monitor.src = 'pixelTracksHP'
0227 process.tracks2monitor.cut = 'pt > 1 & abs(eta) < 2.4'
0228
0229
0230
0231 process.selectedPixelTracksMonitor = process.pixelTracksMonitor.clone(
0232 FolderName = 'BeamMonitorLegacy/Tracking/selectedPixelTracks',
0233 TrackProducer = 'tracks2monitor',
0234 allTrackProducer = 'tracks2monitor'
0235 )
0236
0237 process.selectedPixelTracksMonitorSequence = cms.Sequence(
0238 process.pixelTracksCutClassifier
0239 + process.pixelTracksHP
0240 + process.tracks2monitor
0241 + process.selectedPixelTracksMonitor
0242 )
0243
0244
0245
0246
0247
0248
0249 process.dqmTKStatus = cms.EDAnalyzer("TKStatus",
0250 BeamFitter = cms.PSet(
0251 DIPFileName = process.dqmBeamMonitor.BeamFitter.DIPFileName
0252 )
0253 )
0254
0255
0256 process.dqmcommon = cms.Sequence(process.dqmEnv
0257 * process.dqmSaver*process.dqmSaverPB)
0258
0259
0260 process.monitor = cms.Sequence(process.dqmBeamMonitor
0261 + process.selectedPixelTracksMonitorSequence)
0262
0263
0264
0265
0266
0267 process.dqmBeamSpotProblemMonitor.monitorName = "BeamMonitorLegacy/BeamSpotProblemMonitor"
0268 process.dqmBeamSpotProblemMonitor.AlarmONThreshold = 15
0269 process.dqmBeamSpotProblemMonitor.AlarmOFFThreshold = 17
0270 process.dqmBeamSpotProblemMonitor.nCosmicTrk = 10
0271 process.dqmBeamSpotProblemMonitor.doTest = False
0272 process.dqmBeamSpotProblemMonitor.pixelTracks = 'pixelTracks'
0273
0274
0275 from DQMServices.Core.DQMQualityTester import DQMQualityTester
0276 process.qTester = DQMQualityTester(
0277 qtList = cms.untracked.FileInPath('DQM/BeamMonitor/test/BeamSpotAvailableTest.xml'),
0278 prescaleFactor = cms.untracked.int32(1),
0279 qtestOnEndLumi = cms.untracked.bool(True),
0280 testInEventloop = cms.untracked.bool(False),
0281 verboseQT = cms.untracked.bool(True)
0282 )
0283
0284
0285 process.BeamSpotProblemModule = cms.Sequence(process.qTester
0286 * process.dqmBeamSpotProblemMonitor)
0287
0288
0289 if ( process.runType.getRunType() == process.runType.cosmic_run or
0290 process.runType.getRunType() == process.runType.cosmic_run_stage1):
0291 process.dqmBeamSpotProblemMonitor.AlarmOFFThreshold = 5
0292
0293
0294
0295 from DQM.Integration.config.online_customizations_cfi import *
0296 process = customise(process)
0297
0298
0299 from EventFilter.OnlineMetaDataRawToDigi.tcdsRawToDigi_cfi import *
0300 process.tcdsDigis = tcdsRawToDigi.clone()
0301
0302
0303
0304 if (process.runType.getRunType() == process.runType.hi_run and live):
0305 rawDataInputTag = "rawDataRepacker"
0306 else:
0307 rawDataInputTag = "rawDataCollector"
0308
0309 process.castorDigis.InputLabel = rawDataInputTag
0310 process.csctfDigis.producer = rawDataInputTag
0311 process.dttfDigis.DTTF_FED_Source = rawDataInputTag
0312 process.ecalDigis.cpu.InputLabel = rawDataInputTag
0313 process.ecalPreshowerDigis.sourceTag = rawDataInputTag
0314 process.gctDigis.inputLabel = rawDataInputTag
0315 process.gtDigis.DaqGtInputTag = rawDataInputTag
0316 process.hcalDigis.InputLabel = rawDataInputTag
0317 process.muonCSCDigis.InputObjects = rawDataInputTag
0318 process.muonDTDigis.inputLabel = rawDataInputTag
0319 process.muonRPCDigis.InputLabel = rawDataInputTag
0320 process.scalersRawToDigi.scalersInputTag = rawDataInputTag
0321 process.siPixelDigis.cpu.InputLabel = rawDataInputTag
0322 process.siStripDigis.ProductLabel = rawDataInputTag
0323 process.tcdsDigis.InputLabel = rawDataInputTag
0324
0325 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cfi")
0326
0327 process.dqmBeamMonitor.OnlineMode = True
0328 process.dqmBeamMonitor.monitorName = "BeamMonitorLegacy"
0329 process.dqmBeamMonitor.recordName = BSOnlineRecordName
0330 process.dqmBeamMonitor.useLockRecords = useLockRecords
0331
0332 process.dqmBeamMonitor.resetEveryNLumi = 5
0333 process.dqmBeamMonitor.resetPVEveryNLumi = 5
0334
0335 process.dqmBeamMonitor.PVFitter.minNrVerticesForFit = 20
0336 process.dqmBeamMonitor.PVFitter.minVertexNdf = 10
0337 process.dqmBeamMonitor.PVFitter.errorScale = 1.2
0338
0339
0340
0341 process.load("RecoTracker.Configuration.RecoPixelVertexing_cff")
0342 from RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi import *
0343 process.pixelVertices = pixelVertices.clone(
0344 TkFilterParameters = dict( minPt = process.pixelTracksTrackingRegions.RegionPSet.ptMin)
0345 )
0346
0347 process.pixelTracksTrackingRegions.RegionPSet.originRadius = 0.4
0348
0349
0350
0351
0352
0353
0354 process.tracking_FirstStep = cms.Sequence(
0355 process.siPixelDigis
0356 * process.siStripDigis
0357 * process.striptrackerlocalreco
0358 * process.offlineBeamSpot
0359 * process.siPixelClustersPreSplitting
0360 * process.siPixelRecHitsPreSplitting
0361 * process.siPixelClusterShapeCachePreSplitting
0362 * process.recopixelvertexing)
0363
0364
0365
0366 process.dqmBeamMonitor.jetTrigger = [
0367 "HLT_PAZeroBias_v", "HLT_ZeroBias_v", "HLT_QuadJet",
0368 "HLT_ZeroBias_",
0369 "HLT_HI",
0370 "HLT_PixelClusters"]
0371
0372
0373 if (process.runType.getRunType() == process.runType.hi_run):
0374 import HLTrigger.special.hltPixelActivityFilter_cfi
0375 process.multFilter = HLTrigger.special.hltPixelActivityFilter_cfi.hltPixelActivityFilter.clone(
0376 inputTag = 'siPixelClustersPreSplitting',
0377 minClusters = 150,
0378 maxClusters = 50000
0379 )
0380
0381 process.filter_step = cms.Sequence( process.siPixelDigis
0382 * process.siPixelClustersPreSplitting
0383 * process.multFilter
0384 )
0385
0386 process.dqmBeamMonitor.hltResults = "TriggerResults::HLT"
0387
0388
0389
0390 if unitTest == False:
0391 process.OnlineDBOutputService = cms.Service("OnlineDBOutputService",
0392
0393 DBParameters = cms.PSet(
0394 messageLevel = cms.untracked.int32(0),
0395 authenticationPath = cms.untracked.string('.')
0396 ),
0397
0398
0399 connect = cms.string('oracle://cms_orcon_prod/CMS_CONDITIONS'),
0400 preLoadConnectionString = cms.untracked.string('frontier://FrontierProd/CMS_CONDITIONS'),
0401
0402 runNumber = cms.untracked.uint64(options.runNumber),
0403 omsServiceUrl = cms.untracked.string(BSOnlineOmsServiceUrl),
0404 latency = cms.untracked.uint32(2),
0405 autoCommit = cms.untracked.bool(True),
0406 saveLogsOnDB = cms.untracked.bool(True),
0407 jobName = cms.untracked.string(BSOnlineJobName),
0408 toPut = cms.VPSet(cms.PSet(
0409 record = cms.string(BSOnlineRecordName),
0410 tag = cms.string(BSOnlineTag),
0411 timetype = cms.untracked.string('Lumi'),
0412 onlyAppendUpdatePolicy = cms.untracked.bool(True)
0413 )),
0414 frontierKey = cms.untracked.string(options.runUniqueKey)
0415 )
0416
0417 else:
0418 process.OnlineDBOutputService = cms.Service("OnlineDBOutputService",
0419
0420 DBParameters = cms.PSet(
0421 messageLevel = cms.untracked.int32(0),
0422 authenticationPath = cms.untracked.string('.')
0423 ),
0424
0425
0426 connect = cms.string('sqlite_file:BeamSpotOnlineLegacy.db'),
0427 preLoadConnectionString = cms.untracked.string('sqlite_file:BeamSpotOnlineLegacy.db'),
0428 runNumber = cms.untracked.uint64(options.runNumber),
0429 lastLumiFile = cms.untracked.string('last_lumi.txt'),
0430 latency = cms.untracked.uint32(2),
0431 autoCommit = cms.untracked.bool(True),
0432 toPut = cms.VPSet(cms.PSet(
0433 record = cms.string(BSOnlineRecordName),
0434 tag = cms.string(BSOnlineTag),
0435 timetype = cms.untracked.string('Lumi'),
0436 onlyAppendUpdatePolicy = cms.untracked.bool(True)
0437 )),
0438 frontierKey = cms.untracked.string(options.runUniqueKey)
0439 )
0440 print("Configured frontierKey", options.runUniqueKey)
0441
0442
0443
0444
0445 process.pixelTrackerHVOn = cms.EDFilter( "DetectorStateFilter",
0446 DCSRecordLabel = cms.untracked.InputTag( "onlineMetaDataDigis" ),
0447 DcsStatusLabel = cms.untracked.InputTag( "scalersRawToDigi" ),
0448 DebugOn = cms.untracked.bool( False ),
0449 DetectorType = cms.untracked.string( "pixel" )
0450 )
0451
0452
0453
0454 if (not process.runType.getRunType() == process.runType.hi_run):
0455 process.p = cms.Path(process.scalersRawToDigi
0456 * process.tcdsDigis
0457 * process.onlineMetaDataDigis
0458 * process.pixelTrackerHVOn
0459 * process.dqmTKStatus
0460 * process.hltTriggerTypeFilter
0461 * process.dqmcommon
0462 * process.tracking_FirstStep
0463 * process.monitor
0464 * process.BeamSpotProblemModule)
0465 else:
0466 process.p = cms.Path(process.scalersRawToDigi
0467 * process.tcdsDigis
0468 * process.onlineMetaDataDigis
0469 * process.pixelTrackerHVOn
0470 * process.dqmTKStatus
0471 * process.hltTriggerTypeFilter
0472 * process.filter_step
0473 * process.dqmcommon
0474 * process.tracking_FirstStep
0475 * process.monitor
0476 * process.BeamSpotProblemModule)
0477
0478 print("Global Tag used:", process.GlobalTag.globaltag.value())
0479 print("Final Source settings:", process.source)
0480