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