File indexing completed on 2024-05-31 04:19:32
0001 from __future__ import print_function
0002 import FWCore.ParameterSet.Config as cms
0003 import FWCore.ParameterSet.VarParsing as VarParsing
0004 import os
0005
0006 options = VarParsing.VarParsing ('analysis')
0007
0008 options.register ('runNumber',
0009 100101,
0010 VarParsing.VarParsing.multiplicity.singleton,
0011 VarParsing.VarParsing.varType.int,
0012 "Run Number")
0013
0014 options.register ('buBaseDir',
0015 'ramdisk',
0016 VarParsing.VarParsing.multiplicity.singleton,
0017 VarParsing.VarParsing.varType.string,
0018 "BU base directory")
0019
0020 options.register ('fuBaseDir',
0021 'data',
0022 VarParsing.VarParsing.multiplicity.singleton,
0023 VarParsing.VarParsing.varType.string,
0024 "BU base directory")
0025
0026 options.register ('fffBaseDir',
0027 '.',
0028 VarParsing.VarParsing.multiplicity.singleton,
0029 VarParsing.VarParsing.varType.string,
0030 "FFF base directory")
0031
0032 options.register ('numThreads',
0033 3,
0034 VarParsing.VarParsing.multiplicity.singleton,
0035 VarParsing.VarParsing.varType.int,
0036 "Number of CMSSW threads")
0037
0038 options.register ('numFwkStreams',
0039 2,
0040 VarParsing.VarParsing.multiplicity.singleton,
0041 VarParsing.VarParsing.varType.int,
0042 "Number of CMSSW streams")
0043
0044 options.register ('numEventsToWrite',
0045 -1,
0046 VarParsing.VarParsing.multiplicity.singleton,
0047 VarParsing.VarParsing.varType.int,
0048 "Number of Events to process. -1 means all.")
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(options.numEventsToWrite)
0057 )
0058 if options.numEventsToWrite == 0:
0059 process.maxEvents.input = 1
0060
0061 process.options = cms.untracked.PSet(
0062 numberOfThreads = cms.untracked.uint32(options.numThreads),
0063 numberOfStreams = cms.untracked.uint32(options.numFwkStreams),
0064 numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(2)
0065 )
0066 process.MessageLogger = cms.Service("MessageLogger",
0067 cout = cms.untracked.PSet(threshold = cms.untracked.string( "INFO" )),
0068 destinations = cms.untracked.vstring( 'cout' )
0069 )
0070
0071 process.FastMonitoringService = cms.Service("FastMonitoringService",
0072 sleepTime = cms.untracked.int32(1)
0073 )
0074
0075 process.EvFDaqDirector = cms.Service("EvFDaqDirector",
0076 useFileBroker = cms.untracked.bool(False),
0077 fileBrokerHostFromCfg = cms.untracked.bool(True),
0078 fileBrokerHost = cms.untracked.string("htcp40.cern.ch"),
0079 runNumber = cms.untracked.uint32(options.runNumber),
0080 baseDir = cms.untracked.string(options.fffBaseDir+"/"+options.fuBaseDir),
0081 buBaseDir = cms.untracked.string(options.fffBaseDir+"/"+options.buBaseDir),
0082 directorIsBU = cms.untracked.bool(False)
0083 )
0084
0085 try:
0086 os.makedirs(options.fffBaseDir+"/"+options.fuBaseDir+"/run"+str(options.runNumber).zfill(6))
0087 except Exception as ex:
0088 print(str(ex))
0089 pass
0090
0091 process.source = cms.Source("FedRawDataInputSource",
0092 getLSFromFilename = cms.untracked.bool(True),
0093 verifyChecksum = cms.untracked.bool(True),
0094 useL1EventID = cms.untracked.bool(False),
0095 eventChunkSize = cms.untracked.uint32(8),
0096 eventChunkBlock = cms.untracked.uint32(8),
0097 numBuffers = cms.untracked.uint32(2),
0098 maxBufferedFiles = cms.untracked.uint32(2)
0099 )
0100
0101 process.PrescaleService = cms.Service( "PrescaleService",
0102 forceDefault = cms.bool( False ),
0103 prescaleTable = cms.VPSet(
0104 cms.PSet( pathName = cms.string( "HLT_Physics" ),
0105 prescales = cms.vuint32( 10)
0106 ),
0107 cms.PSet( pathName = cms.string( "HLT_Muon" ),
0108 prescales = cms.vuint32( 100 )
0109 )
0110 ),
0111 lvl1DefaultLabel = cms.string( "Default" ),
0112 lvl1Labels = cms.vstring( 'Default' )
0113 )
0114
0115
0116 process.pre = cms.EDFilter("PrescaleEventFilter", offset = cms.uint32(0), prescale=cms.uint32(1))
0117 if options.numEventsToWrite:
0118 process.pre.offset = 2
0119 process.pre.prescale = 4
0120
0121 process.filter1 = cms.EDFilter("HLTPrescaler",
0122 L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" )
0123 )
0124 process.filter2 = cms.EDFilter("HLTPrescaler",
0125 L1GtReadoutRecordTag = cms.InputTag( "hltGtDigis" )
0126 )
0127
0128 process.a = cms.EDAnalyzer("ExceptionGenerator",
0129 defaultAction = cms.untracked.int32(0),
0130 defaultQualifier = cms.untracked.int32(58))
0131
0132 process.b = cms.EDAnalyzer("ExceptionGenerator",
0133 defaultAction = cms.untracked.int32(0),
0134 defaultQualifier = cms.untracked.int32(5))
0135
0136
0137 import EventFilter.OnlineMetaDataRawToDigi.tcdsRawToDigi_cfi
0138 process.tcdsRawToDigi = EventFilter.OnlineMetaDataRawToDigi.tcdsRawToDigi_cfi.tcdsRawToDigi.clone()
0139 process.tcdsRawToDigi.InputLabel = cms.InputTag("rawDataCollector")
0140
0141 process.HLT_Physics = cms.Path(process.a*process.tcdsRawToDigi*process.filter1*process.pre)
0142 process.HLT_Muon = cms.Path(process.b*process.filter2*process.pre)
0143
0144 process.streamA = cms.OutputModule("GlobalEvFOutputModule",
0145 SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'HLT_Physics' ))
0146 )
0147
0148 process.streamB = cms.OutputModule("GlobalEvFOutputModule",
0149 SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'HLT_Muon' ))
0150 )
0151
0152 process.streamDQM = cms.OutputModule("GlobalEvFOutputModule",
0153 SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'HLT_Physics', 'HLT_Muon' ))
0154 )
0155
0156 process.streamD = cms.OutputModule("EventStreamFileWriter",
0157 SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring( 'HLT_Muon' ))
0158 )
0159
0160 process.hltJson = cms.EDAnalyzer("HLTriggerJSONMonitoring")
0161
0162 process.DQMStore = cms.Service( "DQMStore",
0163 verbose = cms.untracked.int32( 0 ),
0164 saveByLumi = cms.untracked.bool( False ),
0165 )
0166
0167 from DQMServices.FileIO.DQMFileSaverPB_cfi import dqmSaver
0168 process.hltDQMFileSaver = dqmSaver
0169
0170 process.daqHistoTest = cms.EDProducer("DaqTestHistograms",
0171 numberOfHistograms = cms.untracked.uint32(50),
0172 lumisectionRange = cms.untracked.uint32(20)
0173 )
0174
0175 process.ep = cms.EndPath(
0176 process.streamA
0177 + process.streamB
0178 + process.streamDQM
0179
0180 + process.hltJson
0181 + process.daqHistoTest
0182 + process.hltDQMFileSaver
0183 )
0184
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194