Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-31 23:01:36

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