Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-04-29 02:41:13

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 #cmsRun runNumber=X ...
0008 options.register ('runNumber',
0009                   18, # default value
0010                   VarParsing.VarParsing.multiplicity.singleton,
0011                   VarParsing.VarParsing.varType.int,
0012                   "Run Number")
0013 
0014 options.register ('daqSourceMode',
0015                   'DTH', # default value
0016                   VarParsing.VarParsing.multiplicity.singleton,
0017                   VarParsing.VarParsing.varType.string,
0018                   "DAQ source data mode")
0019 
0020 options.register ('buBaseDir',
0021                   'ramdisk', # default value
0022                   VarParsing.VarParsing.multiplicity.singleton,
0023                   VarParsing.VarParsing.varType.string,
0024                   "BU base directory")
0025 
0026 options.register ('fuBaseDir',
0027                   'data', # default value
0028                   VarParsing.VarParsing.multiplicity.singleton,
0029                   VarParsing.VarParsing.varType.string,
0030                   "BU base directory")
0031 
0032 options.register ('fffBaseDir',
0033                   '.', # default value
0034                   VarParsing.VarParsing.multiplicity.singleton,
0035                   VarParsing.VarParsing.varType.string,
0036                   "FFF base directory")
0037 
0038 options.register ('numThreads',
0039                   3,
0040                   VarParsing.VarParsing.multiplicity.singleton,
0041                   VarParsing.VarParsing.varType.int,
0042                   "Number of CMSSW threads")
0043 
0044 options.register ('numFwkStreams',
0045                   2,
0046                   VarParsing.VarParsing.multiplicity.singleton,
0047                   VarParsing.VarParsing.varType.int,
0048                   "Number of CMSSW streams")
0049 
0050 options.parseArguments()
0051 
0052 process = cms.Process("DTHDEMO")
0053 process.maxEvents = cms.untracked.PSet(
0054     input = cms.untracked.int32(-1)
0055 )
0056 
0057 process.options = cms.untracked.PSet(
0058     numberOfThreads = cms.untracked.uint32(options.numThreads),
0059     numberOfStreams = cms.untracked.uint32(options.numFwkStreams),
0060     numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(1)
0061 )
0062 process.MessageLogger = cms.Service("MessageLogger",
0063     cout = cms.untracked.PSet(threshold = cms.untracked.string( "INFO" )),
0064     destinations = cms.untracked.vstring( 'cout' )
0065 )
0066 
0067 process.EvFDaqDirector = cms.Service("EvFDaqDirector",
0068     useFileBroker = cms.untracked.bool(True),
0069     fileBrokerHostFromCfg = cms.untracked.bool(False),
0070     fileBrokerHost = cms.untracked.string("htcp40.cern.ch"),
0071     runNumber = cms.untracked.uint32(options.runNumber),
0072     baseDir = cms.untracked.string(options.fffBaseDir+"/"+options.fuBaseDir),
0073     buBaseDir = cms.untracked.string(options.fffBaseDir+"/"+options.buBaseDir),
0074     directorIsBU = cms.untracked.bool(False),
0075 
0076     #read data from single or multiple directories
0077     buBaseDirsAll = cms.untracked.vstring(options.fffBaseDir+"/"+options.buBaseDir),
0078 
0079     #number of sources read per each directory e.g. (2,4,1)
0080     buBaseDirsNumStreams = cms.untracked.vint32(1),
0081 
0082     #list of sources for each directory above in the same order (e.g. 1230,1231, 1255,1256,1257,1258, 1350)
0083     buBaseDirsStreamIDs = cms.untracked.vint32(1230),
0084 
0085     #naming convetion of the file (source, sourceid, fb, fbid, etc. or <empty> for non-DTH mode)
0086     sourceIdentifier = cms.untracked.string("source")
0087 
0088     #example for multiple sources in single directory:
0089     #buBaseDirsNumStreams = cms.untracked.vint32(3),
0090     #buBaseDirsStreamIDs = cms.untracked.vint32(1230),
0091     #buBaseDirsStreamIDs = cms.untracked.vint32(1232),
0092     #buBaseDirsStreamIDs = cms.untracked.vint32(1233),
0093 
0094 )
0095 
0096 process.FastMonitoringService = cms.Service("FastMonitoringService",
0097     sleepTime = cms.untracked.int32(1)
0098 )
0099 
0100 try:
0101   os.makedirs(options.fffBaseDir+"/"+options.fuBaseDir+"/run"+str(options.runNumber).zfill(6))
0102 except Exception as ex:
0103   print(str(ex))
0104   pass
0105 
0106 process.source = cms.Source("DAQSource",
0107     fileDiscoveryMode = cms.untracked.bool(True),
0108     fileListMode = cms.untracked.bool(False),
0109     fileNames = cms.untracked.vstring(),
0110     #testing = cms.untracked.bool(True),
0111     dataMode = cms.untracked.string(options.daqSourceMode),
0112     verifyChecksum = cms.untracked.bool(True if options.daqSourceMode != "DTH" else False),
0113     useL1EventID = cms.untracked.bool(False),
0114     eventChunkBlock = cms.untracked.uint32(2),
0115     eventChunkSize = cms.untracked.uint32(3),
0116     maxChunkSize = cms.untracked.uint32(10),
0117     numBuffers = cms.untracked.uint32(3),
0118     maxBufferedFiles = cms.untracked.uint32(2),
0119 )
0120 
0121 process.out = cms.OutputModule("PoolOutputModule",
0122     fileName = cms.untracked.string(f'file:DTH_dump{options.runNumber}.root'),
0123     outputCommands = cms.untracked.vstring(
0124         "keep *",
0125     ),
0126     compressionAlgorithm = cms.untracked.string("ZSTD"),
0127     compressionLevel = cms.untracked.int32(4),
0128 )
0129 
0130 process.ep = cms.EndPath(
0131   process.out
0132 )