Source code for casinotools.fileformat.casino3.TrajectoryCollision

#!/usr/bin/env python
""" """

# Script information for the file.
__author__ = "Hendrix Demers (hendrix.demers@mail.mcgill.ca)"
__version__ = ""
__date__ = ""
__copyright__ = "Copyright (c) 2009 Hendrix Demers"
__license__ = ""

# Standard library modules.
import struct
import math

# Third party modules.

# Local modules.
import casinotools.fileformat.FileReaderWriterTools as FileReaderWriterTools

# Globals and constants variables.
COLLISION_TYPE_ATOM = 0
COLLISION_TYPE_REGION = 1
COLLISION_TYPE_NODE = 2
COLLISION_TYPE_RECALC = 3

COLLISION_TYPE_LABELS = {COLLISION_TYPE_ATOM: "Atom",
                         COLLISION_TYPE_REGION: "Region",
                         COLLISION_TYPE_NODE: "Node",
                         COLLISION_TYPE_RECALC:"Recalc"}

[docs]def getSizeScatteringEvent(): size = struct.calcsize("5d2i") return size
[docs]class TrajectoryCollision(FileReaderWriterTools.FileReaderWriterTools): def __init__(self, items=None): if items is not None: self._positionX = items[0] self._positionY = items[1] self._positionZ = items[2] self._energy = items[3] self._segmentLength = items[4] self._collisionType = items[5] self._regionID = items[6]
[docs] def read(self, file): self._readOptimized(file)
def _readOriginal(self, file): assert getattr(file, 'mode', 'rb') == 'rb' self._positionX = self.readDouble(file) self._positionY = self.readDouble(file) self._positionZ = self.readDouble(file) self._energy = self.readDouble(file) self._segmentLength = self.readDouble(file) self._collisionType = self.readInt(file) self._regionID = self.readInt(file) def _readOptimized(self, file): assert getattr(file, 'mode', 'rb') == 'rb' format = "5d2i" items = self.readMultipleValues(file, format) self.setValues(items)
[docs] def setValues(self, items): self._positionX = items[0] self._positionY = items[1] self._positionZ = items[2] self._energy = items[3] self._segmentLength = items[4] self._collisionType = items[5] self._regionID = items[6]
[docs] def getCollisionType(self): return self._collisionType
[docs] def getCollisionTypeName(self): return COLLISION_TYPE_LABELS[self._collisionType]
[docs] def getX_nm(self): return self._positionX
[docs] def getY_nm(self): return self._positionY
[docs] def getZ_nm(self): return self._positionZ
[docs] def getPosition_nm(self): position_nm = (self._positionX, self._positionY, self._positionZ) return position_nm
[docs] def getRadiusXY_nm(self): return math.sqrt(self._positionX ** 2 + self._positionY ** 2)
[docs] def getEnergy_keV(self): return self._energy
[docs] def getRegionID(self): return self._regionID