diff --git a/ess/TraceWin.py b/ess/TraceWin.py index 29d326524955bfa9886aa53868beb6217766f581..f35ded288853a9fcd2f022e0a707eee5a34376b2 100644 --- a/ess/TraceWin.py +++ b/ess/TraceWin.py @@ -261,6 +261,7 @@ class plt: # Thanks Emma! import numpy + from builtins import range fin=open(self.filename,'r') @@ -295,6 +296,9 @@ class plt: i=0 while i<self.Ne: SubHeader=numpy.fromfile(fin, dtype=SubHeader_type, count=1) + # unfinished files need this fix (simulation still running) + if not SubHeader['Nelp']: + break i=SubHeader['Nelp'][0] self.Nelp.append(i) @@ -304,7 +308,7 @@ class plt: data={} for key in ['Zgen','phase0','wgen']: data[key]=SubHeader[key][0] - for j in xrange(7): + for j in range(7): c=self._columns[j] data[c]=Table[:,j] # convert x,y from cm to m @@ -370,12 +374,13 @@ class plt: (NOT necessarily reference) ''' import numpy + from builtins import range if not hasattr(self,'avg'): self.calc_avg() self.gamma=[] self.beta=[] - for i,j in zip(self.Nelp,xrange(len(self.Nelp))): + for i,j in zip(self.Nelp,range(len(self.Nelp))): Eavg=self.avg['E'][j] self.gamma.append((self.mc2+Eavg)/self.mc2) self.beta.append(numpy.sqrt(1.-1./self.gamma[-1]**2)) @@ -421,6 +426,7 @@ class plt: ''' import numpy + from builtins import range if not hasattr(self,'avg'): self.calc_avg() @@ -428,7 +434,7 @@ class plt: vals=self._columns[:-1] self.sigma=[] - for j in xrange(len(self.Nelp)): + for j in range(len(self.Nelp)): i=self.Nelp[j] data=self[i] @@ -443,6 +449,7 @@ class plt: ''' import numpy + from builtins import range if not hasattr(self,'sigma'): self.calc_sigma() @@ -451,7 +458,7 @@ class plt: self.std={} - for j in xrange(len(vals)): + for j in range(len(vals)): v=vals[j] self.std[v]=numpy.sqrt(self.sigma[:,j,j]) @@ -462,6 +469,7 @@ class plt: ''' import numpy + from builtins import range if not hasattr(self,'sigma'): self.calc_sigma() @@ -469,23 +477,23 @@ class plt: self.calc_rel() self.twiss_eps=[] - for j in xrange(len(self.Nelp)): + for j in range(len(self.Nelp)): self.twiss_eps.append([numpy.sqrt(numpy.linalg.det(self.sigma[j][i:i+2][:,i:i+2])) for i in (0,2,4)]) self.twiss_eps=numpy.array(self.twiss_eps) # Calculate normalized emittance: # TODO: this is NOT correct normalization for longitudinal self.twiss_eps_normed=self.twiss_eps.copy() - for i in xrange(3): + for i in range(3): self.twiss_eps_normed[:,i]*=self.gamma*self.beta # Calculate beta: # This is a factor 10 different from what TraceWin plots - self.twiss_beta = [[self.sigma[j][i][i]/self.twiss_eps[j,i/2] for i in (0,2,4)] for j in xrange(len(self.Nelp))] + self.twiss_beta = [[self.sigma[j][i][i]/self.twiss_eps[j,i/2] for i in (0,2,4)] for j in range(len(self.Nelp))] self.twiss_beta = numpy.array(self.twiss_beta) # Calculate alpha: - self.twiss_alpha = [[-self.sigma[j][i][i+1]/self.twiss_eps[j,i/2] for i in (0,2,4)] for j in xrange(len(self.Nelp))] + self.twiss_alpha = [[-self.sigma[j][i][i+1]/self.twiss_eps[j,i/2] for i in (0,2,4)] for j in range(len(self.Nelp))] self.twiss_alpha = numpy.array(self.twiss_alpha) @@ -643,6 +651,7 @@ class density_file: def _getFullContent(self): import numpy + from builtins import range #self._getHeader() # no need to read the header again: @@ -685,7 +694,7 @@ class density_file: self.Np[self.i]=numpy.fromfile(self.fin, dtype=numpy.int64, count=1)[0] if self.Np[self.i]: - for i in xrange(self.Nrun): + for i in range(self.Nrun): self.lost[self.i,i]=numpy.fromfile(self.fin, dtype=numpy.int64, count=1)[0] self.powlost[self.i,i]=numpy.fromfile(self.fin, dtype=numpy.float32, count=1)[0] self.lost2[self.i]=numpy.fromfile(self.fin, dtype=numpy.int64, count=1)[0] @@ -953,6 +962,7 @@ class remote_data_merger: ''' import numpy as np + from builtins import range h1=[] h2=[] @@ -978,17 +988,17 @@ class remote_data_merger: d3.append(thisdata[11]) # fix d1: - for i in xrange(len(d1)): - for j in xrange(len(d1[0])): + for i in range(len(d1)): + for j in range(len(d1[0])): d1[i][j]=float(d1[i][j]) d1=np.array(d1) means=d1.mean(axis=0) stds=d1.std(axis=0) d1=[] - for i in xrange(len(stds)): + for i in range(len(stds)): if stds[i]/means[i]<1e-10: stds[i]=0.0 - for i in xrange(len(stds)): + for i in range(len(stds)): # some small std are removed.. if stds[i]/means[i]>1e-8: d1.append('%f(%f)' % (means[i],stds[i]))