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