File indexing completed on 2024-04-06 12:12:40
0001 import FWCore.ParameterSet.Config as cms
0002
0003
0004 class ThingExternalProcessProducer(cms.EDProducer):
0005 def __init__(self, prod):
0006 self.__dict__['_prod'] = prod
0007 super(cms.EDProducer,self).__init__('TestInterProcessProd')
0008 def __setattr__(self, name, value):
0009 setattr(self._prod, name, value)
0010 def __getattr__(self, name):
0011 if name =='_prod':
0012 return self.__dict__['_prod']
0013 return getattr(self._prod, name)
0014 def clone(self, **params):
0015 returnValue = ThingExternalProcessProducerProducer.__new__(type(self))
0016 returnValue.__init__(self._prod.clone())
0017 return returnValue
0018 def insertInto(self, parameterSet, myname):
0019 newpset = parameterSet.newPSet()
0020 newpset.addString(True, "@module_label", self.moduleLabel_(myname))
0021 newpset.addString(True, "@module_type", self.type_())
0022 newpset.addString(True, "@module_edm_type", cms.EDProducer.__name__)
0023 newpset.addString(True, "@external_type", self._prod.type_())
0024 newpset.addString(False,"@python_config", self._prod.dumpPython())
0025 self._prod.insertContentsInto(newpset)
0026 parameterSet.addPSet(True, self.nameInProcessDesc_(myname), newpset)
0027
0028
0029 _generator = cms.EDProducer("ThingProducer", nThings = cms.int32(100), grow=cms.bool(True), offsetDelta = cms.int32(1))
0030
0031 process = cms.Process("TEST")
0032
0033 process.source = cms.Source("EmptySource")
0034
0035 process.maxEvents.input = 10;
0036
0037 process.thing = ThingExternalProcessProducer(_generator)
0038
0039 process.p = cms.Path(process.thing)
0040
0041 process.getter = cms.EDAnalyzer("edmtest::ThingAnalyzer")
0042
0043 process.o = cms.EndPath(process.getter)
0044 process.options.numberOfThreads = 4