# the interface from register_CompositeDetector import CompositeDetector as base class DetectorPack(base): def identify(self, visitor): return visitor.onDetectorPack(self) pass # 2. the handler to construct c++ engine def onDetectorPack(self, detectorPack): return self.onCompositeDetector( detectorPack ) # 4. register the new class and handlers import mccomponents.homogeneous_scatterer as mh mh.register_engine_renderer_handler (DetectorPack, onDetectorPack ) def onDetectorPackCopy(self, copy): pack = copy.reference() return self.onDetectorPack(pack) class DetectorPackCopy: pass mh.register_engine_renderer_handler( DetectorPackCopy, onDetectorPackCopy ) # version __id__ = "$Id$"
# attach to factory self.factory.binding.t2c = t2c self.factory.binding.mca = mca self._indexes_in_detsys = [] ret = self.onCompositeDetector(detectorSystem) del self._indexes_in_detsys del self.factory.binding.t2c, self.factory.binding.mca return ret def bp_tof2channel(self, tofmin, tofmax, tofstep): import mccomponents.mccomponentsbp as b return b.Tof2Channel(tofmin, tofmax, tofstep) # 4. register the new class and handlers import mccomponents.homogeneous_scatterer as mh mh.register_engine_renderer_handler(DetectorSystem, onDetectorSystem) mh.register_binding_handlers(Tof2Channel, {"BoostPythonBinding": bp_tof2channel}) # version __id__ = "$Id$" # End of file
#this way array indexing will be easy. self._indexes_in_detsys.append( index ) cscatterer = element.identify(self) self._indexes_in_detsys.pop() cscatterers.append( cscatterer ) position = self._remove_length_unit( geometer.position(element) ) cposition = factory.position( position ) orientation = self._remove_angle_unit( geometer.orientation(element) ) corientation = factory.orientation( orientation ) cgeometer.register( cscatterer, cposition, corientation ) continue cshape = composite.shape().identify(self) return factory.compositescatterer( cshape, cscatterers, cgeometer ) # 4. register the new class and handlers import mccomponents.homogeneous_scatterer as mh mh.register_engine_renderer_handler (CompositeDetector, onCompositeDetector ) # version __id__ = "$Id$" # End of file
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # # Jiao Lin # California Institute of Technology # (C) 2007 All Rights Reserved # # {LicenseText} # # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # # KernelContainer is an alias of homogeneous_scatterer.CompositeKernel.CompositeKernel from mccomponents.homogeneous_scatterer.CompositeKernel import CompositeKernel KernelContainer = CompositeKernel # 2. the handler for renderer def onKernelContainer(self, kernelcontainer): return self.onCompositeKernel(kernelcontainer) import mccomponents.homogeneous_scatterer as hs # 4. register the new class and handlers hs.register_engine_renderer_handler(KernelContainer, onKernelContainer) # version __id__ = "$Id$" # End of file
# Jiao Lin # California Institute of Technology # (C) 2007 All Rights Reserved # # {LicenseText} # # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # # KernelContainer is an alias of homogeneous_scatterer.CompositeKernel.CompositeKernel from mccomponents.homogeneous_scatterer.CompositeKernel import CompositeKernel KernelContainer = CompositeKernel # 2. the handler for renderer def onKernelContainer(self, kernelcontainer): return self.onCompositeKernel( kernelcontainer ) import mccomponents.homogeneous_scatterer as hs # 4. register the new class and handlers hs.register_engine_renderer_handler ( KernelContainer, onKernelContainer ) # version __id__ = "$Id$" # End of file
# mca = detectorSystem.mca.identify(self) #attach to factory self.factory.binding.t2c = t2c self.factory.binding.mca = mca self._indexes_in_detsys = [] ret = self.onCompositeDetector(detectorSystem) del self._indexes_in_detsys del self.factory.binding.t2c, self.factory.binding.mca return ret def bp_tof2channel(self, tofmin, tofmax, tofstep): import mccomponents.mccomponentsbp as b return b.Tof2Channel(tofmin, tofmax, tofstep) # 4. register the new class and handlers import mccomponents.homogeneous_scatterer as mh mh.register_engine_renderer_handler(DetectorSystem, onDetectorSystem) mh.register_binding_handlers(Tof2Channel, {'BoostPythonBinding': bp_tof2channel}) # version __id__ = "$Id$" # End of file