File indexing completed on 2024-04-06 12:03:31
0001
0002 """
0003 _Repack_
0004
0005 Module that generates standard repack configurations
0006
0007 """
0008 import copy
0009 import FWCore.ParameterSet.Config as cms
0010
0011
0012 def repackProcess(**args):
0013 """
0014 _repackProcess_
0015
0016 Creates and returns a repack process
0017
0018 supported options:
0019
0020 - outputs : defines output modules
0021
0022 """
0023 from Configuration.EventContent.EventContent_cff import RAWEventContent
0024 from Configuration.EventContent.EventContent_cff import HLTSCOUTEventContent
0025 from Configuration.EventContent.EventContent_cff import L1SCOUTEventContent
0026 process = cms.Process("REPACK")
0027 process.load("FWCore.MessageLogger.MessageLogger_cfi")
0028
0029 process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) )
0030
0031 process.configurationMetadata = cms.untracked.PSet(
0032 name = cms.untracked.string("repack-config"),
0033 version = cms.untracked.string("none"),
0034 annotation = cms.untracked.string("auto generated configuration")
0035 )
0036
0037 process.options = cms.untracked.PSet(
0038 Rethrow = cms.untracked.vstring("ProductNotFound","TooManyProducts","TooFewProducts"),
0039 wantSummary = cms.untracked.bool(False)
0040 )
0041
0042 process.source = cms.Source(
0043 "NewEventStreamFileReader",
0044 fileNames = cms.untracked.vstring()
0045 )
0046
0047 defaultDataTier = "RAW"
0048
0049
0050 dataTier = args.get('dataTier', defaultDataTier)
0051 eventContent = RAWEventContent
0052 if dataTier == "HLTSCOUT":
0053 eventContent = HLTSCOUTEventContent
0054 elif dataTier == "L1SCOUT":
0055 eventContent = L1SCOUTEventContent
0056
0057 outputs = args.get('outputs', [])
0058
0059 if len(outputs) > 0:
0060 process.outputPath = cms.EndPath()
0061
0062 for output in outputs:
0063
0064 moduleLabel = output['moduleLabel']
0065 selectEvents = output.get('selectEvents', None)
0066 maxSize = output.get('maxSize', None)
0067
0068 outputModule = cms.OutputModule(
0069 "PoolOutputModule",
0070 compressionAlgorithm=copy.copy(eventContent.compressionAlgorithm),
0071 compressionLevel=copy.copy(eventContent.compressionLevel),
0072 fileName = cms.untracked.string("%s.root" % moduleLabel)
0073 )
0074
0075
0076 outputModule.dataset = cms.untracked.PSet(dataTier = cms.untracked.string(dataTier))
0077
0078 if maxSize != None:
0079 outputModule.maxSize = cms.untracked.int32(maxSize)
0080
0081 if selectEvents != None:
0082 outputModule.SelectEvents = cms.untracked.PSet(
0083 SelectEvents = cms.vstring(selectEvents)
0084 )
0085
0086 setattr(process, moduleLabel, outputModule)
0087
0088 process.outputPath += outputModule
0089
0090 return process
0091
0092
0093