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 '',
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( "INFO" )),
0066 destinations = cms.untracked.vstring( 'cout' )
0067 )
0068
0069 process.FastMonitoringService = cms.Service("FastMonitoringService",
0070 sleepTime = cms.untracked.int32(1)
0071 )
0072
0073 process.EvFDaqDirector = cms.Service("EvFDaqDirector",
0074 useFileBroker = cms.untracked.bool(False),
0075 fileBrokerHostFromCfg = cms.untracked.bool(False),
0076 fileBrokerHost = cms.untracked.string("htcp40.cern.ch"),
0077 runNumber = cms.untracked.uint32(options.runNumber),
0078 baseDir = cms.untracked.string(options.fffBaseDir+"/"+options.fuBaseDir),
0079 buBaseDir = cms.untracked.string(options.fffBaseDir+"/"+options.buBaseDir),
0080 directorIsBU = cms.untracked.bool(False),
0081 )
0082
0083 try:
0084 os.makedirs(options.fffBaseDir+"/"+options.fuBaseDir+"/run"+str(options.runNumber).zfill(6))
0085 except Exception as ex:
0086 print(str(ex))
0087 pass
0088
0089 ram_dir_path=options.buBaseDir+"/run"+str(options.runNumber).zfill(6)+"/"
0090
0091 process.source = cms.Source("DAQSource",
0092 testing = cms.untracked.bool(True),
0093 dataMode = cms.untracked.string(options.daqSourceMode),
0094 verifyChecksum = cms.untracked.bool(True if options.daqSourceMode != "DTH" else False),
0095 useL1EventID = cms.untracked.bool(False),
0096 eventChunkBlock = cms.untracked.uint32(2),
0097 eventChunkSize = cms.untracked.uint32(3),
0098 maxChunkSize = cms.untracked.uint32(10),
0099 numBuffers = cms.untracked.uint32(3),
0100 maxBufferedFiles = cms.untracked.uint32(2),
0101 fileListMode = cms.untracked.bool(True),
0102 fileNames = cms.untracked.vstring(
0103 ram_dir_path + "run" + str(options.runNumber) + "_ls0001_index000000.raw",
0104 ram_dir_path + "run" + str(options.runNumber) + "_ls0001_index000001.raw",
0105 ram_dir_path + "run" + str(options.runNumber) + "_ls0002_index000000.raw",
0106 ram_dir_path + "run" + str(options.runNumber) + "_ls0002_index000001.raw"
0107 )
0108
0109 )
0110
0111 process.PrescaleService = cms.Service( "PrescaleService",
0112 forceDefault = cms.bool( False ),
0113 prescaleTable = cms.VPSet(
0114 cms.PSet( pathName = cms.string( "p1" ),
0115 prescales = cms.vuint32( 10)
0116 ),
0117 cms.PSet( pathName = cms.string( "p2" ),
0118 prescales = cms.vuint32( 100 )
0119 )
0120 ),
0121 lvl1DefaultLabel = cms.string( "Default" ),
0122 lvl1Labels = cms.vstring( 'Default' )
0123 )
0124
0125 process.filter1 = cms.EDFilter("HLTPrescaler",
0126 L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" )
0127 )
0128 process.filter2 = cms.EDFilter("HLTPrescaler",
0129 L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" )
0130 )
0131
0132 sleepTime = 5
0133 process.a = cms.EDAnalyzer("ExceptionGenerator",
0134 defaultAction = cms.untracked.int32(0),
0135 defaultQualifier = cms.untracked.int32(sleepTime))
0136
0137 process.b = cms.EDAnalyzer("ExceptionGenerator",
0138 defaultAction = cms.untracked.int32(0),
0139 defaultQualifier = cms.untracked.int32(5))
0140
0141 process.tcdsRawToDigi = cms.EDProducer("TcdsRawToDigi",
0142 InputLabel = cms.InputTag("rawDataCollector")
0143 )
0144
0145 if options.daqSourceMode == "DTH":
0146 process.p1 = cms.Path(process.a*process.filter1)
0147 else:
0148 process.p1 = cms.Path(process.a*process.tcdsRawToDigi*process.filter1)
0149
0150 process.p2 = cms.Path(process.b*process.filter2)
0151
0152 process.streamA = cms.OutputModule("GlobalEvFOutputModule",
0153 SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'p1' ))
0154 )
0155
0156 process.streamB = cms.OutputModule("GlobalEvFOutputModule",
0157 SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'p2' ))
0158 )
0159
0160 process.streamC = cms.OutputModule("GlobalEvFOutputModule",
0161 SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'p2' ))
0162 )
0163
0164 process.streamD = cms.OutputModule("GlobalEvFOutputModule",
0165 SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'p2' ))
0166 )
0167
0168 process.hltJson = cms.EDAnalyzer("HLTriggerJSONMonitoring")
0169
0170 process.DQMStore = cms.Service( "DQMStore",
0171 verbose = cms.untracked.int32( 0 ),
0172 saveByLumi = cms.untracked.bool( False ),
0173 )
0174
0175 from DQMServices.FileIO.DQMFileSaverPB_cfi import dqmSaver
0176 process.hltDQMFileSaver = dqmSaver
0177
0178
0179 process.daqHistoTest = cms.EDProducer("DaqTestHistograms",
0180 numberOfHistograms = cms.untracked.uint32(50),
0181 lumisectionRange = cms.untracked.uint32(20)
0182 )
0183
0184 process.ep = cms.EndPath(
0185 process.streamA
0186 + process.streamB
0187 + process.streamC
0188
0189 + process.hltJson
0190 + process.daqHistoTest
0191 + process.hltDQMFileSaver
0192 )