Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:07:42

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     #--------------------------------
0113     # Heavy Ion Configuration Changes
0114     #--------------------------------
0115     process.siPixelDigis.cpu.InputLabel = "rawDataRepacker"
0116     process.siStripDigis.ProductLabel   = "rawDataRepacker"
0117     process.scalersRawToDigi.scalersInputTag = "rawDataRepacker"
0118 else :
0119     process.siPixelDigis.cpu.InputLabel = "rawDataCollector"
0120     process.siStripDigis.ProductLabel     = cms.InputTag("rawDataCollector") 
0121 
0122 ## Collision Reconstruction
0123 process.load("Configuration.StandardSequences.RawToDigi_Data_cff")
0124 
0125 ## Cosmic Track Reconstruction
0126 if (process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.cosmic_run_stage1):
0127     process.load("RecoTracker.Configuration.RecoTrackerP5_cff")
0128     process.load("Configuration.StandardSequences.ReconstructionCosmics_cff")
0129     process.load("RecoTracker.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi")
0130 else:
0131     process.load("Configuration.StandardSequences.Reconstruction_cff")
0132 
0133 import RecoVertex.BeamSpotProducer.onlineBeamSpotESProducer_cfi as _mod
0134 process.BeamSpotESProducer = _mod.onlineBeamSpotESProducer.clone()
0135 
0136 # for running offline enhance the time validity of the online beamspot in DB
0137 if ((not live) or process.isDqmPlayback.value): 
0138   process.BeamSpotESProducer.timeThreshold = cms.int32(int(1e6))
0139 
0140 import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi
0141 process.offlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone()
0142 
0143 process.load("DQM.SiPixelPhase1Config.SiPixelPhase1OnlineDQM_cff")
0144 
0145 process.PerModule.enabled=True
0146 process.PerReadout.enabled=True
0147 process.OverlayCurvesForTiming.enabled=True
0148 process.IsOffline.enabled=False
0149 
0150 #--------------------------
0151 # Service
0152 #--------------------------
0153 process.AdaptorConfig = cms.Service("AdaptorConfig")
0154 
0155 #--------------------------
0156 # Filters
0157 #--------------------------
0158 
0159 # HLT Filter
0160 # 0=random, 1=physics, 2=calibration, 3=technical
0161 process.hltTriggerTypeFilter = cms.EDFilter("HLTTriggerTypeFilter",
0162     SelectedTriggerType = cms.int32(1)
0163 )
0164 
0165 process.load('HLTrigger.HLTfilters.hltHighLevel_cfi')
0166 if (process.runType.getRunType() == process.runType.hi_run):
0167     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*']
0168 else:
0169     process.hltHighLevel.HLTPaths = ['HLT_ZeroBias_*' , 'HLT_ZeroBias1_*' , 'HLT_PAZeroBias_*' , 'HLT_PAZeroBias1_*', 'HLT_PAL1MinimumBiasHF_OR_SinglePixelTrack_*','HLT*SingleMu*']
0170 process.hltHighLevel.andOr = True
0171 process.hltHighLevel.throw =  False
0172 
0173 #--------------------------
0174 # Scheduling
0175 #--------------------------
0176 
0177 process.DQMmodules = cms.Sequence(process.dqmEnv* process.dqmSaver*process.dqmSaverPB)
0178 
0179 process.RecoForDQM_LocalReco = cms.Sequence(process.siPixelDigis*process.siStripDigis*process.gtDigis*process.trackerlocalreco)
0180 
0181 ### COSMIC RUN SETTING
0182 if (process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.cosmic_run_stage1):
0183         
0184     # Reco for cosmic data
0185     process.load('RecoTracker.SpecialSeedGenerators.SimpleCosmicBONSeeder_cfi')
0186     process.simpleCosmicBONSeeds.ClusterCheckPSet.MaxNumberOfStripClusters = 450
0187     process.combinatorialcosmicseedfinderP5.MaxNumberOfStripClusters = 450
0188 
0189     
0190 
0191     process.RecoForDQM_TrkReco_cosmic = cms.Sequence(process.offlineBeamSpot*process.MeasurementTrackerEvent*process.ctftracksP5*process.siPixelClusterShapeCache)
0192     
0193     process.p = cms.Path(
0194                          ##### TRIGGER SELECTION #####
0195                          process.hltHighLevel*
0196                          process.scalersRawToDigi*
0197                          process.tcdsDigis*
0198                          process.APVPhases*
0199                          process.consecutiveHEs*
0200                          process.hltTriggerTypeFilter*
0201                          process.RecoForDQM_LocalReco*
0202                          process.DQMmodules*
0203                          process.RecoForDQM_TrkReco_cosmic*
0204                          process.siPixelPhase1OnlineDQM_source_cosmics*
0205                          process.siPixelPhase1OnlineDQM_harvesting
0206                          )
0207    
0208 ### pp/hi COLLISION SETTING
0209 
0210 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):
0211     # Reco for pp collisions
0212     process.load('RecoTracker.IterativeTracking.InitialStepPreSplitting_cff')
0213     process.InitialStepPreSplittingTask.remove(process.initialStepTrackRefsForJetsPreSplitting)
0214     process.InitialStepPreSplittingTask.remove(process.caloTowerForTrkPreSplitting)
0215     process.InitialStepPreSplittingTask.remove(process.ak4CaloJetsForTrkPreSplitting)
0216     process.InitialStepPreSplittingTask.remove(process.jetsForCoreTrackingPreSplitting)
0217     process.InitialStepPreSplittingTask.remove(process.siPixelClusters)
0218     process.InitialStepPreSplittingTask.remove(process.siPixelRecHits)
0219     process.InitialStepPreSplittingTask.remove(process.MeasurementTrackerEvent)
0220     process.InitialStepPreSplittingTask.remove(process.siPixelClusterShapeCache)
0221 
0222     # Redefinition of siPixelClusters: has to be after RecoTracker.IterativeTracking.InitialStepPreSplitting_cff 
0223     process.load("RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi")
0224 
0225     from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import *
0226     process.PixelLayerTriplets.BPix.HitProducer = cms.string('siPixelRecHitsPreSplitting')
0227     process.PixelLayerTriplets.FPix.HitProducer = cms.string('siPixelRecHitsPreSplitting')
0228     from RecoTracker.PixelTrackFitting.PixelTracks_cff import *
0229     process.pixelTracksHitTriplets.SeedComparitorPSet.clusterShapeCacheSrc = 'siPixelClusterShapeCachePreSplitting'
0230     process.RecoForDQM_TrkReco = cms.Sequence(process.offlineBeamSpot*process.MeasurementTrackerEventPreSplitting*process.siPixelClusterShapeCachePreSplitting*process.recopixelvertexing*process.InitialStepPreSplitting)
0231 
0232     if (process.runType.getRunType() == process.runType.hi_run):
0233         #        process.SiPixelClusterSource.src = cms.InputTag("siPixelClustersPreSplitting")
0234         #        process.Reco = cms.Sequence(process.siPixelDigis*process.pixeltrackerlocalreco)
0235         process.Reco = cms.Sequence(process.siPixelDigis*process.siStripDigis*process.trackerlocalreco)
0236     else:
0237         process.Reco = cms.Sequence(process.siPixelDigis*process.siStripDigis*process.trackerlocalreco)
0238                           
0239 
0240     process.p = cms.Path(
0241       process.hltHighLevel #trigger selection
0242      *process.scalersRawToDigi
0243      *process.tcdsDigis
0244      *process.APVPhases
0245      *process.consecutiveHEs
0246      *process.Reco
0247      *process.siPixelClusters
0248      *process.DQMmodules
0249      *process.RecoForDQM_TrkReco
0250      *process.siPixelPhase1OnlineDQM_source_pprun
0251      *process.siPixelPhase1OnlineDQM_harvesting
0252     )
0253 
0254 ### FIXME: to add the HI Track Reconstruction    
0255 ### process customizations included here
0256 from DQM.Integration.config.online_customizations_cfi import *
0257 process = customise(process)
0258 
0259 #--------------------------------------------------
0260 # Heavy Ion Specific Fed Raw Data Collection Label
0261 #--------------------------------------------------
0262 
0263 print("Running with run type = ", process.runType.getRunType())
0264 print("Final Source settings:", process.source)