Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-04-14 23:40:55

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 import sys
0004 if 'runkey=hi_run' in sys.argv:
0005   from Configuration.Eras.Era_Run3_pp_on_PbPb_approxSiStripClusters_cff import Run3_pp_on_PbPb_approxSiStripClusters
0006   process = cms.Process("PIXELDQMLIVE", Run3_pp_on_PbPb_approxSiStripClusters)
0007 else:
0008   from Configuration.Eras.Era_Run3_2025_cff import Run3_2025
0009   process = cms.Process("PIXELDQMLIVE", Run3_2025)
0010 
0011 live=True
0012 unitTest = False
0013 
0014 if 'unitTest=True' in sys.argv:
0015     live=False
0016     unitTest=True
0017 
0018 #set to false for lxplus offline testing
0019 #live=False
0020 offlineTesting=not live
0021 
0022 TAG ="PixelPhase1" 
0023 
0024 process.load('FWCore.MessageService.MessageLogger_cfi')
0025 process.MessageLogger.debugModules = cms.untracked.vstring('siPixelDigis',
0026                                                            'siStripClusters', 
0027                                                            'SiPixelRawDataErrorSource', 
0028                                                            'SiPixelDigiSource')
0029 process.MessageLogger.cout = cms.untracked.PSet(threshold = cms.untracked.string('ERROR'))
0030 
0031 #----------------------------
0032 # Event Source
0033 #-----------------------------
0034 # for live online DQM in P5
0035 
0036 if (unitTest):
0037     process.load("DQM.Integration.config.unittestinputsource_cfi")
0038     from DQM.Integration.config.unittestinputsource_cfi import options
0039 
0040 elif (live):
0041     process.load("DQM.Integration.config.inputsource_cfi")
0042     from DQM.Integration.config.inputsource_cfi import options
0043 
0044 # for testing in lxplus
0045 elif(offlineTesting):
0046     process.load("DQM.Integration.config.fileinputsource_cfi")
0047     from DQM.Integration.config.fileinputsource_cfi import options
0048 
0049 #-----------------------------
0050 # DQM Environment
0051 #-----------------------------
0052 
0053 process.load("DQMServices.Components.DQMEnvironment_cfi")
0054 
0055 process.load("DQM.Integration.config.environment_cfi")
0056 
0057 #----------------------------
0058 # DQM Live Environment
0059 #-----------------------------
0060 
0061 process.dqmEnv.subSystemFolder = TAG
0062 process.dqmSaver.tag = TAG
0063 process.dqmSaver.runNumber = options.runNumber
0064 # process.dqmSaverPB.tag = TAG
0065 # process.dqmSaverPB.runNumber = options.runNumber
0066 
0067 
0068 #-----------------------------
0069 # Magnetic Field
0070 #-----------------------------
0071 
0072 process.load('Configuration.StandardSequences.MagneticField_cff')
0073 
0074 #-------------------------------------------------
0075 # GEOMETRY
0076 #-------------------------------------------------
0077 
0078 process.load("Configuration.StandardSequences.GeometryRecoDB_cff")
0079 
0080 #-------------------------------------------------
0081 # GLOBALTAG
0082 #-------------------------------------------------
0083 # Condition for P5 cluster
0084 
0085 if (live):
0086     process.load("DQM.Integration.config.FrontierCondition_GT_cfi")
0087 
0088 # Condition for lxplus: change and possibly customise the GT
0089 elif(offlineTesting):
0090     process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0091     from Configuration.AlCa.GlobalTag import GlobalTag as gtCustomise
0092     process.GlobalTag = gtCustomise(process.GlobalTag, 'auto:hltonline', '')
0093 
0094 #-----------------------
0095 #  Reconstruction Modules
0096 #-----------------------
0097 
0098 # Real data raw to digi
0099 process.load("Configuration.StandardSequences.RawToDigi_Data_cff")
0100 process.load("RecoLocalTracker.SiStripZeroSuppression.SiStripZeroSuppression_cfi")
0101 process.load("RecoLocalTracker.SiStripClusterizer.SiStripClusterizer_RealData_cfi")
0102 
0103 process.load("DPGAnalysis.SiStripTools.eventwithhistoryproducerfroml1abc_cfi")
0104 process.load("DPGAnalysis.SiStripTools.apvcyclephaseproducerfroml1tsDB_cfi")
0105 
0106 # PixelPhase1 Real data raw to digi
0107 process.load("EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi")
0108 process.siPixelDigis.IncludeErrors = True
0109 
0110 if (process.runType.getRunType() == process.runType.hi_run):
0111   rawDataRepackerLabel = 'rawDataRepacker'
0112   #--------------------------------
0113   # Heavy Ion Configuration Changes
0114   #--------------------------------
0115   process.siPixelDigis.InputLabel = rawDataRepackerLabel
0116   process.siStripDigis.ProductLabel   = rawDataRepackerLabel
0117   process.scalersRawToDigi.scalersInputTag = rawDataRepackerLabel
0118   process.tcdsDigis.InputLabel = rawDataRepackerLabel
0119 else :
0120   rawDataCollectorLabel = 'rawDataCollector'
0121   process.siPixelDigis.InputLabel = rawDataCollectorLabel
0122   process.siStripDigis.ProductLabel = rawDataCollectorLabel
0123 
0124 ## Collision Reconstruction
0125 process.load("Configuration.StandardSequences.RawToDigi_Data_cff")
0126 
0127 ## Cosmic Track Reconstruction
0128 if (process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.cosmic_run_stage1):
0129     process.load("RecoTracker.Configuration.RecoTrackerP5_cff")
0130     process.load("Configuration.StandardSequences.ReconstructionCosmics_cff")
0131     process.load("RecoTracker.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi")
0132 else:
0133     process.load("Configuration.StandardSequences.Reconstruction_cff")
0134 
0135 import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi
0136 process.offlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone()
0137 
0138 process.load("DQM.SiPixelPhase1Config.SiPixelPhase1OnlineDQM_cff")
0139 
0140 process.PerModule.enabled=True
0141 process.PerReadout.enabled=True
0142 process.OverlayCurvesForTiming.enabled=True
0143 process.IsOffline.enabled=False
0144 
0145 #--------------------------
0146 # Service
0147 #--------------------------
0148 process.AdaptorConfig = cms.Service("AdaptorConfig")
0149 
0150 #--------------------------
0151 # Filters
0152 #--------------------------
0153 
0154 # HLT Filter
0155 # 0=random, 1=physics, 2=calibration, 3=technical
0156 process.hltTriggerTypeFilter = cms.EDFilter("HLTTriggerTypeFilter",
0157     SelectedTriggerType = cms.int32(1)
0158 )
0159 
0160 process.load('HLTrigger.HLTfilters.hltHighLevel_cfi')
0161 if (process.runType.getRunType() == process.runType.hi_run):
0162     process.hltHighLevel.HLTPaths = ['HLT_ZeroBias_*' , 'HLT_HIZeroBias_*' , 'HLT_ZeroBias1_*' , 'HLT_PAZeroBias_*' , 'HLT_PAZeroBias1_*', 'HLT_PAL1MinimumBiasHF_OR_SinglePixelTrack_*','HLT*SingleMu*' , 'HLT_HICentralityVeto*' , 'HLT_HIMinimumBias*','HLT_HIPhysics*']
0163 else:
0164     process.hltHighLevel.HLTPaths = ['HLT_ZeroBias_*' , 'HLT_ZeroBias1_*' , 'HLT_PAZeroBias_*' , 'HLT_PAZeroBias1_*', 'HLT_PAL1MinimumBiasHF_OR_SinglePixelTrack_*','HLT*SingleMu*']
0165 process.hltHighLevel.andOr = True
0166 process.hltHighLevel.throw =  False
0167 
0168 #--------------------------
0169 # Scheduling
0170 #--------------------------
0171 
0172 process.DQMmodules = cms.Sequence(process.dqmEnv* process.dqmSaver)#*process.dqmSaverPB)
0173 
0174 process.RecoForDQM_LocalReco = cms.Sequence(process.siPixelDigis*process.siStripDigis*process.gtDigis*process.trackerlocalreco)
0175 
0176 from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
0177 # Replace gtDigis with gtStage2Digis when stage2L1Trigger is active
0178 stage2L1Trigger.toReplaceWith(
0179   process.RecoForDQM_LocalReco,
0180   cms.Sequence(process.siPixelDigis * process.siStripDigis * process.gtStage2Digis * process.trackerlocalreco)
0181 )
0182 
0183 ### COSMIC RUN SETTING
0184 if (process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.cosmic_run_stage1):
0185         
0186     # Reco for cosmic data
0187     process.load('RecoTracker.SpecialSeedGenerators.SimpleCosmicBONSeeder_cfi')
0188     process.simpleCosmicBONSeeds.ClusterCheckPSet.MaxNumberOfStripClusters = 450
0189     process.combinatorialcosmicseedfinderP5.MaxNumberOfStripClusters = 450
0190 
0191     
0192 
0193     process.RecoForDQM_TrkReco_cosmic = cms.Sequence(process.offlineBeamSpot*process.MeasurementTrackerEvent*process.ctftracksP5*process.siPixelClusterShapeCache)
0194     
0195     process.p = cms.Path(
0196                          ##### TRIGGER SELECTION #####
0197                          process.hltHighLevel*
0198                          process.scalersRawToDigi*
0199                          process.tcdsDigis*
0200                          process.APVPhases*
0201                          process.consecutiveHEs*
0202                          process.hltTriggerTypeFilter*
0203                          process.RecoForDQM_LocalReco*
0204                          process.DQMmodules*
0205                          process.RecoForDQM_TrkReco_cosmic*
0206                          process.siPixelPhase1OnlineDQM_source_cosmics*
0207                          process.siPixelPhase1OnlineDQM_harvesting
0208                          )
0209    
0210 ### pp/hi COLLISION SETTING
0211 
0212 if (process.runType.getRunType() == process.runType.pp_run or process.runType.getRunType() == process.runType.pp_run_stage1 or process.runType.getRunType() == process.runType.hi_run):
0213     # Reco for pp collisions
0214     process.load('RecoTracker.IterativeTracking.InitialStepPreSplitting_cff')
0215     process.InitialStepPreSplittingTask.remove(process.initialStepTrackRefsForJetsPreSplitting)
0216     process.InitialStepPreSplittingTask.remove(process.caloTowerForTrkPreSplitting)
0217     process.InitialStepPreSplittingTask.remove(process.ak4CaloJetsForTrkPreSplitting)
0218     process.InitialStepPreSplittingTask.remove(process.jetsForCoreTrackingPreSplitting)
0219     process.InitialStepPreSplittingTask.remove(process.siPixelClusters)
0220     process.InitialStepPreSplittingTask.remove(process.siPixelRecHits)
0221     process.InitialStepPreSplittingTask.remove(process.MeasurementTrackerEvent)
0222     process.InitialStepPreSplittingTask.remove(process.siPixelClusterShapeCache)
0223 
0224     # Redefinition of siPixelClusters: has to be after RecoTracker.IterativeTracking.InitialStepPreSplitting_cff 
0225     from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi import siPixelClusters as _siPixelClusters
0226     process.siPixelClusters = _siPixelClusters.clone()
0227 
0228     from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import *
0229     process.PixelLayerTriplets.BPix.HitProducer = cms.string('siPixelRecHitsPreSplitting')
0230     process.PixelLayerTriplets.FPix.HitProducer = cms.string('siPixelRecHitsPreSplitting')
0231     from RecoTracker.PixelTrackFitting.PixelTracks_cff import *
0232     process.pixelTracksHitTriplets.SeedComparitorPSet.clusterShapeCacheSrc = 'siPixelClusterShapeCachePreSplitting'
0233     process.RecoForDQM_TrkReco = cms.Sequence(process.offlineBeamSpot*process.MeasurementTrackerEventPreSplitting*process.siPixelClusterShapeCachePreSplitting*process.recopixelvertexing*process.InitialStepPreSplitting)
0234 
0235     if (process.runType.getRunType() == process.runType.hi_run):
0236         #        process.SiPixelClusterSource.src = cms.InputTag("siPixelClustersPreSplitting")
0237         #        process.Reco = cms.Sequence(process.siPixelDigis*process.pixeltrackerlocalreco)
0238         process.Reco = cms.Sequence(process.siPixelDigis*process.siStripDigis*process.trackerlocalreco)
0239     else:
0240         process.Reco = cms.Sequence(process.siPixelDigis*process.siStripDigis*process.trackerlocalreco)
0241                           
0242 
0243     process.p = cms.Path(
0244       process.hltHighLevel #trigger selection
0245      *process.scalersRawToDigi
0246      *process.tcdsDigis
0247      *process.APVPhases
0248      *process.consecutiveHEs
0249      *process.Reco
0250      *process.siPixelClusters
0251      *process.DQMmodules
0252      *process.RecoForDQM_TrkReco
0253      *process.siPixelPhase1OnlineDQM_source_pprun
0254      *process.siPixelPhase1OnlineDQM_harvesting
0255     )
0256 
0257 ### FIXME: to add the HI Track Reconstruction    
0258 ### process customizations included here
0259 from DQM.Integration.config.online_customizations_cfi import *
0260 process = customise(process)
0261 
0262 #--------------------------------------------------
0263 # Heavy Ion Specific Fed Raw Data Collection Label
0264 #--------------------------------------------------
0265 
0266 print("Running with run type = ", process.runType.getRunType())
0267 print("Global Tag used:", process.GlobalTag.globaltag.value())
0268 print("Final Source settings:", process.source)