File indexing completed on 2024-11-25 02:29:34
0001 import FWCore.ParameterSet.Config as cms
0002 import FWCore.ParameterSet.VarParsing as VarParsing
0003 import os, sys
0004
0005 options = VarParsing.VarParsing ("analysis")
0006
0007 options.register ("runNumber",
0008 368636,
0009 VarParsing.VarParsing.multiplicity.singleton,
0010 VarParsing.VarParsing.varType.int,
0011 "Run Number")
0012
0013 options.register ("daqSourceMode",
0014 "ScoutingRun3",
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 "/tmp",
0033 VarParsing.VarParsing.multiplicity.singleton,
0034 VarParsing.VarParsing.varType.string,
0035 "FFF base directory")
0036
0037 options.register ("numThreads",
0038 8,
0039 VarParsing.VarParsing.multiplicity.singleton,
0040 VarParsing.VarParsing.varType.int,
0041 "Number of CMSSW threads")
0042
0043 options.register ("numFwkStreams",
0044 8,
0045 VarParsing.VarParsing.multiplicity.singleton,
0046 VarParsing.VarParsing.varType.int,
0047 "Number of CMSSW streams")
0048
0049 options.parseArguments()
0050
0051 cmsswbase = os.path.expandvars("$CMSSW_BASE/")
0052
0053 process = cms.Process("SCPU")
0054 process.maxEvents = cms.untracked.PSet(
0055 input = cms.untracked.int32(-1)
0056 )
0057
0058 process.options = cms.untracked.PSet(
0059 wantSummary = cms.untracked.bool(True),
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(
0066 threshold = cms.untracked.string( "WARNING" )
0067 ),
0068 destinations = cms.untracked.vstring( "cout" ),
0069 )
0070
0071 process.FastMonitoringService = cms.Service("FastMonitoringService",
0072 sleepTime = cms.untracked.int32(1)
0073 )
0074
0075 process.Timing = cms.Service("Timing",
0076 summaryOnly = cms.untracked.bool(True),
0077 useJobReport = cms.untracked.bool(True)
0078 )
0079
0080 process.EvFDaqDirector = cms.Service("EvFDaqDirector",
0081 useFileBroker = cms.untracked.bool(False),
0082 buBaseDirsAll = cms.untracked.vstring(
0083 options.fffBaseDir+"/"+options.buBaseDir
0084 ),
0085 buBaseDirsNumStreams = cms.untracked.vint32(
0086 2
0087 ),
0088 fileBrokerHostFromCfg = cms.untracked.bool(True),
0089 fileBrokerHost = cms.untracked.string("htcp40.cern.ch"),
0090 runNumber = cms.untracked.uint32(options.runNumber),
0091 baseDir = cms.untracked.string(options.fffBaseDir+"/"+options.fuBaseDir),
0092 buBaseDir = cms.untracked.string(options.fffBaseDir+"/"+options.buBaseDir),
0093 directorIsBU = cms.untracked.bool(False),
0094 )
0095
0096 try:
0097 os.makedirs(options.fffBaseDir+"/"+options.fuBaseDir+"/run"+str(options.runNumber).zfill(6))
0098 except Exception as ex:
0099 print(str(ex))
0100 pass
0101
0102 buDir = options.fffBaseDir+"/"+options.buBaseDir+("/run%06d" % options.runNumber)
0103 if not os.path.isdir(buDir):
0104 os.makedirs(buDir)
0105 os.system("touch " + buDir + "/" + "fu.lock")
0106
0107 flist = [
0108 buDir+"/" + "run" + str(options.runNumber) + "_ls0340_index000028.raw"
0109 ]
0110
0111 process.source = cms.Source("DAQSource",
0112 testing = cms.untracked.bool(True),
0113 dataMode = cms.untracked.string(options.daqSourceMode),
0114 verifyChecksum = cms.untracked.bool(False),
0115 useL1EventID = cms.untracked.bool(False),
0116 eventChunkBlock = cms.untracked.uint32(64),
0117 eventChunkSize = cms.untracked.uint32(128),
0118 maxChunkSize = cms.untracked.uint32(256),
0119 numBuffers = cms.untracked.uint32(2),
0120 maxBufferedFiles = cms.untracked.uint32(2),
0121 fileListMode = cms.untracked.bool(True),
0122 fileNames = cms.untracked.vstring(*flist)
0123 )
0124
0125 import EventFilter.L1ScoutingRawToDigi.ScGMTRawToDigi_cfi
0126 process.GmtUnpacker = EventFilter.L1ScoutingRawToDigi.ScGMTRawToDigi_cfi.ScGmtUnpacker.clone()
0127
0128 import EventFilter.L1ScoutingRawToDigi.ScCaloRawToDigi_cfi
0129 process.CaloUnpacker = EventFilter.L1ScoutingRawToDigi.ScCaloRawToDigi_cfi.ScCaloUnpacker.clone()
0130
0131 rawToDigiTask = cms.Task(
0132 process.GmtUnpacker,process.CaloUnpacker
0133 )
0134
0135 process.p = cms.Path(rawToDigiTask)
0136
0137 process.outputZB = cms.OutputModule("PoolOutputModule",
0138 fileName = cms.untracked.string('file:' + options.fffBaseDir + '/PoolOutputTest.root'),
0139 outputCommands = cms.untracked.vstring(
0140 "drop *",
0141 "keep *_GmtUnpacker_*_*",
0142 "keep *_CaloUnpacker_*_*"
0143 ),
0144
0145
0146 )
0147
0148 process.ep = cms.EndPath(
0149 process.outputZB
0150 )