Skip to content
Snippets Groups Projects
Commit 464d0fad authored by Yngve Levinsen's avatar Yngve Levinsen
Browse files

adding ess

parent 6c70c4e0
No related branches found
No related tags found
No related merge requests found
class dst:
def __init__(self, filename):
'''
Simple class to read in a
TraceWin distribution file
Class afterwards hold the following
dictionary items:
- x [cm]
- xp [rad]
- y [cm]
- yp [rad]
- phi [rad]
- E [MeV]
'''
# easy storage..
self.filename=filename
# used to create dict behaviour..
self._columns=['x','xp','y','yp','phi','E']
# read in the file..
self._readBinaryFile()
def _readBinaryFile(self):
'''
Thanks Emma!
'''
import numpy
fin=file(self.filename,'r')
# dummy, Np, Ib, freq, dummy
Header_type = numpy.dtype([
('dummy12', numpy.int16),
('Np', numpy.int32),
('Ib', numpy.float64),
('freq', numpy.float64),
('dummy3', numpy.int8)
])
Header=numpy.fromfile(fin, dtype=Header_type, count=1)
self.Np=Header['Np'][0]
self.Ib=Header['Ib'][0]
self.freq=Header['freq'][0]
Table=numpy.fromfile(fin, dtype=numpy.float64, count=self.Np*6)
self._data=Table.reshape(self.Np,6)
Footer=numpy.fromfile(fin, dtype='f64', count=1)
self.mass=Footer[0]
def __getitem__(self, key):
'''
makes the class function as a dictionary
e.g. dst['x'] returns the x array..
'''
if key in self._columns:
i=self._columns.index(key)
return self._data[:,i]
import TraceWin
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment