File indexing completed on 2025-02-26 04:25:16
0001 import FWCore.ParameterSet.Config as cms
0002 import FWCore.ParameterSet.VarParsing as VarParsing
0003 import os
0004
0005 options = VarParsing.VarParsing ('analysis')
0006
0007 options.register ('runNumber',
0008 100101,
0009 VarParsing.VarParsing.multiplicity.singleton,
0010 VarParsing.VarParsing.varType.int,
0011 "Run Number")
0012
0013 options.register ('daqSourceMode',
0014 'DTH',
0015 VarParsing.VarParsing.multiplicity.singleton,
0016 VarParsing.VarParsing.varType.string,
0017 "DAQ source data mode")
0018
0019 options.register ('buBaseDir',
0020 'ramdisk',
0021 VarParsing.VarParsing.multiplicity.singleton,
0022 VarParsing.VarParsing.varType.string,
0023 "BU base directory")
0024
0025 options.register ('fuBaseDir',
0026 'data',
0027 VarParsing.VarParsing.multiplicity.singleton,
0028 VarParsing.VarParsing.varType.string,
0029 "BU base directory")
0030
0031 options.register ('fffBaseDir',
0032 '.',
0033 VarParsing.VarParsing.multiplicity.singleton,
0034 VarParsing.VarParsing.varType.string,
0035 "FFF base directory")
0036
0037 options.register ('numThreads',
0038 3,
0039 VarParsing.VarParsing.multiplicity.singleton,
0040 VarParsing.VarParsing.varType.int,
0041 "Number of CMSSW threads")
0042
0043 options.register ('numFwkStreams',
0044 2,
0045 VarParsing.VarParsing.multiplicity.singleton,
0046 VarParsing.VarParsing.varType.int,
0047 "Number of CMSSW streams")
0048
0049
0050 options.parseArguments()
0051
0052 cmsswbase = os.path.expandvars("$CMSSW_BASE/")
0053
0054 process = cms.Process("TESTFU")
0055 process.maxEvents = cms.untracked.PSet(
0056 input = cms.untracked.int32(-1)
0057 )
0058
0059 process.options = cms.untracked.PSet(
0060 numberOfThreads = cms.untracked.uint32(options.numThreads),
0061 numberOfStreams = cms.untracked.uint32(options.numFwkStreams),
0062 numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(1)
0063 )
0064 process.MessageLogger = cms.Service("MessageLogger",
0065 cout = cms.untracked.PSet(threshold = cms.untracked.string( "DEBUG" )),
0066 destinations = cms.untracked.vstring( 'cout' ),
0067 debugModules = cms.untracked.vstring('*')
0068 )
0069
0070 process.FastMonitoringService = cms.Service("FastMonitoringService",
0071 sleepTime = cms.untracked.int32(1)
0072 )
0073
0074 process.EvFDaqDirector = cms.Service("EvFDaqDirector",
0075 useFileBroker = cms.untracked.bool(False),
0076 fileBrokerHostFromCfg = cms.untracked.bool(True),
0077 fileBrokerHost = cms.untracked.string("htcp40.cern.ch"),
0078 runNumber = cms.untracked.uint32(options.runNumber),
0079 baseDir = cms.untracked.string(options.fffBaseDir+"/"+options.fuBaseDir),
0080 buBaseDir = cms.untracked.string(options.fffBaseDir+"/"+options.buBaseDir),
0081 directorIsBU = cms.untracked.bool(False),
0082 )
0083
0084 try:
0085 os.makedirs(options.fffBaseDir+"/"+options.fuBaseDir+"/run"+str(options.runNumber).zfill(6))
0086 except Exception as ex:
0087 print(str(ex))
0088 pass
0089
0090 ram_dir_path=options.buBaseDir+"/run"+str(options.runNumber).zfill(6)+"/"
0091
0092 process.source = cms.Source("DAQSource",
0093 testing = cms.untracked.bool(True),
0094 dataMode = cms.untracked.string(options.daqSourceMode),
0095
0096 verifyChecksum = cms.untracked.bool(False),
0097 useL1EventID = cms.untracked.bool(False),
0098 eventChunkBlock = cms.untracked.uint32(2),
0099 eventChunkSize = cms.untracked.uint32(3),
0100 maxChunkSize = cms.untracked.uint32(10),
0101 numBuffers = cms.untracked.uint32(3),
0102 maxBufferedFiles = cms.untracked.uint32(2),
0103 fileListMode = cms.untracked.bool(True),
0104 fileNames = cms.untracked.vstring(
0105 "run000018_ls0001_index000000.raw",
0106 )
0107
0108 )
0109
0110 process.PrescaleService = cms.Service( "PrescaleService",
0111 forceDefault = cms.bool( False ),
0112 prescaleTable = cms.VPSet(
0113 cms.PSet( pathName = cms.string( "p1" ),
0114 prescales = cms.vuint32( 10)
0115 ),
0116 cms.PSet( pathName = cms.string( "p2" ),
0117 prescales = cms.vuint32( 100 )
0118 )
0119 ),
0120 lvl1DefaultLabel = cms.string( "Default" ),
0121 lvl1Labels = cms.vstring( 'Default' )
0122 )
0123
0124 process.filter1 = cms.EDFilter("HLTPrescaler",
0125 L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" )
0126 )
0127 process.filter2 = cms.EDFilter("HLTPrescaler",
0128 L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" )
0129 )
0130
0131 if options.daqSourceMode == "DTH":
0132 sleepTime = 0
0133 else:
0134 sleepTime = 58
0135 process.a = cms.EDAnalyzer("ExceptionGenerator",
0136 defaultAction = cms.untracked.int32(0),
0137 defaultQualifier = cms.untracked.int32(sleepTime))
0138
0139 process.b = cms.EDAnalyzer("ExceptionGenerator",
0140 defaultAction = cms.untracked.int32(0),
0141 defaultQualifier = cms.untracked.int32(5))
0142
0143 process.tcdsRawToDigi = cms.EDProducer("TcdsRawToDigi",
0144 InputLabel = cms.InputTag("rawDataCollector")
0145 )
0146
0147 if options.daqSourceMode == "DTH":
0148
0149 process.p1 = cms.Path(process.a*process.filter1)
0150 sleepTime = 5
0151 else:
0152 process.p1 = cms.Path(process.a*process.tcdsRawToDigi*process.filter1)
0153 sleepTime = 50
0154
0155 process.p2 = cms.Path(process.b*process.filter2)
0156
0157 process.streamA = cms.OutputModule("GlobalEvFOutputModule",
0158 SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'p1' ))
0159 )
0160
0161 process.streamB = cms.OutputModule("GlobalEvFOutputModule",
0162 SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'p2' ))
0163 )
0164
0165 process.streamC = cms.OutputModule("GlobalEvFOutputModule",
0166 SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'p2' ))
0167 )
0168
0169 process.streamD = cms.OutputModule("GlobalEvFOutputModule",
0170 SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'p2' ))
0171 )
0172
0173 process.hltJson = cms.EDAnalyzer("HLTriggerJSONMonitoring")
0174
0175 process.DQMStore = cms.Service( "DQMStore",
0176 verbose = cms.untracked.int32( 0 ),
0177 saveByLumi = cms.untracked.bool( False ),
0178 )
0179
0180 from DQMServices.FileIO.DQMFileSaverPB_cfi import dqmSaver
0181 process.hltDQMFileSaver = dqmSaver
0182
0183
0184 process.daqHistoTest = cms.EDProducer("DaqTestHistograms",
0185 numberOfHistograms = cms.untracked.uint32(50),
0186 lumisectionRange = cms.untracked.uint32(20)
0187 )
0188
0189 process.ep = cms.EndPath(
0190 process.streamA
0191 + process.streamB
0192 + process.streamC
0193
0194 + process.hltJson
0195 + process.daqHistoTest
0196 + process.hltDQMFileSaver
0197 )
0198
0199
0200
0201