Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-08-25 23:07:01

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("PIXELDQMLIVE", Run3_pp_on_PbPb_approxSiStripClusters)
0008 else:
0009   from Configuration.Eras.Era_Run3_cff import Run3
0010   process = cms.Process("PIXELDQMLIVE", Run3)
0011 
0012 live=True
0013 unitTest = False
0014 
0015 if 'unitTest=True' in sys.argv:
0016     live=False
0017     unitTest=True
0018 
0019 #set to false for lxplus offline testing
0020 #live=False
0021 offlineTesting=not live
0022 
0023 TAG ="PixelPhase1" 
0024 
0025 process.load('FWCore.MessageService.MessageLogger_cfi')
0026 process.MessageLogger.debugModules = cms.untracked.vstring('siPixelDigis',
0027                                                            'siStripClusters', 
0028                                                            'SiPixelRawDataErrorSource', 
0029                                                            'SiPixelDigiSource')
0030 process.MessageLogger.cout = cms.untracked.PSet(threshold = cms.untracked.string('ERROR'))
0031 
0032 #----------------------------
0033 # Event Source
0034 #-----------------------------
0035 # for live online DQM in P5
0036 
0037 if (unitTest):
0038     process.load("DQM.Integration.config.unittestinputsource_cfi")
0039     from DQM.Integration.config.unittestinputsource_cfi import options
0040 
0041 elif (live):
0042     process.load("DQM.Integration.config.inputsource_cfi")
0043     from DQM.Integration.config.inputsource_cfi import options
0044 
0045 # for testing in lxplus
0046 elif(offlineTesting):
0047     process.load("DQM.Integration.config.fileinputsource_cfi")
0048     from DQM.Integration.config.fileinputsource_cfi import options
0049 
0050 #-----------------------------
0051 # DQM Environment
0052 #-----------------------------
0053 
0054 process.load("DQMServices.Components.DQMEnvironment_cfi")
0055 
0056 process.load("DQM.Integration.config.environment_cfi")
0057 
0058 #----------------------------
0059 # DQM Live Environment
0060 #-----------------------------
0061 
0062 process.dqmEnv.subSystemFolder = TAG
0063 process.dqmSaver.tag = TAG
0064 process.dqmSaver.runNumber = options.runNumber
0065 process.dqmSaverPB.tag = TAG
0066 process.dqmSaverPB.runNumber = options.runNumber
0067 
0068 
0069 #-----------------------------
0070 # Magnetic Field
0071 #-----------------------------
0072 
0073 process.load('Configuration.StandardSequences.MagneticField_cff')
0074 
0075 #-------------------------------------------------
0076 # GEOMETRY
0077 #-------------------------------------------------
0078 
0079 process.load("Configuration.StandardSequences.GeometryRecoDB_cff")
0080 
0081 #-------------------------------------------------
0082 # GLOBALTAG
0083 #-------------------------------------------------
0084 # Condition for P5 cluster
0085 
0086 if (live):
0087     process.load("DQM.Integration.config.FrontierCondition_GT_cfi")
0088 
0089 # Condition for lxplus: change and possibly customise the GT
0090 elif(offlineTesting):
0091     process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0092     from Configuration.AlCa.GlobalTag import GlobalTag as gtCustomise
0093     process.GlobalTag = gtCustomise(process.GlobalTag, 'auto:run3_data', '')
0094 
0095 #-----------------------
0096 #  Reconstruction Modules
0097 #-----------------------
0098 
0099 # Real data raw to digi
0100 process.load("Configuration.StandardSequences.RawToDigi_Data_cff")
0101 process.load("RecoLocalTracker.SiStripZeroSuppression.SiStripZeroSuppression_cfi")
0102 process.load("RecoLocalTracker.SiStripClusterizer.SiStripClusterizer_RealData_cfi")
0103 
0104 process.load("DPGAnalysis.SiStripTools.eventwithhistoryproducerfroml1abc_cfi")
0105 process.load("DPGAnalysis.SiStripTools.apvcyclephaseproducerfroml1tsDB_cfi")
0106 
0107 # PixelPhase1 Real data raw to digi
0108 process.load("EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi")
0109 process.siPixelDigis.cpu.IncludeErrors = True
0110 
0111 if (process.runType.getRunType() == process.runType.hi_run):
0112   rawDataRepackerLabel = 'rawDataRepacker'
0113   #--------------------------------
0114   # Heavy Ion Configuration Changes
0115   #--------------------------------
0116   process.siPixelDigis.cpu.InputLabel = rawDataRepackerLabel
0117   process.siStripDigis.ProductLabel   = rawDataRepackerLabel
0118   process.scalersRawToDigi.scalersInputTag = rawDataRepackerLabel
0119   process.tcdsDigis.InputLabel = rawDataRepackerLabel
0120 else :
0121   rawDataCollectorLabel = 'rawDataCollector'
0122   process.siPixelDigis.cpu.InputLabel = rawDataCollectorLabel
0123   process.siStripDigis.ProductLabel = rawDataCollectorLabel
0124 
0125 ## Collision Reconstruction
0126 process.load("Configuration.StandardSequences.RawToDigi_Data_cff")
0127 
0128 ## Cosmic Track Reconstruction
0129 if (process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.cosmic_run_stage1):
0130     process.load("RecoTracker.Configuration.RecoTrackerP5_cff")
0131     process.load("Configuration.StandardSequences.ReconstructionCosmics_cff")
0132     process.load("RecoTracker.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi")
0133 else:
0134     process.load("Configuration.StandardSequences.Reconstruction_cff")
0135 
0136 import RecoVertex.BeamSpotProducer.onlineBeamSpotESProducer_cfi as _mod
0137 process.BeamSpotESProducer = _mod.onlineBeamSpotESProducer.clone()
0138 
0139 # for running offline enhance the time validity of the online beamspot in DB
0140 if ((not live) or process.isDqmPlayback.value): 
0141   process.BeamSpotESProducer.timeThreshold = cms.int32(int(1e6))
0142 
0143 import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi
0144 process.offlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone()
0145 
0146 process.load("DQM.SiPixelPhase1Config.SiPixelPhase1OnlineDQM_cff")
0147 
0148 process.PerModule.enabled=True
0149 process.PerReadout.enabled=True
0150 process.OverlayCurvesForTiming.enabled=True
0151 process.IsOffline.enabled=False
0152 
0153 #--------------------------
0154 # Service
0155 #--------------------------
0156 process.AdaptorConfig = cms.Service("AdaptorConfig")
0157 
0158 #--------------------------
0159 # Filters
0160 #--------------------------
0161 
0162 # HLT Filter
0163 # 0=random, 1=physics, 2=calibration, 3=technical
0164 process.hltTriggerTypeFilter = cms.EDFilter("HLTTriggerTypeFilter",
0165     SelectedTriggerType = cms.int32(1)
0166 )
0167 
0168 process.load('HLTrigger.HLTfilters.hltHighLevel_cfi')
0169 if (process.runType.getRunType() == process.runType.hi_run):
0170     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*']
0171 else:
0172     process.hltHighLevel.HLTPaths = ['HLT_ZeroBias_*' , 'HLT_ZeroBias1_*' , 'HLT_PAZeroBias_*' , 'HLT_PAZeroBias1_*', 'HLT_PAL1MinimumBiasHF_OR_SinglePixelTrack_*','HLT*SingleMu*']
0173 process.hltHighLevel.andOr = True
0174 process.hltHighLevel.throw =  False
0175 
0176 #--------------------------
0177 # Scheduling
0178 #--------------------------
0179 
0180 process.DQMmodules = cms.Sequence(process.dqmEnv* process.dqmSaver*process.dqmSaverPB)
0181 
0182 process.RecoForDQM_LocalReco = cms.Sequence(process.siPixelDigis*process.siStripDigis*process.gtDigis*process.trackerlocalreco)
0183 
0184 ### COSMIC RUN SETTING
0185 if (process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.cosmic_run_stage1):
0186         
0187     # Reco for cosmic data
0188     process.load('RecoTracker.SpecialSeedGenerators.SimpleCosmicBONSeeder_cfi')
0189     process.simpleCosmicBONSeeds.ClusterCheckPSet.MaxNumberOfStripClusters = 450
0190     process.combinatorialcosmicseedfinderP5.MaxNumberOfStripClusters = 450
0191 
0192     
0193 
0194     process.RecoForDQM_TrkReco_cosmic = cms.Sequence(process.offlineBeamSpot*process.MeasurementTrackerEvent*process.ctftracksP5*process.siPixelClusterShapeCache)
0195     
0196     process.p = cms.Path(
0197                          ##### TRIGGER SELECTION #####
0198                          process.hltHighLevel*
0199                          process.scalersRawToDigi*
0200                          process.tcdsDigis*
0201                          process.APVPhases*
0202                          process.consecutiveHEs*
0203                          process.hltTriggerTypeFilter*
0204                          process.RecoForDQM_LocalReco*
0205                          process.DQMmodules*
0206                          process.RecoForDQM_TrkReco_cosmic*
0207                          process.siPixelPhase1OnlineDQM_source_cosmics*
0208                          process.siPixelPhase1OnlineDQM_harvesting
0209                          )
0210    
0211 ### pp/hi COLLISION SETTING
0212 
0213 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):
0214     # Reco for pp collisions
0215     process.load('RecoTracker.IterativeTracking.InitialStepPreSplitting_cff')
0216     process.InitialStepPreSplittingTask.remove(process.initialStepTrackRefsForJetsPreSplitting)
0217     process.InitialStepPreSplittingTask.remove(process.caloTowerForTrkPreSplitting)
0218     process.InitialStepPreSplittingTask.remove(process.ak4CaloJetsForTrkPreSplitting)
0219     process.InitialStepPreSplittingTask.remove(process.jetsForCoreTrackingPreSplitting)
0220     process.InitialStepPreSplittingTask.remove(process.siPixelClusters)
0221     process.InitialStepPreSplittingTask.remove(process.siPixelRecHits)
0222     process.InitialStepPreSplittingTask.remove(process.MeasurementTrackerEvent)
0223     process.InitialStepPreSplittingTask.remove(process.siPixelClusterShapeCache)
0224 
0225     # Redefinition of siPixelClusters: has to be after RecoTracker.IterativeTracking.InitialStepPreSplitting_cff 
0226     process.load("RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi")
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("Final Source settings:", process.source)