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