Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
import FWCore.ParameterSet.Config as cms
import sys

# Process initialization
from Configuration.Eras.Era_Run3_cff import Run3
process = cms.Process('FED', Run3)

unitTest = False
if 'unitTest=True' in sys.argv:
    unitTest=True

# Logging:
process.MessageLogger = cms.Service(
    'MessageLogger',
    destinations = cms.untracked.vstring('cout'),
    cout = cms.untracked.PSet(threshold = cms.untracked.string('ERROR'))
                                   )

# Global configuration

# DQM Environment:
process.load('DQMServices.Core.DQM_cfg')
process.load('DQM.Integration.config.environment_cfi')
# Global tag:
process.load('DQM.Integration.config.FrontierCondition_GT_cfi')
# Input:
if unitTest:
    process.load("DQM.Integration.config.unittestinputsource_cfi")
    from DQM.Integration.config.unittestinputsource_cfi import options
else:
    process.load('DQM.Integration.config.inputsource_cfi')
    from DQM.Integration.config.inputsource_cfi import options
# Output:
process.dqmEnv.subSystemFolder = 'FED'
process.dqmSaver.tag = 'FED'
process.dqmSaver.runNumber = options.runNumber
# process.dqmSaverPB.tag = 'FED'
# process.dqmSaverPB.runNumber = options.runNumber

# Subsystem sequences

# We will reuse the same foldername for all subsystems:
folder_name = 'FEDIntegrity_EvF'

# L1T sequence:
process.load('DQM.L1TMonitor.L1TStage2FED_cff') # stage2 L1T
path = 'L1T/%s/' % folder_name
process.l1tStage2Fed.FEDDirName = cms.untracked.string(path)
# Pixel sequence:
process.load('Configuration.StandardSequences.MagneticField_cff')
process.load('EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi')
process.siPixelDigis.IncludeErrors = True
process.load('DQM.SiPixelMonitorRawData.SiPixelMonitorHLT_cfi')
process.SiPixelHLTSource.saveFile = False
process.SiPixelHLTSource.slowDown = False
path = 'Pixel/%s/' % folder_name
process.SiPixelHLTSource.DirName = path
process.load('Configuration.StandardSequences.GeometryRecoDB_cff') # ???
# SiStrip sequence:
process.load('DQM.SiStripMonitorHardware.siStripFEDCheck_cfi')
path = 'SiStrip/%s/' % folder_name
process.siStripFEDCheck.DirName = path
# ECAL Preshower sequence:
process.load('EventFilter.ESRawToDigi.esRawToDigi_cfi')
process.load('DQM.EcalPreshowerMonitorModule.ESFEDIntegrityTask_cfi')
process.ecalPreshowerFEDIntegrityTask.FEDDirName = folder_name
# ECAL sequence --> Both ECAL Barrel and ECAL Endcap:
process.load('Geometry.EcalMapping.EcalMapping_cfi')
process.load('Geometry.EcalMapping.EcalMappingRecord_cfi')
from EventFilter.EcalRawToDigi.EcalUnpackerData_cfi import ecalEBunpacker
process.ecalDigis = ecalEBunpacker.clone()
process.load('DQM.EcalMonitorTasks.EcalFEDMonitor_cfi')
process.ecalFEDMonitor.folderName = folder_name
# HCAL sequence:
process.load('EventFilter.HcalRawToDigi.HcalRawToDigi_cfi')
process.load('DQM.HcalTasks.hcalFEDIntegrityTask_cfi')
path = 'Hcal/%s/' % folder_name
process.hcalFEDIntegrityTask.DirName = path
# DT sequence:
process.load('DQM.DTMonitorModule.dtDataIntegrityTask_EvF_cff')
process.dtDataIntegrityTask.processingMode = 'SM'
path = 'DT/%s/' % folder_name
process.dtDataIntegrityTask.fedIntegrityFolder = path
process.dtDataIntegrityTask.dtFEDlabel     = 'dtunpacker'
# RPC sequence:
process.load('EventFilter.RPCRawToDigi.rpcUnpacker_cfi')
process.load('DQM.RPCMonitorClient.RPCFEDIntegrity_cfi')
path = 'RPC/%s/' % folder_name
process.rpcFEDIntegrity.RPCPrefixDir = path
# CSC sequence:
process.load('DQM.CSCMonitorModule.csc_hlt_dqm_sourceclient_cfi')
path = 'CSC/%s/' % folder_name
process.cscDQMEvF.EventProcessor.FOLDER_EMU = path

