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("BeamPixel", Run3_pp_on_PbPb_approxSiStripClusters)
0007 else:
0008   from Configuration.Eras.Era_Run3_2025_cff import Run3_2025
0009   process = cms.Process("BeamPixel", Run3_2025)
0010 
0011 unitTest = False
0012 if 'unitTest=True' in sys.argv:
0013     unitTest = True
0014 
0015 
0016 #----------------------------
0017 # Common for PP and HI running
0018 #----------------------------
0019 if unitTest == True:
0020     process.load("DQM.Integration.config.unittestinputsource_cfi")
0021     from DQM.Integration.config.unittestinputsource_cfi import options
0022 else:
0023     process.load("DQM.Integration.config.inputsource_cfi")
0024     from DQM.Integration.config.inputsource_cfi import options
0025 # Use this to run locally (for testing purposes)
0026 #process.load("DQM.Integration.config.fileinputsource_cfi")
0027 #from DQM.Integration.config.fileinputsource_cfi import options
0028 
0029 
0030 #----------------------------
0031 # HLT Filter
0032 #----------------------------
0033 # 0=random, 1=physics, 2=calibration, 3=technical
0034 process.hltTriggerTypeFilter = cms.EDFilter("HLTTriggerTypeFilter", SelectedTriggerType = cms.int32(1))
0035 
0036 
0037 #----------------------------
0038 # DQM Environment
0039 #----------------------------
0040 process.load("DQM.Integration.config.environment_cfi")
0041 process.dqmEnv.subSystemFolder = "BeamPixel"
0042 process.dqmSaver.tag = "BeamPixel"
0043 process.dqmSaver.runNumber = options.runNumber
0044 # process.dqmSaverPB.tag = 'BeamPixel'
0045 # process.dqmSaverPB.runNumber = options.runNumber
0046 
0047 #----------------------------
0048 # Conditions
0049 #----------------------------
0050 # Use this to run locally (for testing purposes), choose the right GT
0051 #process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
0052 #from Configuration.AlCa.GlobalTag import GlobalTag
0053 #process.GlobalTag = GlobalTag(process.GlobalTag, "auto:run3_data", "")
0054 # Otherwise use this
0055 process.load("DQM.Integration.config.FrontierCondition_GT_cfi")
0056 
0057 
0058 #----------------------------
0059 # Sub-system Configuration
0060 #----------------------------
0061 process.load("Configuration.StandardSequences.GeometryRecoDB_cff")
0062 process.load("Configuration.StandardSequences.MagneticField_AutoFromDBCurrent_cff")
0063 process.load("Configuration.StandardSequences.RawToDigi_Data_cff")
0064 
0065 
0066 #----------------------------
0067 # Define Sequences
0068 #----------------------------
0069 process.dqmModules  = cms.Sequence(process.dqmEnv + process.dqmSaver )#+ process.dqmSaverPB)
0070 process.physTrigger = cms.Sequence(process.hltTriggerTypeFilter)
0071 
0072 
0073 #----------------------------
0074 # Process Customizations
0075 #----------------------------
0076 from DQM.Integration.config.online_customizations_cfi import *
0077 process = customise(process)
0078 from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
0079 
0080 
0081 #----------------------------
0082 # Tracking General Configuration
0083 #----------------------------
0084 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cfi")
0085 process.load("RecoLocalTracker.Configuration.RecoLocalTracker_cff")
0086 process.load("TrackingTools.TransientTrack.TransientTrackBuilder_cfi")
0087 
0088 
0089 #----------------------------
0090 # Pixel-Tracks&Vertices Config
0091 #----------------------------
0092 from RecoTracker.PixelLowPtUtilities.siPixelClusterShapeCache_cfi import *
0093 process.siPixelClusterShapeCachePreSplitting = siPixelClusterShapeCache.clone(src = 'siPixelClustersPreSplitting')
0094 process.load("RecoLocalTracker.SiPixelRecHits.PixelCPEGeneric_cfi")
0095 process.load("RecoVertex.Configuration.RecoPixelVertexing_cff")
0096 from RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi import *
0097 process.pixelVertices = pixelVertices.clone(
0098     TkFilterParameters = dict(
0099     minPt = process.pixelTracksTrackingRegions.RegionPSet.ptMin)
0100 )
0101 process.pixelTracksTrackingRegions.RegionPSet.originRadius     = 0.4
0102 process.pixelTracksTrackingRegions.RegionPSet.originHalfLength = 15.
0103 process.pixelTracksTrackingRegions.RegionPSet.originXPos       = 0.08
0104 process.pixelTracksTrackingRegions.RegionPSet.originYPos       = -0.03
0105 process.pixelTracksTrackingRegions.RegionPSet.originZPos       = 0.
0106 
0107 
0108 #----------------------------
0109 # Proton-Proton Specific Section
0110 #----------------------------
0111 if (process.runType.getRunType() == process.runType.pp_run or process.runType.getRunType() == process.runType.pp_run_stage1 or 
0112     process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.cosmic_run_stage1 or 
0113     process.runType.getRunType() == process.runType.hpu_run or process.runType.getRunType() == process.runType.commissioning_run ):
0114     print("[beampixel_dqm_sourceclient-live_cfg]::running pp")
0115 
0116 
0117     #----------------------------
0118     # Tracking Configuration
0119     #----------------------------
0120     process.castorDigis.InputLabel           = "rawDataCollector"
0121     process.csctfDigis.producer              = "rawDataCollector"
0122     process.dttfDigis.DTTF_FED_Source        = "rawDataCollector"
0123     process.ecalDigisCPU.InputLabel          = "rawDataCollector"
0124     process.ecalPreshowerDigis.sourceTag     = "rawDataCollector"
0125     process.gctDigis.inputLabel              = "rawDataCollector"
0126     process.gtDigis.DaqGtInputTag            = "rawDataCollector"
0127     process.hcalDigis.InputLabel             = "rawDataCollector"
0128     process.muonCSCDigis.InputObjects        = "rawDataCollector"
0129     process.muonDTDigis.inputLabel           = "rawDataCollector"
0130     process.muonRPCDigis.InputLabel          = "rawDataCollector"
0131     process.scalersRawToDigi.scalersInputTag = "rawDataCollector"
0132     process.siPixelDigis.InputLabel      = "rawDataCollector"
0133     process.siStripDigis.ProductLabel        = "rawDataCollector"
0134 
0135     
0136     #----------------------------
0137     # pixelVertexDQM Config
0138     #----------------------------
0139     process.pixelVertexDQM = DQMEDAnalyzer('Vx3DHLTAnalyzer',
0140                                             vertexCollection   = cms.untracked.InputTag("pixelVertices"),
0141                                             pixelHitCollection = cms.untracked.InputTag("siPixelRecHitsPreSplitting"),
0142                                             debugMode          = cms.bool(True),
0143                                             nLumiFit           = cms.uint32(2),
0144                                             maxLumiIntegration = cms.uint32(15),
0145                                             nLumiXaxisRange    = cms.uint32(5000),
0146                                             dataFromFit        = cms.bool(True),
0147                                             minNentries        = cms.uint32(20),
0148                                             # If the histogram has at least "minNentries" then extract Mean and RMS,
0149                                             # or, if we are performing the fit, the number of vertices must be greater
0150                                             # than minNentries otherwise it waits for other nLumiFit
0151                                             xRange             = cms.double(0.8),
0152                                             xStep              = cms.double(0.001),
0153                                             yRange             = cms.double(0.8),
0154                                             yStep              = cms.double(0.001),
0155                                             zRange             = cms.double(30.0),
0156                                             zStep              = cms.double(0.04),
0157                                             VxErrCorr          = cms.double(1.0), # Was 1.2, changed to 1.0 in Run3 13.6 TeV collisions - Keep checking this with later release
0158                                             minVxDoF           = cms.double(10.0),
0159                                             minVxWgt           = cms.double(0.5),
0160                                             fileName           = cms.string("/nfshome0/dqmdev/BeamMonitorDQM/BeamPixelResults.txt"))
0161 
0162 
0163 #----------------------------
0164 # Heavy Ion Specific Section
0165 #----------------------------
0166 if (process.runType.getRunType() == process.runType.hi_run):
0167     print("[beampixel_dqm_sourceclient-live_cfg]::running HI")
0168 
0169 
0170     #----------------------------
0171     # Tracking Configuration
0172     #----------------------------
0173     process.castorDigis.InputLabel           = "rawDataRepacker"
0174     process.csctfDigis.producer              = "rawDataRepacker"
0175     process.dttfDigis.DTTF_FED_Source        = "rawDataRepacker"
0176     process.ecalDigisCPU.InputLabel          = "rawDataRepacker"
0177     process.ecalPreshowerDigis.sourceTag     = "rawDataRepacker"
0178     process.gctDigis.inputLabel              = "rawDataRepacker"
0179     process.gtDigis.DaqGtInputTag            = "rawDataRepacker"
0180     process.hcalDigis.InputLabel             = "rawDataRepacker"
0181     process.muonCSCDigis.InputObjects        = "rawDataRepacker"
0182     process.muonDTDigis.inputLabel           = "rawDataRepacker"
0183     process.muonRPCDigis.InputLabel          = "rawDataRepacker"
0184     process.scalersRawToDigi.scalersInputTag = "rawDataRepacker"
0185     process.siPixelDigis.InputLabel      = "rawDataRepacker"
0186     process.siStripDigis.ProductLabel        = "rawDataRepacker"
0187 
0188 
0189     #----------------------------
0190     # pixelVertexDQM Config
0191     #----------------------------
0192     process.pixelVertexDQM = DQMEDAnalyzer('Vx3DHLTAnalyzer',
0193                                             vertexCollection   = cms.untracked.InputTag("pixelVertices"),
0194                                             pixelHitCollection = cms.untracked.InputTag("siPixelRecHitsPreSplitting"),
0195                                             debugMode          = cms.bool(True),
0196                                             nLumiFit           = cms.uint32(5),
0197                                             maxLumiIntegration = cms.uint32(15),
0198                                             nLumiXaxisRange    = cms.uint32(5000),
0199                                             dataFromFit        = cms.bool(True),
0200                                             minNentries        = cms.uint32(20),
0201                                             # If the histogram has at least "minNentries" then extract Mean and RMS,
0202                                             # or, if we are performing the fit, the number of vertices must be greater
0203                                             # than minNentries otherwise it waits for other nLumiFit
0204                                             xRange             = cms.double(0.8),
0205                                             xStep              = cms.double(0.001),
0206                                             yRange             = cms.double(0.8),
0207                                             yStep              = cms.double(0.001),
0208                                             zRange             = cms.double(30.0),
0209                                             zStep              = cms.double(0.04),
0210                                             VxErrCorr          = cms.double(1.0), # Was 1.2, changed to 1.0 in Run3 13.6 TeV collisions - Keep checking this with later release
0211                                             minVxDoF           = cms.double(10.0),
0212                                             minVxWgt           = cms.double(0.5),
0213                                             fileName           = cms.string("/nfshome0/dqmdev/BeamMonitorDQM/BeamPixelResults.txt"))
0214 
0215 
0216 #----------------------------
0217 # File to save beamspot info
0218 #----------------------------
0219 if process.dqmRunConfig.type.value() == "production":
0220     process.pixelVertexDQM.fileName = "/nfshome0/dqmpro/BeamMonitorDQM/BeamPixelResults.txt"
0221 else:
0222     process.pixelVertexDQM.fileName = "/nfshome0/dqmdev/BeamMonitorDQM/BeamPixelResults.txt"
0223 print("[beampixel_dqm_sourceclient-live_cfg]::saving DIP file into " + str(process.pixelVertexDQM.fileName))
0224 
0225 
0226 #----------------------------
0227 # Pixel-Tracks&Vertices Reco
0228 #----------------------------
0229 process.reconstructionStep = cms.Sequence(process.siPixelDigis*
0230                                           process.siStripDigis*
0231                                           process.striptrackerlocalreco*
0232                                           process.offlineBeamSpot*
0233                                           process.siPixelClustersPreSplitting*
0234                                           process.siPixelRecHitsPreSplitting*
0235                                           process.siPixelClusterShapeCachePreSplitting*
0236                                           process.recopixelvertexing)
0237 
0238 
0239 #----------------------------
0240 # Define Path
0241 #----------------------------
0242 process.p = cms.Path(process.scalersRawToDigi*process.physTrigger*process.reconstructionStep*process.pixelVertexDQM*process.dqmModules)