From be2fb42d749d82e32495a03f276e5edef25b6f0b Mon Sep 17 00:00:00 2001
From: Yngve Inntjore Levinsen <Yngve.Levinsen@esss.se>
Date: Wed, 23 Mar 2016 11:39:26 +0100
Subject: [PATCH] updated TraceWin.density_file for version 9

---
 ess/TraceWin.py | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/ess/TraceWin.py b/ess/TraceWin.py
index c4c9f0f..da2518b 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
-- 
GitLab