# Setting raw data collection label for all subsytem modules, depending on run type:
if (process.runType.getRunType() == process.runType.hi_run):
    process.l1tStage2Fed.rawTag = 'rawDataRepacker'
    process.siPixelDigis.InputLabel = 'rawDataRepacker'
    process.SiPixelHLTSource.RawInput = 'rawDataRepacker'
    process.siStripFEDCheck.RawDataTag = 'rawDataRepacker'
    process.esRawToDigi.sourceTag = 'rawDataRepacker'
    process.ecalPreshowerFEDIntegrityTask.FEDRawDataCollection = 'rawDataRepacker'
    process.ecalDigis.InputLabel = 'rawDataRepacker'
    process.ecalFEDMonitor.FEDRawDataCollection = 'rawDataRepacker'
    process.hcalFEDIntegrityTask.tagFEDs = 'rawDataRepacker'
    process.hcalDigis.InputLabel = 'rawDataRepacker'
    process.dtunpacker.inputLabel = 'rawDataRepacker'
    process.rpcunpacker.InputLabel = 'rawDataRepacker'
    process.cscDQMEvF.InputObjects = 'rawDataRepacker'
else:
    process.l1tStage2Fed.rawTag = 'rawDataCollector'
    process.siPixelDigis.InputLabel = 'rawDataCollector'
    process.SiPixelHLTSource.RawInput = 'rawDataCollector'
    process.siStripFEDCheck.RawDataTag = 'rawDataCollector'
    process.esRawToDigi.sourceTag = 'rawDataCollector'
    process.ecalPreshowerFEDIntegrityTask.FEDRawDataCollection = 'rawDataCollector'
    process.ecalDigis.InputLabel = 'rawDataCollector'
    process.ecalFEDMonitor.FEDRawDataCollection = 'rawDataCollector'
    process.hcalFEDIntegrityTask.tagFEDs = 'rawDataCollector'
    process.hcalDigis.InputLabel = 'rawDataCollector'
    process.dtunpacker.inputLabel = 'rawDataCollector'
    process.rpcunpacker.InputLabel = 'rawDataCollector'
    process.cscDQMEvF.InputObjects = 'rawDataCollector'

# Finaly the DQM FED sequence itself
process.load('DQMServices.Components.DQMFEDIntegrityClient_cff')
process.dqmFEDIntegrity.fedFolderName = folder_name

# Sequences, paths and schedules:

# Modules for the FED
process.FEDModulesPath = cms.Path(
			                        process.l1tStage2Fed
			                      + process.siPixelDigis
                                  + process.SiPixelHLTSource
                                  + process.siStripFEDCheck
			                      + process.esRawToDigi
                                  + process.ecalPreshowerFEDIntegrityTask
 			                      + process.ecalDigis
                                  + process.ecalFEDMonitor
			                      + process.hcalDigis
			                      + process.hcalFEDIntegrityTask
                                  + process.cscDQMEvF
 			                      + process.dtunpacker
                                  + process.dtDataIntegrityTask
			                      + process.rpcunpacker
                                  + process.rpcFEDIntegrity

			                      + process.dqmFEDIntegrityClient 
                                 )

# Standard DQM modules
process.DQMmodulesPath = cms.Path(
                                    process.dqmEnv
                                  + process.dqmSaver
                                  #+ process.dqmSaverPB
                                 )

process.schedule = cms.Schedule(
                                 process.FEDModulesPath, 
                                 process.DQMmodulesPath,
                               )

# Finaly: DQM process customizations
from DQM.Integration.config.online_customizations_cfi import *
process = customise(process)
print("Global Tag used:", process.GlobalTag.globaltag.value())
print("Final Source settings:", process.source)