Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:42:28

0001 from __future__ import print_function
0002 import FWCore.ParameterSet.Config as cms
0003 
0004 import sys
0005 if 'runkey=hi_run' in sys.argv:
0006   from Configuration.Eras.Era_Run3_pp_on_PbPb_approxSiStripClusters_cff import Run3_pp_on_PbPb_approxSiStripClusters
0007   process = cms.Process("SiStripMonitor", Run3_pp_on_PbPb_approxSiStripClusters)
0008 else:
0009   from Configuration.Eras.Era_Run3_cff import Run3
0010   process = cms.Process("SiStripMonitor", Run3)
0011 
0012 process.MessageLogger = cms.Service("MessageLogger",
0013     debugModules = cms.untracked.vstring('siStripDigis',
0014                                          'siStripClusters',
0015                                          'siStripZeroSuppression',
0016                                          'SiStripClusterizer'),
0017     cout = cms.untracked.PSet(threshold = cms.untracked.string('ERROR')),
0018     destinations = cms.untracked.vstring('cout')
0019 )
0020 
0021 live=True
0022 unitTest=False
0023 
0024 if 'unitTest=True' in sys.argv:
0025     live=False
0026     unitTest=True
0027 
0028 # uncomment for running on lxplus
0029 #live=False
0030 offlineTesting=not live
0031 #print "live: "+str(live)+" ==> offlineTesting: "+str(offlineTesting)
0032 
0033 #----------------------------
0034 # Event Source
0035 #-----------------------------
0036 # for live online DQM in P5
0037 if (unitTest):
0038     process.load("DQM.Integration.config.unittestinputsource_cfi")
0039     from DQM.Integration.config.unittestinputsource_cfi import options
0040 elif (live):
0041     process.load("DQM.Integration.config.inputsource_cfi")
0042     from DQM.Integration.config.inputsource_cfi import options
0043 # for testing in lxplus
0044 elif(offlineTesting):
0045     process.load("DQM.Integration.config.fileinputsource_cfi")
0046     from DQM.Integration.config.fileinputsource_cfi import options
0047 
0048 #----------------------------
0049 # DQM Live Environment
0050 #-----------------------------
0051 #from DQM.Integration.config.environment_cfi import HEAVYION
0052 
0053 #process.runType.setRunType('cosmic_run')
0054 #process.runType.setRunType('pp_run')
0055 
0056 process.load("DQM.Integration.config.environment_cfi")
0057 process.DQM.filter = '^(SiStrip|Tracking)(/[^/]+){0,5}$'
0058 
0059 process.dqmEnv.subSystemFolder    = "SiStrip"
0060 process.dqmSaver.tag = "SiStrip"
0061 process.dqmSaver.backupLumiCount = 30
0062 process.dqmSaver.runNumber = options.runNumber
0063 process.dqmSaverPB.tag = "SiStrip"
0064 process.dqmSaverPB.runNumber = options.runNumber
0065 
0066 from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
0067 process.dqmEnvTr = DQMEDAnalyzer('DQMEventInfo',
0068                  subSystemFolder = cms.untracked.string('Tracking'),
0069                  eventRateWindow = cms.untracked.double(0.5),
0070                  eventInfoFolder = cms.untracked.string('EventInfo')
0071 )
0072 
0073 
0074 #-----------------------------
0075 # Magnetic Field
0076 #-----------------------------
0077 process.load('Configuration.StandardSequences.MagneticField_cff')
0078 
0079 #-------------------------------------------------
0080 # GEOMETRY
0081 #-------------------------------------------------
0082 process.load("Configuration.StandardSequences.GeometryRecoDB_cff")
0083 
0084 #--------------------------
0085 # Calibration
0086 #--------------------------
0087 # Condition for P5 cluster
0088 if (live):
0089     process.load("DQM.Integration.config.FrontierCondition_GT_cfi")
0090 # Condition for lxplus: change and possibly customise the GT
0091 elif(offlineTesting):
0092     process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0093     from Configuration.AlCa.GlobalTag import GlobalTag as gtCustomise
0094     #you may need to set manually the GT in the line below
0095     process.GlobalTag = gtCustomise(process.GlobalTag, 'auto:run3_data', '')
0096 
0097 #--------------------------------------------
0098 ## Patch to avoid using Run Info information in reconstruction
0099 #
0100 
0101 process.siStripQualityESProducer.ListOfRecordToMerge = cms.VPSet(
0102    cms.PSet( record = cms.string("SiStripDetVOffRcd"),    tag    = cms.string("") ),
0103    cms.PSet( record = cms.string("SiStripDetCablingRcd"), tag    = cms.string("") ),
0104    cms.PSet( record = cms.string("SiStripBadChannelRcd"), tag    = cms.string("") ),
0105    cms.PSet( record = cms.string("SiStripBadFiberRcd"),   tag    = cms.string("") ),
0106    cms.PSet( record = cms.string("SiStripBadModuleRcd"),  tag    = cms.string("") )
0107    )
0108 #-------------------------------------------
0109 
0110 #-----------------------
0111 #  Reconstruction Modules
0112 #-----------------------
0113 ## Collision Reconstruction
0114 process.load("Configuration.StandardSequences.RawToDigi_Data_cff")
0115 
0116 ## Cosmic Track Reconstruction
0117 if (process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.cosmic_run_stage1):
0118     process.load("RecoTracker.Configuration.RecoTrackerP5_cff")
0119     process.load("Configuration.StandardSequences.ReconstructionCosmics_cff")
0120 else:
0121     process.load("Configuration.StandardSequences.Reconstruction_cff")
0122 
0123 import RecoVertex.BeamSpotProducer.onlineBeamSpotESProducer_cfi as _mod
0124 process.BeamSpotESProducer = _mod.onlineBeamSpotESProducer.clone()
0125 
0126 # for running offline enhance the time validity of the online beamspot in DB
0127 if ((not live) or process.isDqmPlayback.value): 
0128   process.BeamSpotESProducer.timeThreshold = cms.int32(int(1e6))
0129 
0130 import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi
0131 process.offlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone()
0132 
0133 #
0134 # Strip FED check
0135 #
0136 rawDataCollectorLabel = 'rawDataCollector'
0137 
0138 process.load("DQM.SiStripMonitorHardware.siStripFEDCheck_cfi")
0139 process.siStripFEDCheck.RawDataTag = rawDataCollectorLabel
0140 process.siStripFEDCheck.DirName    = 'SiStrip/FEDIntegrity_SM/'
0141 process.siStripFEDCheck.doPLOTfedsPresent       = False # already produced by fedtest
0142 process.siStripFEDCheck.doPLOTfedFatalErrors    = False # already produced by fedtest
0143 process.siStripFEDCheck.doPLOTfedNonFatalErrors = False # already produced by fedtest
0144 process.siStripFEDCheck.doPLOTnFEDinVsLS        = True
0145 process.siStripFEDCheck.doPLOTnFEDinWdataVsLS   = True
0146 
0147 #------------------------------
0148 # Strip and Tracking DQM Source
0149 #------------------------------
0150 process.load("DQM.SiStripMonitorClient.SiStripSourceConfigP5_cff")
0151 process.load("DQM.TrackingMonitorSource.TrackingSourceConfigP5_cff")
0152 process.TrackMon_gentk.doLumiAnalysis = False
0153 process.TrackMon_ckf.doLumiAnalysis = False
0154 process.TrackMon_hi.doLumiAnalysis = False
0155 process.TrackMon_ckf.AlgoName = 'CKFTk'
0156 
0157 #--------------------------
0158 # Quality Test
0159 #--------------------------
0160 from DQMServices.Core.DQMQualityTester import DQMQualityTester
0161 process.stripQTester = DQMQualityTester(
0162     qtList = cms.untracked.FileInPath('DQM/SiStripMonitorClient/data/sistrip_qualitytest_config.xml'),
0163     prescaleFactor = cms.untracked.int32(3),
0164     getQualityTestsFromFile = cms.untracked.bool(True),
0165     qtestOnEndLumi = cms.untracked.bool(True),
0166     qtestOnEndRun = cms.untracked.bool(True)
0167 )
0168 
0169 process.trackingQTester = DQMQualityTester(
0170     qtList = cms.untracked.FileInPath('DQM/TrackingMonitorClient/data/tracking_qualitytest_config.xml'),
0171     prescaleFactor = cms.untracked.int32(3),
0172     getQualityTestsFromFile = cms.untracked.bool(True),
0173     qtestOnEndLumi = cms.untracked.bool(True),
0174     qtestOnEndRun = cms.untracked.bool(True)
0175 )
0176 
0177 
0178 #--------------------------
0179 # Service
0180 #--------------------------
0181 process.AdaptorConfig = cms.Service("AdaptorConfig")
0182 
0183 # Simple filter for event
0184 process.eventFilter = cms.EDFilter("SimpleEventFilter",
0185 #                   EventsToSkip = cms.untracked.int32(3)
0186                    EventsToSkip = cms.untracked.int32(100)
0187 )
0188 
0189 #--------------------------
0190 # Producers
0191 #--------------------------
0192 # Event History Producer
0193 process.load("DPGAnalysis.SiStripTools.eventwithhistoryproducerfroml1abc_cfi")
0194 
0195 # APV Phase Producer
0196 process.load("DPGAnalysis.SiStripTools.apvcyclephaseproducerfroml1tsDB_cfi")
0197 
0198 #--------------------------
0199 # Filters
0200 #--------------------------
0201 # HLT Filter
0202 # 0=random, 1=physics, 2=calibration, 3=technical
0203 process.hltTriggerTypeFilter = cms.EDFilter("HLTTriggerTypeFilter",
0204     SelectedTriggerType = cms.int32(1)
0205 )
0206 
0207 # L1 Trigger Bit Selection (bit 40 and 41 for BSC trigger)
0208 process.load('L1TriggerConfig.L1GtConfigProducers.L1GtTriggerMaskTechTrigConfig_cff')
0209 process.load('HLTrigger/HLTfilters/hltLevel1GTSeed_cfi')
0210 process.hltLevel1GTSeed.L1TechTriggerSeeding = True
0211 process.hltLevel1GTSeed.L1SeedsLogicalExpression = 'NOT (36 OR 37 OR 38 OR 39)'
0212 
0213 # HLT trigger selection (HLT_ZeroBias)
0214 # modified for 0 Tesla HLT menu (no ZeroBias_*)
0215 process.load('HLTrigger.HLTfilters.hltHighLevel_cfi')
0216 if (process.runType.getRunType() == process.runType.hi_run):
0217     #--------------------------
0218     # HI Runs HLT path
0219     #--------------------------
0220     process.hltHighLevel.HLTPaths = ['HLT_ZeroBias_*' , 'HLT_HIZeroBias*' , 'HLT_ZeroBias1_*' , 'HLT_PAZeroBias_*' , 'HLT_PAZeroBias1_*', 'HLT_PAL1MinimumBiasHF_OR_SinglePixelTrack_*' , 'HLT_HICentralityVeto*','HLT_HIMinimumBias*', 'HLT_HIPhysics*']
0221 else:
0222     process.hltHighLevel.HLTPaths = ['HLT_ZeroBias_*' , 'HLT_ZeroBias1_*' , 'HLT_PAZeroBias_*' , 'HLT_PAZeroBias1_*', 'HLT_PAL1MinimumBiasHF_OR_SinglePixelTrack_*']
0223 process.hltHighLevel.andOr = True
0224 process.hltHighLevel.throw =  False
0225 
0226 #--------------------------
0227 # Scheduling
0228 #--------------------------
0229 process.SiStripSources_LocalReco = cms.Sequence(process.siStripFEDMonitor*process.SiStripMonitorDigi*process.SiStripMonitorClusterReal)
0230 if (process.runType.getRunType() == process.runType.commissioning_run):
0231     process.DQMCommon                = cms.Sequence(process.dqmEnv*process.dqmEnvTr*process.dqmSaver*process.dqmSaverPB)
0232 else:
0233     process.DQMCommon                = cms.Sequence(process.stripQTester*process.trackingQTester*process.dqmEnv*process.dqmEnvTr*process.dqmSaver*process.dqmSaverPB)
0234 if (process.runType.getRunType() == process.runType.hi_run):
0235     process.RecoForDQM_LocalReco     = cms.Sequence(process.siPixelDigis*process.siStripDigis*process.trackerlocalreco)
0236 else :
0237     process.RecoForDQM_LocalReco     = cms.Sequence(process.siPixelDigis*process.siStripDigis*process.gtDigis*process.trackerlocalreco)
0238 #------------------------------------------------------
0239 # Switch for channel errors per FED ID trend plots.
0240 #------------------------------------------------------
0241 process.siStripFEDMonitor.fedErrorsVsIdVsLumiHistogramConfig.globalswitchon = True
0242 
0243 #--------------------------
0244 # Global Plot Switches
0245 #--------------------------
0246 process.SiStripMonitorDigi.TotalNumberOfDigisFailure.subdetswitchon = False
0247 
0248 ### COSMIC RUN SETTING
0249 if (process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.cosmic_run_stage1):
0250     # event selection for cosmic data
0251     if ((process.runType.getRunType() == process.runType.cosmic_run) and live): process.source.SelectEvents = ['HLT*SingleMu*','HLT_L1*']
0252     # Reference run for cosmic
0253     # Source config for cosmic data
0254     process.SiStripSources_TrkReco_cosmic = cms.Sequence(process.SiStripMonitorTrack_ckf*process.TrackMon_ckf)
0255     # Client config for cosmic data
0256     ### STRIP
0257     process.load("DQM.SiStripMonitorClient.SiStripClientConfigP5_Cosmic_cff")
0258     process.SiStripAnalyserCosmic.RawDataTag = rawDataCollectorLabel
0259     process.SiStripAnalyserCosmic.TkMapCreationFrequency  = -1
0260     process.SiStripAnalyserCosmic.ShiftReportFrequency = -1
0261     process.SiStripAnalyserCosmic.StaticUpdateFrequency = 5
0262     process.SiStripAnalyserCosmic.MonitorSiStrip_PSet.MonitorSiStripBackPlaneCorrection = False
0263     process.SiStripClients           = cms.Sequence(process.SiStripAnalyserCosmic)
0264     ### TRACKING
0265     process.load("DQM.TrackingMonitorClient.TrackingClientConfigP5_Cosmic_cff")
0266     process.TrackingAnalyserCosmic.RawDataTag           = rawDataCollectorLabel
0267     process.TrackingAnalyserCosmic.ShiftReportFrequency = -1
0268     process.TrackingAnalyserCosmic.StaticUpdateFrequency = 5
0269     process.TrackingClient = cms.Sequence( process.TrackingAnalyserCosmic )
0270 
0271     # Reco for cosmic data
0272     process.load('RecoTracker.SpecialSeedGenerators.SimpleCosmicBONSeeder_cfi')
0273     process.simpleCosmicBONSeeds.ClusterCheckPSet.MaxNumberOfStripClusters = 450
0274     process.combinatorialcosmicseedfinderP5.MaxNumberOfStripClusters = 450
0275 
0276     process.RecoForDQM_TrkReco_cosmic = cms.Sequence(process.offlineBeamSpot*process.MeasurementTrackerEvent*process.ctftracksP5)
0277 
0278     process.stripQTester.qtList = cms.untracked.FileInPath('DQM/SiStripMonitorClient/data/sistrip_qualitytest_config_cosmic.xml')
0279     process.stripQTester.prescaleFactor          = 2
0280     process.stripQTester.getQualityTestsFromFile = True
0281     process.stripQTester.qtestOnEndLumi          = True
0282     process.stripQTester.qtestOnEndRun           = True
0283 
0284     process.trackingQTester.qtList                  = 'DQM/TrackingMonitorClient/data/tracking_qualitytest_config_cosmic.xml'
0285     process.trackingQTester.prescaleFactor          = 1
0286     process.trackingQTester.getQualityTestsFromFile = True
0287     process.trackingQTester.qtestOnEndLumi          = True
0288     process.trackingQTester.qtestOnEndRun           = True
0289 
0290     process.p = cms.Path(process.scalersRawToDigi*
0291                          process.tcdsDigis*
0292                          process.onlineMetaDataDigis*
0293                          process.APVPhases*
0294                          process.consecutiveHEs*
0295                          process.hltTriggerTypeFilter*
0296                          process.siStripFEDCheck *
0297                          process.RecoForDQM_LocalReco*
0298                          process.DQMCommon*
0299                          process.SiStripClients*
0300                          process.SiStripSources_LocalReco*
0301                          process.RecoForDQM_TrkReco_cosmic*
0302                          process.SiStripSources_TrkReco_cosmic*
0303                          process.TrackingClient
0304                          )
0305 
0306 
0307 ### COMMISSIONING RUN SETTINGS
0308 if (process.runType.getRunType() == process.runType.commissioning_run):
0309     #event selection for commissioning runs
0310     if ((process.runType.getRunType() == process.runType.commissioning_run) and live):
0311         process.source.SelectEvents = ['HLT_*']
0312 
0313     process.SiStripFedMonitor = cms.Sequence(process.siStripFEDMonitor)
0314     process.p = cms.Path(
0315         process.siStripFEDCheck *
0316         process.SiStripFedMonitor *
0317         process.DQMCommon
0318     )
0319 
0320 #else :
0321 ### pp COLLISION SETTING
0322 if (process.runType.getRunType() == process.runType.pp_run or process.runType.getRunType() == process.runType.pp_run_stage1):
0323     #event selection for pp collisions
0324     if ((process.runType.getRunType() == process.runType.pp_run) and live):
0325         process.source.SelectEvents = [
0326             'HLT_L1*',
0327             'HLT_Jet*',
0328             'HLT_Physics*',
0329             'HLT_ZeroBias*',
0330             'HLT_PAL1*',
0331             'HLT_PAZeroBias*',
0332             'HLT_PAAK*'
0333             ]
0334 
0335     # Source and Client config for pp collisions
0336 
0337     process.SiStripMonitorDigi.UseDCSFiltering = False
0338     process.SiStripMonitorClusterReal.UseDCSFiltering = False
0339 
0340     process.MonitorTrackResiduals_gentk.Tracks                 = 'initialStepTracksPreSplitting'
0341     process.MonitorTrackResiduals_gentk.trajectoryInput        = 'initialStepTracksPreSplitting'
0342     process.TrackMon_gentk.TrackProducer    = 'initialStepTracksPreSplitting'
0343     process.TrackMon_gentk.allTrackProducer = 'initialStepTracksPreSplitting'
0344     process.SiStripMonitorTrack_gentk.TrackProducer = 'initialStepTracksPreSplitting'
0345 
0346     process.SiStripSources_TrkReco   = cms.Sequence(process.SiStripMonitorTrack_gentk*process.MonitorTrackResiduals_gentk*process.TrackMon_gentk)
0347 
0348     ### STRIP
0349     process.load("DQM.SiStripMonitorClient.SiStripClientConfigP5_cff")
0350     process.SiStripAnalyser.TkMapCreationFrequency  = -1
0351     process.SiStripAnalyser.ShiftReportFrequency = -1
0352     process.SiStripAnalyser.StaticUpdateFrequency = 5
0353     process.SiStripAnalyser.RawDataTag = rawDataCollectorLabel
0354     process.SiStripAnalyser.MonitorSiStrip_PSet.MonitorSiStripBackPlaneCorrection = False
0355     process.SiStripClients           = cms.Sequence(process.SiStripAnalyser)
0356 
0357     process.SiStripMonitorDigi.TotalNumberOfDigisFailure.integrateNLumisections = 25
0358     ### TRACKING
0359     process.load("DQM.TrackingMonitorClient.TrackingClientConfigP5_cff")
0360     process.TrackingAnalyser.ShiftReportFrequency = -1
0361     process.TrackingAnalyser.StaticUpdateFrequency = 5
0362     process.TrackingAnalyser.RawDataTag = rawDataCollectorLabel
0363     if offlineTesting :
0364         process.TrackingAnalyser.verbose = True
0365     process.TrackingClient = cms.Sequence( process.TrackingAnalyser )
0366 
0367     process.trackingQTester.qtList                  = 'DQM/TrackingMonitorClient/data/tracking_qualitytest_config.xml'
0368     process.trackingQTester.prescaleFactor          = 1
0369     process.trackingQTester.getQualityTestsFromFile = True
0370     process.trackingQTester.qtestOnEndLumi          = True
0371     process.trackingQTester.qtestOnEndRun           = True
0372 
0373     # Reco for pp collisions
0374 
0375     process.load('RecoTracker.IterativeTracking.InitialStepPreSplitting_cff')
0376     '''process.InitialStepPreSplitting.remove(process.initialStepTrackRefsForJetsPreSplitting)
0377     process.InitialStepPreSplitting.remove(process.caloTowerForTrkPreSplitting)
0378     process.InitialStepPreSplitting.remove(process.ak4CaloJetsForTrkPreSplitting)
0379     process.InitialStepPreSplitting.remove(process.jetsForCoreTrackingPreSplitting)
0380     process.InitialStepPreSplitting.remove(process.siPixelClusters)
0381     process.InitialStepPreSplitting.remove(process.siPixelRecHits)
0382     process.InitialStepPreSplitting.remove(process.MeasurementTrackerEvent)
0383     process.InitialStepPreSplitting.remove(process.siPixelClusterShapeCache)'''
0384 
0385     process.InitialStepPreSplittingTask.remove(process.initialStepTrackRefsForJetsPreSplitting)
0386     process.InitialStepPreSplittingTask.remove(process.caloTowerForTrkPreSplitting)
0387     process.InitialStepPreSplittingTask.remove(process.ak4CaloJetsForTrkPreSplitting)
0388     process.InitialStepPreSplittingTask.remove(process.jetsForCoreTrackingPreSplitting)
0389     process.InitialStepPreSplittingTask.remove(process.siPixelClusters)
0390     process.InitialStepPreSplittingTask.remove(process.siPixelRecHits)
0391     process.InitialStepPreSplittingTask.remove(process.MeasurementTrackerEvent)
0392 
0393     # Redefinition of siPixelClusters: has to be after RecoTracker.IterativeTracking.InitialStepPreSplitting_cff
0394     process.load("RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi")
0395 
0396     from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import *
0397     process.PixelLayerTriplets.BPix.HitProducer = cms.string('siPixelRecHitsPreSplitting')
0398     process.PixelLayerTriplets.FPix.HitProducer = cms.string('siPixelRecHitsPreSplitting')
0399     from RecoTracker.PixelTrackFitting.PixelTracks_cff import *
0400     process.pixelTracksHitTriplets.SeedComparitorPSet.clusterShapeCacheSrc = 'siPixelClusterShapeCachePreSplitting'
0401 
0402     process.RecoForDQM_TrkReco = cms.Sequence(process.offlineBeamSpot*process.MeasurementTrackerEventPreSplitting*process.siPixelClusterShapeCachePreSplitting*process.recopixelvertexing*process.InitialStepPreSplitting)
0403 
0404     process.p = cms.Path(
0405         process.scalersRawToDigi*
0406         process.tcdsDigis*
0407         process.onlineMetaDataDigis*
0408         process.APVPhases*
0409         process.consecutiveHEs*
0410         process.hltTriggerTypeFilter*
0411         process.siStripFEDCheck *
0412         process.RecoForDQM_LocalReco*
0413         process.siPixelClusters*
0414         process.DQMCommon*
0415         process.SiStripClients*
0416         process.SiStripSources_LocalReco*
0417         ##### TRIGGER SELECTION #####
0418         process.hltHighLevel*
0419         process.RecoForDQM_TrkReco*
0420         process.SiStripSources_TrkReco*
0421         process.TrackingClient
0422         )
0423 
0424 #--------------------------------------------------
0425 # For high PU run - no tracking in cmssw42x
0426 #--------------------------------------------------
0427 if (process.runType.getRunType() == process.runType.hpu_run):
0428 
0429     # Simple filter for event
0430     # 2012.07.09 highPU fill should have /cdaq/special/HighPUFill/July2012/HLT/V6 as trigger table
0431     # where HLT_ZeroBias in the DQM stream has ~50Hz
0432     # the expected reconstruction time should be ~ several seconds
0433     # => PRESCALE = 50
0434     # but try firstly w/ 30, maybe it is enough
0435     process.eventFilter.EventsToSkip = 30
0436 
0437     # change the HLT trigger path selection
0438     # it should already be ok, but the name could be changed
0439     process.hltHighLevel.HLTPaths = ['HLT_ZeroBias*'] 
0440 
0441  #        process.DQMEventStreamerReader.SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring('HLT_600Tower*','HLT_L1*','HLT_Jet*','HLT_HT*','HLT_MinBias_*','HLT_Physics*', 'HLT_ZeroBias*'))
0442 #
0443 
0444     process.SiStripMonitorDigi.UseDCSFiltering = False
0445     process.SiStripMonitorClusterReal.UseDCSFiltering = False
0446 
0447     process.MonitorTrackResiduals_gentk.Tracks                 = 'earlyGeneralTracks'
0448     process.MonitorTrackResiduals_gentk.trajectoryInput        = 'earlyGeneralTracks'
0449     process.TrackMon_gentk.TrackProducer          = "earlyGeneralTracks"
0450     process.TrackMon_gentk.allTrackProducer = "earlyGeneralTracks"
0451     process.SiStripMonitorTrack_gentk.TrackProducer    = 'earlyGeneralTracks'
0452 
0453     process.SiStripSources_TrkReco   = cms.Sequence(process.SiStripMonitorTrack_gentk*process.MonitorTrackResiduals_gentk*process.TrackMon_gentk)
0454     process.load("DQM.SiStripMonitorClient.SiStripClientConfigP5_cff")
0455     process.SiStripAnalyser.TkMapCreationFrequency  = -1
0456     process.SiStripAnalyser.ShiftReportFrequency = -1
0457     process.SiStripAnalyser.StaticUpdateFrequency = 5
0458     process.SiStripAnalyser.RawDataTag = rawDataCollectorLabel
0459     process.SiStripAnalyser.MonitorSiStrip_PSet.MonitorSiStripBackPlaneCorrection = False
0460     process.SiStripClients           = cms.Sequence(process.SiStripAnalyser)
0461     ### TRACKING
0462     process.load("DQM.TrackingMonitorClient.TrackingClientConfigP5_cff")
0463     process.TrackingAnalyser.ShiftReportFrequency = -1
0464     process.TrackingAnalyser.StaticUpdateFrequency = 5
0465     process.TrackingAnalyser.RawDataTag = cms.untracked.InputTag(rawDataCollectorLabel)
0466     process.TrackingClient = cms.Sequence( process.TrackingAnalyser )
0467 
0468     # Reco for pp collisions
0469 
0470     process.load('RecoTracker.Configuration.RecoTracker_cff')
0471 
0472     #process.newCombinedSeeds.seedCollections = cms.VInputTag(
0473     #    cms.InputTag('initialStepSeeds'),
0474     #    )
0475 
0476     process.load('RecoTracker.FinalTrackSelectors.MergeTrackCollections_cff')
0477     import RecoTracker.FinalTrackSelectors.earlyGeneralTracks_cfi
0478     process.load('RecoTracker.FinalTrackSelectors.earlyGeneralTracks_cfi')
0479     process.earlyGeneralTracks.TrackProducers = (
0480         cms.InputTag('initialStepTracks'),
0481         )
0482 
0483     process.earlyGeneralTracks.hasSelector=cms.vint32(1)
0484     process.earlyGeneralTracks.selectedTrackQuals = cms.VInputTag(
0485 #        cms.InputTag("initialStepSelector","initialStep"),
0486         cms.InputTag("initialStep"),
0487         )
0488     process.earlyGeneralTracks.setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(0), pQual=cms.bool(True) ) )
0489 
0490     process.load("RecoTracker.IterativeTracking.iterativeTk_cff")
0491 
0492     process.iterTracking_FirstStep =cms.Sequence(
0493         process.InitialStep
0494         *process.earlyGeneralTracks
0495         )
0496 
0497     process.RecoForDQM_TrkReco       = cms.Sequence(process.offlineBeamSpot*process.MeasurementTrackerEvent*process.siPixelClusterShapeCache*process.recopixelvertexing*process.iterTracking_FirstStep)
0498 
0499     process.p = cms.Path(process.scalersRawToDigi*
0500                          process.tcdsDigis*
0501                          process.onlineMetaDataDigis*
0502                          process.APVPhases*
0503                          process.consecutiveHEs*
0504                          process.hltTriggerTypeFilter*
0505                          process.siStripFEDCheck *
0506                          process.RecoForDQM_LocalReco*
0507                          process.DQMCommon*
0508                          process.SiStripClients*
0509                          process.SiStripSources_LocalReco*
0510                          process.hltHighLevel*
0511                          process.eventFilter*
0512                          process.RecoForDQM_TrkReco*
0513                          process.SiStripSources_TrkReco*
0514                          process.TrackingClient
0515                          )
0516 
0517 process.castorDigis.InputLabel = rawDataCollectorLabel
0518 process.csctfDigis.producer = rawDataCollectorLabel
0519 process.dttfDigis.DTTF_FED_Source = rawDataCollectorLabel
0520 process.ecalDigis.cpu.InputLabel = rawDataCollectorLabel
0521 process.ecalPreshowerDigis.sourceTag = rawDataCollectorLabel
0522 process.gctDigis.inputLabel = rawDataCollectorLabel
0523 process.gtDigis.DaqGtInputTag = rawDataCollectorLabel
0524 process.hcalDigis.InputLabel = rawDataCollectorLabel
0525 process.muonCSCDigis.InputObjects = rawDataCollectorLabel
0526 process.muonDTDigis.inputLabel = rawDataCollectorLabel
0527 process.muonRPCDigis.InputLabel = rawDataCollectorLabel
0528 process.scalersRawToDigi.scalersInputTag = rawDataCollectorLabel
0529 process.siPixelDigis.cpu.InputLabel = rawDataCollectorLabel
0530 process.siStripDigis.ProductLabel = rawDataCollectorLabel
0531 process.siStripFEDMonitor.RawDataTag = rawDataCollectorLabel
0532 #--------------------------------------------------
0533 # Heavy Ion Specific Fed Raw Data Collection Label
0534 #--------------------------------------------------
0535 
0536 print("Running with run type = ", process.runType.getRunType())
0537 
0538 ### HEAVY ION SETTING
0539 if process.runType.getRunType() == process.runType.hi_run:
0540     rawDataRepackerLabel = 'rawDataRepacker'
0541     process.castorDigis.InputLabel = rawDataRepackerLabel
0542     process.csctfDigis.producer = rawDataRepackerLabel
0543     process.dttfDigis.DTTF_FED_Source = rawDataRepackerLabel
0544     process.ecalDigis.cpu.InputLabel = rawDataRepackerLabel
0545     process.ecalPreshowerDigis.sourceTag = rawDataRepackerLabel
0546     process.gctDigis.inputLabel = rawDataRepackerLabel
0547     process.hcalDigis.InputLabel = rawDataRepackerLabel
0548     process.muonCSCDigis.InputObjects = rawDataRepackerLabel
0549     process.muonDTDigis.inputLabel = rawDataRepackerLabel
0550     process.muonRPCDigis.InputLabel = rawDataRepackerLabel
0551     process.scalersRawToDigi.scalersInputTag = rawDataRepackerLabel
0552     process.siPixelDigis.cpu.InputLabel = rawDataRepackerLabel
0553     process.siStripDigis.ProductLabel = rawDataRepackerLabel
0554     process.siStripFEDMonitor.RawDataTag = rawDataRepackerLabel
0555 
0556     if ((process.runType.getRunType() == process.runType.hi_run) and live):
0557         process.source.SelectEvents = [
0558 #            'HLT_HICentralityVeto*', # present in 2018 and 2022 HIon menus
0559             'HLT_HIMinimumBias*',     # replaced HLT_HICentralityVeto starting from the 2023 HIon menu
0560 #            'HLT_HIZeroBias*',       # present in DQM stream of HIon menu, but not used in this client
0561             'HLT_HIPhysics*'
0562         ]
0563 
0564     process.SiStripMonitorDigi.UseDCSFiltering = False
0565     process.SiStripMonitorClusterReal.UseDCSFiltering = False
0566 
0567     process.MonitorTrackResiduals_gentk.Tracks          = 'initialStepTracksPreSplitting'
0568     process.MonitorTrackResiduals_gentk.trajectoryInput = 'initialStepTracksPreSplitting'
0569     process.TrackMon_gentk.TrackProducer                = 'initialStepTracksPreSplitting'
0570     process.TrackMon_gentk.allTrackProducer             = 'initialStepTracksPreSplitting'
0571     process.SiStripMonitorTrack_gentk.TrackProducer     = 'initialStepTracksPreSplitting'
0572 
0573     process.SiStripSources_TrkReco = cms.Sequence(
0574         process.SiStripMonitorTrack_gentk
0575       * process.MonitorTrackResiduals_gentk
0576       * process.TrackMon_gentk
0577     )
0578 
0579     ### STRIP
0580     process.load("DQM.SiStripMonitorClient.SiStripClientConfigP5_cff")
0581     process.SiStripAnalyser.TkMapCreationFrequency  = -1
0582     process.SiStripAnalyser.ShiftReportFrequency = -1
0583     process.SiStripAnalyser.StaticUpdateFrequency = 5
0584     process.SiStripAnalyser.RawDataTag = rawDataRepackerLabel
0585     process.SiStripAnalyser.MonitorSiStrip_PSet.MonitorSiStripBackPlaneCorrection = False
0586     process.SiStripClients           = cms.Sequence(process.SiStripAnalyser)
0587 
0588     process.SiStripMonitorDigi.TotalNumberOfDigisFailure.integrateNLumisections = 25
0589     ### TRACKING
0590     process.load("DQM.TrackingMonitorClient.TrackingClientConfigP5_cff")
0591     process.TrackingAnalyser.ShiftReportFrequency = -1
0592     process.TrackingAnalyser.StaticUpdateFrequency = 5
0593     process.TrackingAnalyser.RawDataTag = rawDataRepackerLabel
0594     if offlineTesting:
0595         process.TrackingAnalyser.verbose = True
0596     process.TrackingClient = cms.Sequence( process.TrackingAnalyser )
0597 
0598     process.stripQTester.qtList = 'DQM/SiStripMonitorClient/data/sistrip_qualitytest_config_heavyion.xml'
0599     process.stripQTester.prescaleFactor          = 2
0600     process.stripQTester.getQualityTestsFromFile = True
0601     process.stripQTester.qtestOnEndLumi          = True
0602     process.stripQTester.qtestOnEndRun           = True
0603 
0604     process.trackingQTester.qtList                  = 'DQM/TrackingMonitorClient/data/tracking_qualitytest_config_heavyion.xml'
0605     process.trackingQTester.prescaleFactor          = 1
0606     process.trackingQTester.getQualityTestsFromFile = True
0607     process.trackingQTester.qtestOnEndLumi          = True
0608     process.trackingQTester.qtestOnEndRun           = True
0609 
0610     # Reco for pp collisions
0611 
0612     process.load('RecoTracker.IterativeTracking.InitialStepPreSplitting_cff')
0613 #    process.InitialStepPreSplitting.remove(process.initialStepTrackRefsForJetsPreSplitting)
0614 #    process.InitialStepPreSplitting.remove(process.caloTowerForTrkPreSplitting)
0615 #    process.InitialStepPreSplitting.remove(process.ak4CaloJetsForTrkPreSplitting)
0616 #    process.InitialStepPreSplitting.remove(process.jetsForCoreTrackingPreSplitting)
0617 #    process.InitialStepPreSplitting.remove(process.siPixelClusters)
0618 #    process.InitialStepPreSplitting.remove(process.siPixelRecHits)
0619 #    process.InitialStepPreSplitting.remove(process.MeasurementTrackerEvent)
0620 #    process.InitialStepPreSplitting.remove(process.siPixelClusterShapeCache)
0621 
0622     process.InitialStepPreSplittingTask.remove(process.initialStepTrackRefsForJetsPreSplitting)
0623     process.InitialStepPreSplittingTask.remove(process.caloTowerForTrkPreSplitting)
0624     process.InitialStepPreSplittingTask.remove(process.ak4CaloJetsForTrkPreSplitting)
0625     process.InitialStepPreSplittingTask.remove(process.jetsForCoreTrackingPreSplitting)
0626     process.InitialStepPreSplittingTask.remove(process.siPixelClusters)
0627     process.InitialStepPreSplittingTask.remove(process.siPixelRecHits)
0628     process.InitialStepPreSplittingTask.remove(process.MeasurementTrackerEvent)
0629 
0630     # Redefinition of siPixelClusters: has to be after RecoTracker.IterativeTracking.InitialStepPreSplitting_cff
0631     process.load("RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi")
0632 
0633     # Select events based on the pixel cluster multiplicity
0634     import  HLTrigger.special.hltPixelActivityFilter_cfi
0635     process.multFilter = HLTrigger.special.hltPixelActivityFilter_cfi.hltPixelActivityFilter.clone(
0636         inputTag = 'siPixelClusters',
0637         minClusters = 1,
0638         maxClusters = 50000
0639     )
0640 
0641     # BaselineValidator Module
0642     from EventFilter.SiStripRawToDigi.SiStripDigis_cfi import siStripDigis as _siStripDigis
0643     process.siStripDigisNoZS = _siStripDigis.clone( ProductLabel = rawDataCollectorLabel )
0644     process.SiStripBaselineValidator.srcProcessedRawDigi = 'siStripDigisNoZS:ZeroSuppressed'
0645 
0646     from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import *
0647     process.PixelLayerTriplets.BPix.HitProducer = 'siPixelRecHitsPreSplitting'
0648     process.PixelLayerTriplets.FPix.HitProducer = 'siPixelRecHitsPreSplitting'
0649     from RecoTracker.PixelTrackFitting.PixelTracks_cff import *
0650     process.pixelTracksHitTriplets.SeedComparitorPSet.clusterShapeCacheSrc = 'siPixelClusterShapeCachePreSplitting'
0651 
0652     process.RecoForDQM_TrkReco = cms.Sequence(
0653         process.offlineBeamSpot
0654       * process.MeasurementTrackerEventPreSplitting
0655       * process.siPixelClusterShapeCachePreSplitting
0656       * process.recopixelvertexing
0657       * process.InitialStepPreSplitting
0658     )
0659 
0660     process.p = cms.Path(
0661         process.scalersRawToDigi*
0662         process.tcdsDigis*
0663         process.onlineMetaDataDigis*
0664         process.APVPhases*
0665         process.consecutiveHEs*
0666         process.hltTriggerTypeFilter*
0667         process.siStripFEDCheck *
0668         process.siStripDigisNoZS*
0669         process.SiStripBaselineValidator*
0670         process.RecoForDQM_LocalReco*
0671         process.siPixelClusters*
0672         process.DQMCommon*
0673         process.SiStripClients*
0674         process.SiStripSources_LocalReco*
0675         process.multFilter*
0676         ##### TRIGGER SELECTION #####
0677         process.hltHighLevel*
0678         process.RecoForDQM_TrkReco*
0679         process.SiStripSources_TrkReco*
0680         process.TrackingClient
0681     )
0682 
0683     # append the approximate clusters monitoring for the HI run case
0684     from DQM.SiStripMonitorApproximateCluster.SiStripMonitorApproximateCluster_cfi import SiStripMonitorApproximateCluster
0685     process.siStripApproximateClusterComparator = SiStripMonitorApproximateCluster.clone(
0686         folder = "SiStrip/ApproximateClusterValidation",
0687         compareClusters = True,
0688         ClustersProducer = "hltSiStripClusterizerForRawPrime"
0689     )
0690     process.p.insert(process.p.index(process.TrackingClient)+1,process.siStripApproximateClusterComparator)
0691 
0692 ### process customizations included here
0693 from DQM.Integration.config.online_customizations_cfi import *
0694 process = customise(process)
0695 print("Final Source settings:", process.source)