File indexing completed on 2024-04-06 12:23:27
0001 import copy
0002 from PhysicsTools.Heppy.physicsobjects.Particle import Particle
0003
0004 class PhysicsObject(Particle):
0005 '''Wrapper to particle-like C++ objects.'''
0006
0007 def __init__(self, physObj):
0008 self.physObj = physObj
0009 super(PhysicsObject, self).__init__()
0010
0011 def __copy__(self):
0012 '''Very dirty trick, the physObj is deepcopied...'''
0013 physObj = copy.deepcopy( self.physObj )
0014 newone = type(self)(physObj)
0015 newone.__dict__.update(self.__dict__)
0016 newone.physObj = physObj
0017 return newone
0018
0019 def scaleEnergy( self, scale ):
0020 p4 = self.physObj.p4()
0021 p4 *= scale
0022 self.physObj.setP4( p4 )
0023
0024
0025 def __getattr__(self,name):
0026 '''Makes all attributes and methods of the wrapped physObj
0027 directly available.'''
0028 return getattr(self.physObj, name)
0029