Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-03-26 01:51:05

0001 #-------------------------------------
0002 #   Hcal DQM Application using New DQM Sources/Clients
0003 #-------------------------------------
0004 
0005 #-------------------------------------
0006 #   Standard Python Imports
0007 #-------------------------------------
0008 import os, sys, socket, string
0009 
0010 #-------------------------------------
0011 #   Standard CMSSW Imports/Definitions
0012 #-------------------------------------
0013 import FWCore.ParameterSet.Config as cms
0014 from Configuration.Eras.Era_Run3_cff import Run3
0015 process      = cms.Process('HCALDQM', Run3)
0016 subsystem    = 'Hcal'
0017 cmssw        = os.getenv("CMSSW_VERSION").split("_")
0018 debugstr     = "### HcalDQM::cfg::DEBUG: "
0019 warnstr      = "### HcalDQM::cfg::WARN: "
0020 errorstr     = "### HcalDQM::cfg::ERROR:"
0021 useOfflineGT = False
0022 useFileInput = False
0023 useMap       = False
0024 
0025 unitTest = False
0026 if 'unitTest=True' in sys.argv:
0027     unitTest=True
0028     useFileInput=False
0029 
0030 #-------------------------------------
0031 #   Central DQM Stuff imports
0032 #-------------------------------------
0033 from DQM.Integration.config.online_customizations_cfi import *
0034 if useOfflineGT:
0035         process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
0036         process.GlobalTag.globaltag = autoCond['run3_data_prompt']
0037 else:
0038     process.load('DQM.Integration.config.FrontierCondition_GT_cfi')
0039 
0040 if unitTest:
0041     process.load("DQM.Integration.config.unittestinputsource_cfi")
0042     from DQM.Integration.config.unittestinputsource_cfi import options
0043 elif useFileInput:
0044     process.load("DQM.Integration.config.fileinputsource_cfi")
0045     from DQM.Integration.config.fileinputsource_cfi import options
0046 else:
0047     process.load('DQM.Integration.config.inputsource_cfi')
0048     from DQM.Integration.config.inputsource_cfi import options
0049 process.load('DQM.Integration.config.environment_cfi')
0050 
0051 #-------------------------------------
0052 #   Central DQM Customization
0053 #-------------------------------------
0054 process.dqmEnv.subSystemFolder = subsystem
0055 process.dqmSaver.tag = subsystem
0056 process.dqmSaver.runNumber = options.runNumber
0057 # process.dqmSaverPB.tag = subsystem
0058 # process.dqmSaverPB.runNumber = options.runNumber
0059 process = customise(process)
0060 process.DQMStore.verbose = 0
0061 
0062 
0063 if not unitTest and not useFileInput :
0064   if not options.BeamSplashRun :
0065     process.source.minEventsPerLumi = 100
0066 
0067 #-------------------------------------
0068 #   CMSSW/Hcal non-DQM Related Module import
0069 #-------------------------------------
0070 process.load("Configuration.StandardSequences.GeometryRecoDB_cff")
0071 process.load('FWCore.MessageLogger.MessageLogger_cfi')
0072 process.load("EventFilter.HcalRawToDigi.HcalRawToDigi_cfi")
0073 process.load('EventFilter.CastorRawToDigi.CastorRawToDigi_cff')
0074 process.load("SimCalorimetry.HcalTrigPrimProducers.hcaltpdigi_cff")
0075 
0076 #-------------------------------------
0077 #   CMSSW/Hcal non-DQM Related Module Settings
0078 #   -> runType
0079 #   -> Generic Input tag for the Raw Collection
0080 #   -> cmssw version
0081 #   -> Turn off default blocking of dead channels from rechit collection
0082 #   -> Drop Channel Status Bits (had benn 'HcalCellOff', "HcalCellDead")
0083 #   -> For Trigger Primitives Emulation
0084 #   -> L1 GT setting
0085 #   -> Rename the hbheprereco to hbhereco
0086 #-------------------------------------
0087 runType         = process.runType.getRunType()
0088 runTypeName     = process.runType.getRunTypeName()
0089 isCosmicRun     = runTypeName=="cosmic_run" or runTypeName=="cosmic_run_stage1"
0090 isHeavyIon      = runTypeName=="hi_run"
0091 cmssw           = os.getenv("CMSSW_VERSION").split("_")
0092 rawTag          = "rawDataCollector"
0093 rawTagUntracked = "rawDataCollector"
0094 if isHeavyIon:
0095     rawTag = "rawDataRepacker"
0096     rawTagUntracked = "rawDataRepacker"
0097     process.castorDigis.InputLabel = rawTag
0098 
0099 process.emulTPDigis = process.simHcalTriggerPrimitiveDigis.clone(
0100    inputLabel = cms.VInputTag("hcalDigis", "hcalDigis:ZDC"),
0101    FrontEndFormatError = True,
0102    FG_threshold = 2,
0103    InputTagFEDRaw = rawTag,
0104    upgradeHF = True,
0105    upgradeHE = True,
0106    upgradeHB = True,
0107    inputUpgradeLabel = cms.VInputTag("hcalDigis", "hcalDigis:ZDC"),
0108    # Enable ZS on emulated TPs, to match what is done in data
0109    RunZS = True,
0110    ZS_threshold = 0
0111 )
0112 
0113 #inserting zdc emulator after tp digis
0114 process.etSumZdcProducer = cms.EDProducer('L1TZDCProducer',
0115                                           hcalTPDigis = cms.InputTag("emulTPDigis"),
0116                                           bxFirst = cms.int32(-2),
0117                                           bxLast = cms.int32(3)
0118 )
0119 
0120 process.hcalDigis.InputLabel = rawTag
0121 process.emulTPDigisNoTDCCut = process.emulTPDigis.clone(
0122      parameters = cms.untracked.PSet(
0123     ADCThresholdHF = cms.uint32(255),
0124     TDCMaskHF = cms.uint64(0xFFFFFFFFFFFFFFFF)
0125      )
0126 )
0127 process.HcalTPGCoderULUT.LUTGenerationMode = False
0128 
0129 # For sent-received comparison
0130 process.load("L1Trigger.Configuration.L1TRawToDigi_cff")
0131 # For heavy ion runs, need to reconfigure sources for L1TRawToDigi
0132 if isHeavyIon:
0133     process.csctfDigis.producer = "rawDataRepacker"
0134     process.dttfDigis.DTTF_FED_Source = "rawDataRepacker"
0135     process.twinMuxStage2Digis.DTTM7_FED_Source = "rawDataRepacker"
0136     process.omtfStage2Digis.inputLabel = "rawDataRepacker"
0137     process.caloStage1Digis.InputLabel = "rawDataRepacker" #new
0138     process.bmtfDigis.InputLabel = "rawDataRepacker"
0139     process.emtfStage2Digis.InputLabel = "rawDataRepacker"
0140     process.caloLayer1Digis.InputLabel = "rawDataRepacker" #not sure
0141     process.caloStage2Digis.InputLabel = "rawDataRepacker"
0142     process.gmtStage2Digis.InputLabel = "rawDataRepacker"
0143     process.gtStage2Digis.InputLabel = "rawDataRepacker"
0144     process.rpcTwinMuxRawToDigi.inputTag = "rawDataRepacker"
0145     process.rpcCPPFRawToDigi.inputTag = "rawDataRepacker"
0146 
0147 # Exclude the laser FEDs. They contaminate the QIE10/11 digi collections.
0148 #from Configuration.Eras.Modifier_run2_HCAL_2017_cff import run2_HCAL_2017
0149 #run2_HCAL_2017.toModify(process.hcalDigis, FEDs=[724,725,726,727,728,729,730,731,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123])
0150 
0151 #-------------------------------------
0152 #   Hcal DQM Tasks and Harvesters import
0153 #   New Style
0154 #-------------------------------------
0155 process.load("DQM.HcalTasks.DigiTask_cfi")
0156 process.load('DQM.HcalTasks.TPTask_cfi')
0157 process.load('DQM.HcalTasks.RawTask_cfi')
0158 process.load('DQM.HcalTasks.NoCQTask_cfi')
0159 process.load('DQM.HcalTasks.FCDTask_cfi')
0160 process.load('DQM.HcalTasks.ZDCTask_cff')
0161 #process.load('DQM.HcalTasks.QIE11Task') # 2018: integrate QIE11Task into DigiTask
0162 process.load('DQM.HcalTasks.HcalOnlineHarvesting_cfi')
0163 process.load('DQM.HcalTasks.HcalQualityTests_cfi')
0164 process.load('DQM.HcalTasks.hcalMLTask_cfi')
0165 
0166 #-------------------------------------
0167 #   For Debugginb
0168 #-------------------------------------
0169 #process.hcalDigiTask.moduleParameters.debug = 10
0170 
0171 #-------------------------------------
0172 #   Some Settings before Finishing up
0173 #   New Style Modules
0174 #-------------------------------------
0175 oldsubsystem = subsystem
0176 process.rawTask.tagFEDs = rawTagUntracked
0177 process.digiTask.runkeyVal = runType
0178 process.digiTask.runkeyName = runTypeName
0179 process.nocqTask.runkeyVal = runType
0180 process.nocqTask.runkeyName = runTypeName
0181 process.rawTask.runkeyVal = runType
0182 process.rawTask.runkeyName = runTypeName
0183 process.tpTask.runkeyVal = runType
0184 process.tpTask.runkeyName = runTypeName
0185 #process.zdcTask.runkeyVal = runType
0186 #process.zdcTask.runkeyName = runTypeName
0187 #process.zdcTask.tagQIE10 = cms.untracked.InputTag("castorDigis")
0188 #process.qie11Task.runkeyVal = runType
0189 #process.qie11Task.runkeyName = runTypeName
0190 #process.qie11Task.tagQIE11 = cms.untracked.InputTag("hcalDigis")
0191 process.fcdTask.runkeyVal = runType
0192 process.fcdTask.runkeyName = runTypeName
0193 
0194 #-------------------------------------
0195 #   Hcal DQM Tasks/Clients Sequences Definition
0196 #-------------------------------------
0197 process.tasksPath = cms.Path(
0198         process.rawTask
0199         +process.digiTask
0200         +process.tpTask
0201         +process.nocqTask
0202         +process.fcdTask
0203         #+process.qie11Task
0204         #ZDC to be removed after 2018 PbPb run
0205         +process.etSumZdcProducer
0206         +process.zdcQIE10Task
0207         +process.hcalMLTask
0208 )
0209 
0210 if isHeavyIon:
0211     process.tasksPath += process.zdcQIE10Task
0212 
0213 process.harvestingPath = cms.Path(
0214     process.hcalOnlineHarvesting
0215 )
0216 
0217 #-------------------------------------
0218 #   Paths/Sequences Definitions
0219 #-------------------------------------
0220 process.preRecoPath = cms.Path(
0221         process.hcalDigis
0222         #*process.castorDigis # not in Run3
0223         *process.emulTPDigis
0224         *process.emulTPDigisNoTDCCut
0225         *process.L1TRawToDigi
0226 )
0227 
0228 process.dqmPath = cms.EndPath(
0229         process.dqmEnv)
0230 process.dqmPath1 = cms.EndPath(
0231         process.dqmSaver
0232         #*process.dqmSaverPB
0233 )
0234 process.qtPath = cms.Path(process.hcalQualityTests)
0235 
0236 process.schedule = cms.Schedule(
0237     process.preRecoPath,
0238     process.tasksPath,
0239     process.qtPath,
0240     process.harvestingPath,
0241     process.dqmPath,
0242     process.dqmPath1
0243 )
0244 
0245 #-------------------------------------
0246 #   Scheduling and Process Customizations
0247 #-------------------------------------
0248 process.options = cms.untracked.PSet(
0249         Rethrow = cms.untracked.vstring(
0250             "ProductNotFound",
0251             "TooManyProducts",
0252             "TooFewProducts"
0253         )
0254 )
0255 process.options.wantSummary = True
0256 
0257 # tracer
0258 #process.Tracer = cms.Service("Tracer")
0259 process = customise(process)
0260 print("Global Tag used:", process.GlobalTag.globaltag.value())
0261 print("Final Source settings:", process.source)