Back to home page

Project CMSSW displayed by LXR

 
 

    


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     #compressionAlgorithm = cms.untracked.string("ZSTD"),
0146     #compressionLevel = cms.untracked.int32(4)
0147 )
0148 
0149 process.ep = cms.EndPath(
0150     process.outputZB
0151 )