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 ('buBaseDir',
0014                   'ramdisk', # default value
0015                   VarParsing.VarParsing.multiplicity.singleton,
0016                   VarParsing.VarParsing.varType.string,          # string, int, or float
0017                   "BU base directory")
0018 
0019 options.register ('fuBaseDir',
0020                   'data', # default value
0021                   VarParsing.VarParsing.multiplicity.singleton,
0022                   VarParsing.VarParsing.varType.string,          # string, int, or float
0023                   "BU base directory")
0024 
0025 options.register ('fffBaseDir',
0026                   '.', # default value
0027                   VarParsing.VarParsing.multiplicity.singleton,
0028                   VarParsing.VarParsing.varType.string,          # string, int, or float
0029                   "FFF base directory")
0030 
0031 options.register ('numThreads',
0032                   3, # default value
0033                   VarParsing.VarParsing.multiplicity.singleton,
0034                   VarParsing.VarParsing.varType.int,          # string, int, or float
0035                   "Number of CMSSW threads")
0036 
0037 options.register ('numFwkStreams',
0038                   2, # default value
0039                   VarParsing.VarParsing.multiplicity.singleton,
0040                   VarParsing.VarParsing.varType.int,          # string, int, or float
0041                   "Number of CMSSW streams")
0042 
0043 options.register ('numEventsToWrite',
0044                  -1, # default value
0045                   VarParsing.VarParsing.multiplicity.singleton,
0046                   VarParsing.VarParsing.varType.int,          # string, int, or float
0047                  "Number of Events to process. -1 means all.")
0048 
0049 options.parseArguments()
0050 
0051 cmsswbase = os.path.expandvars("$CMSSW_BASE/")
0052 
0053 process = cms.Process("TESTFU")
0054 process.maxEvents = cms.untracked.PSet(
0055     input = cms.untracked.int32(options.numEventsToWrite)
0056 )
0057 if options.numEventsToWrite == 0:
0058   process.maxEvents.input = 1
0059 
0060 process.options = cms.untracked.PSet(
0061     numberOfThreads = cms.untracked.uint32(options.numThreads),
0062     numberOfStreams = cms.untracked.uint32(options.numFwkStreams),
0063     numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(2)
0064 )
0065 process.MessageLogger = cms.Service("MessageLogger",
0066     cout = cms.untracked.PSet(threshold = cms.untracked.string( "INFO" )),
0067     destinations = cms.untracked.vstring( 'cout' )
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(True),
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 process.source = cms.Source("FedRawDataInputSource",
0091     fileDiscoveryMode = cms.untracked.bool(True),
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 #used in case where we write no events
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 # + process.streamD
0180   + process.hltJson
0181   + process.daqHistoTest
0182   + process.hltDQMFileSaver
0183 )
0184 
0185 
0186 
0187 
0188 
0189 
0190 
0191 
0192 
0193 
0194