Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-02-26 04:25:16

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 options.register ('runNumber',
0008                   100101, # default value
0009                   VarParsing.VarParsing.multiplicity.singleton,
0010                   VarParsing.VarParsing.varType.int,          # string, int, or float
0011                   "Run Number")
0012 
0013 options.register ('daqSourceMode',
0014                   'DTH', # default value
0015                   VarParsing.VarParsing.multiplicity.singleton,
0016                   VarParsing.VarParsing.varType.string,          # string, int, or float
0017                   "DAQ source data mode")
0018 
0019 options.register ('buBaseDir',
0020                   'ramdisk', # default value
0021                   VarParsing.VarParsing.multiplicity.singleton,
0022                   VarParsing.VarParsing.varType.string,          # string, int, or float
0023                   "BU base directory")
0024 
0025 options.register ('fuBaseDir',
0026                   'data', # default value
0027                   VarParsing.VarParsing.multiplicity.singleton,
0028                   VarParsing.VarParsing.varType.string,          # string, int, or float
0029                   "BU base directory")
0030 
0031 options.register ('fffBaseDir',
0032                   '.', # default value
0033                   VarParsing.VarParsing.multiplicity.singleton,
0034                   VarParsing.VarParsing.varType.string,          # string, int, or float
0035                   "FFF base directory")
0036 
0037 options.register ('numThreads',
0038                   3, # default value
0039                   VarParsing.VarParsing.multiplicity.singleton,
0040                   VarParsing.VarParsing.varType.int,          # string, int, or float
0041                   "Number of CMSSW threads")
0042 
0043 options.register ('numFwkStreams',
0044                   2, # default value
0045                   VarParsing.VarParsing.multiplicity.singleton,
0046                   VarParsing.VarParsing.varType.int,          # string, int, or float
0047                   "Number of CMSSW streams")
0048 
0049 
0050 options.parseArguments()
0051 
0052 cmsswbase = os.path.expandvars("$CMSSW_BASE/")
0053 
0054 process = cms.Process("TESTFU")
0055 process.maxEvents = cms.untracked.PSet(
0056     input = cms.untracked.int32(-1)
0057 )
0058 
0059 process.options = cms.untracked.PSet(
0060     numberOfThreads = cms.untracked.uint32(options.numThreads),
0061     numberOfStreams = cms.untracked.uint32(options.numFwkStreams),
0062     numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(1) # ShmStreamConsumer requires synchronization at LuminosityBlock boundaries
0063 )
0064 process.MessageLogger = cms.Service("MessageLogger",
0065     cout = cms.untracked.PSet(threshold = cms.untracked.string( "DEBUG" )),
0066     destinations = cms.untracked.vstring( 'cout' ),
0067     debugModules = cms.untracked.vstring('*')
0068 )
0069 
0070 process.FastMonitoringService = cms.Service("FastMonitoringService",
0071     sleepTime = cms.untracked.int32(1)
0072 )
0073 
0074 process.EvFDaqDirector = cms.Service("EvFDaqDirector",
0075     useFileBroker = cms.untracked.bool(False),
0076     fileBrokerHostFromCfg = cms.untracked.bool(True),
0077     fileBrokerHost = cms.untracked.string("htcp40.cern.ch"),
0078     runNumber = cms.untracked.uint32(options.runNumber),
0079     baseDir = cms.untracked.string(options.fffBaseDir+"/"+options.fuBaseDir),
0080     buBaseDir = cms.untracked.string(options.fffBaseDir+"/"+options.buBaseDir),
0081     directorIsBU = cms.untracked.bool(False),
0082 )
0083 
0084 try:
0085   os.makedirs(options.fffBaseDir+"/"+options.fuBaseDir+"/run"+str(options.runNumber).zfill(6))
0086 except Exception as ex:
0087   print(str(ex))
0088   pass
0089 
0090 ram_dir_path=options.buBaseDir+"/run"+str(options.runNumber).zfill(6)+"/"
0091 
0092 process.source = cms.Source("DAQSource",
0093     testing = cms.untracked.bool(True),
0094     dataMode = cms.untracked.string(options.daqSourceMode),
0095     #verifyChecksum = cms.untracked.bool(True),
0096     verifyChecksum = cms.untracked.bool(False),
0097     useL1EventID = cms.untracked.bool(False),
0098     eventChunkBlock = cms.untracked.uint32(2),
0099     eventChunkSize = cms.untracked.uint32(3),
0100     maxChunkSize = cms.untracked.uint32(10),
0101     numBuffers = cms.untracked.uint32(3),
0102     maxBufferedFiles = cms.untracked.uint32(2),
0103     fileListMode = cms.untracked.bool(True),
0104     fileNames = cms.untracked.vstring(
0105         "run000018_ls0001_index000000.raw",
0106     )
0107 
0108 )
0109 
0110 process.PrescaleService = cms.Service( "PrescaleService",
0111                                        forceDefault = cms.bool( False ),
0112                                        prescaleTable = cms.VPSet( 
0113                                          cms.PSet(  pathName = cms.string( "p1" ),
0114                                          prescales = cms.vuint32( 10)
0115                                          ),
0116                                          cms.PSet(  pathName = cms.string( "p2" ),
0117                                          prescales = cms.vuint32( 100 )
0118                                          )
0119                                        ),
0120                                        lvl1DefaultLabel = cms.string( "Default" ),
0121                                        lvl1Labels = cms.vstring( 'Default' )
0122                                        )
0123 
0124 process.filter1 = cms.EDFilter("HLTPrescaler",
0125                                L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" )
0126                                )
0127 process.filter2 = cms.EDFilter("HLTPrescaler",
0128                                L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" )
0129                                )
0130 
0131 if options.daqSourceMode == "DTH":
0132     sleepTime = 0
0133 else:
0134     sleepTime = 58
0135 process.a = cms.EDAnalyzer("ExceptionGenerator",
0136     defaultAction = cms.untracked.int32(0),
0137     defaultQualifier = cms.untracked.int32(sleepTime))
0138 
0139 process.b = cms.EDAnalyzer("ExceptionGenerator",
0140     defaultAction = cms.untracked.int32(0),
0141     defaultQualifier = cms.untracked.int32(5))
0142 
0143 process.tcdsRawToDigi = cms.EDProducer("TcdsRawToDigi",
0144     InputLabel = cms.InputTag("rawDataCollector")
0145 )
0146 
0147 if options.daqSourceMode == "DTH":
0148 
0149     process.p1 = cms.Path(process.a*process.filter1)
0150     sleepTime = 5
0151 else:
0152     process.p1 = cms.Path(process.a*process.tcdsRawToDigi*process.filter1)
0153     sleepTime = 50
0154 
0155 process.p2 = cms.Path(process.b*process.filter2)
0156 
0157 process.streamA = cms.OutputModule("GlobalEvFOutputModule",
0158     SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'p1' ))
0159 )
0160 
0161 process.streamB = cms.OutputModule("GlobalEvFOutputModule",
0162     SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'p2' ))
0163 )
0164 
0165 process.streamC = cms.OutputModule("GlobalEvFOutputModule",
0166     SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'p2' ))
0167 )
0168 
0169 process.streamD = cms.OutputModule("GlobalEvFOutputModule",
0170     SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'p2' ))
0171 )
0172 
0173 process.hltJson = cms.EDAnalyzer("HLTriggerJSONMonitoring")
0174 
0175 process.DQMStore = cms.Service( "DQMStore",
0176     verbose = cms.untracked.int32( 0 ),
0177     saveByLumi = cms.untracked.bool( False ),
0178 )
0179 
0180 from DQMServices.FileIO.DQMFileSaverPB_cfi import dqmSaver
0181 process.hltDQMFileSaver = dqmSaver
0182 
0183 
0184 process.daqHistoTest = cms.EDProducer("DaqTestHistograms",
0185     numberOfHistograms = cms.untracked.uint32(50),
0186     lumisectionRange =  cms.untracked.uint32(20)
0187 )
0188 
0189 process.ep = cms.EndPath(
0190   process.streamA
0191   + process.streamB
0192   + process.streamC
0193 # + process.streamD
0194   + process.hltJson
0195   + process.daqHistoTest
0196   + process.hltDQMFileSaver
0197 )
0198 
0199 #process.MessageLogger.cout.DEBUG = cms.untracked.PSet(
0200 #    limit = cms.untracked.int32(-1)  # No message limit
0201 #)