Back to home page

Project CMSSW displayed by LXR

 
 

    


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