diff --git a/ess/TraceWin.py b/ess/TraceWin.py index c4c9f0f5fe03723af5cf64d5dfd4cf3d2b3b1bfc..da2518b30660f5ea7ee9db869675f27e3bc1b188 100644 --- a/ess/TraceWin.py +++ b/ess/TraceWin.py @@ -498,12 +498,12 @@ class density_file: # in case we did not read all data, this will detect our mistake: shift=0 - while year!=2011 or version!=8: + while year!=2011 or version not in [8,9]: shift+=1 version=year year=numpy.fromfile(self.fin, dtype=numpy.int16, count=1)[0] - if shift: + print(year,version) raise ValueError("ERROR, shifted "+str(shift*2)+" bytes") self.vlong=numpy.fromfile(self.fin, dtype=numpy.int16, count=1)[0] @@ -519,9 +519,14 @@ class density_file: self._getHeader() if self.envelope: - numpy.fromfile(self.fin, dtype=numpy.int16, count=292/2) + if self.version==8: + numpy.fromfile(self.fin, dtype=numpy.int16, count=292/2) + if self.version==9: + numpy.fromfile(self.fin, dtype=numpy.int16, count=300/2) elif self.version==8: numpy.fromfile(self.fin, dtype=numpy.int16, count=12344/2) + elif self.version==9: + numpy.fromfile(self.fin, dtype=numpy.int16, count=12352/2) elif self.Nrun>1: #WARN not 100% sure if this is correct.. numpy.fromfile(self.fin, dtype=numpy.int16, count=((5588+self.Nrun*12)/2)) @@ -556,6 +561,9 @@ class density_file: # Aperture self.Xouv[self.i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=1)[0] self.Youv[self.i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=1)[0] + if self.version>=9: + dXouv=numpy.fromfile(self.fin, dtype=numpy.float32, count=1)[0] + dYouv=numpy.fromfile(self.fin, dtype=numpy.float32, count=1)[0] step=numpy.fromfile(self.fin, dtype=numpy.int32, count=1)[0] n=7 # x [m], y[m], Phase [deg], Energy [MeV], R[m], Z[m], dp/p