Skip to content

Commit

Permalink
Merge pull request #728 from makortel/pathelpers62x
Browse files Browse the repository at this point in the history
Performance improvement in PAT helpers.py (62X)
  • Loading branch information
davidlt committed Oct 6, 2013
2 parents 618c316 + a5d656b commit 0c9b28b
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion PhysicsTools/PatAlgos/python/tools/helpers.py
Expand Up @@ -116,7 +116,7 @@ def __init__(self,paramSearch,paramReplace,verbose=False,moduleLabelOnly=False):
self._moduleLabelOnly=moduleLabelOnly
def doIt(self,pset,base):
if isinstance(pset, cms._Parameterizable):
for name in pset.parameters_().keys():
for name in pset.parameterNames_():
# if I use pset.parameters_().items() I get copies of the parameter values
# so I can't modify the nested pset
value = getattr(pset,name)
Expand Down Expand Up @@ -358,5 +358,27 @@ def testMassSearchReplaceParam(self):
massSearchReplaceParam(p.s,"src",cms.InputTag("b"),"a")
self.assertEqual(cms.InputTag("a"),p.c.src)
self.assertNotEqual(cms.InputTag("a"),p.c.nested.src)
def testMassSearchReplaceAnyInputTag(self):
p = cms.Process("test")
p.a = cms.EDProducer("a", src=cms.InputTag("gen"))
p.b = cms.EDProducer("ab", src=cms.InputTag("a"))
p.c = cms.EDProducer("ac", src=cms.InputTag("b"),
nested = cms.PSet(src = cms.InputTag("b"), src2 = cms.InputTag("c")),
nestedv = cms.VPSet(cms.PSet(src = cms.InputTag("b")), cms.PSet(src = cms.InputTag("d"))),
vec = cms.VInputTag(cms.InputTag("a"), cms.InputTag("b"), cms.InputTag("c"), cms.InputTag("d"))
)
p.s = cms.Sequence(p.a*p.b*p.c)
massSearchReplaceAnyInputTag(p.s, cms.InputTag("b"), cms.InputTag("new"))
self.assertNotEqual(cms.InputTag("new"), p.b.src)
self.assertEqual(cms.InputTag("new"), p.c.src)
self.assertEqual(cms.InputTag("new"), p.c.nested.src)
self.assertEqual(cms.InputTag("new"), p.c.nested.src)
self.assertNotEqual(cms.InputTag("new"), p.c.nested.src2)
self.assertEqual(cms.InputTag("new"), p.c.nestedv[0].src)
self.assertNotEqual(cms.InputTag("new"), p.c.nestedv[1].src)
self.assertNotEqual(cms.InputTag("new"), p.c.vec[0])
self.assertEqual(cms.InputTag("new"), p.c.vec[1])
self.assertNotEqual(cms.InputTag("new"), p.c.vec[2])
self.assertNotEqual(cms.InputTag("new"), p.c.vec[3])

unittest.main()

0 comments on commit 0c9b28b

Please sign in to comment.