Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:03:31

0001 #!/usr/bin/env python3
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     # Should we default to something if dataTier arg isn't provided?
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