import numpy as np
import pandas as pd
import holoviews as hv
hv.extension('matplotlib')
ls -all -h
!head -4 80-6.dat2
def read_dat(dat):
df = pd.read_csv(dat, names=['x', 'y', 'z', 'vx', 'vy', 'vz'], delim_whitespace=True, skiprows=1)
df['x'] = df['x']*10.0 # mm
df['y'] = df['y']*10.0 # mm
df['z'] = df['z']*10.0 # mm
df['p'] = 0.511/np.sqrt(1-(df['vx']*df['vx'] + df['vy']*df['vy'] + df['vz']*df['vz'])) # MeV/c
df['xp']= 1e3*df['vx']/df['vz'] # mrad
df['yp']= 1e3*df['vy']/df['vz'] # mrad
return df
dat = '80-6.dat2'
df = read_dat(dat)
df.head(3)
df.tail(3)
%opts Scatter (alpha=0.01 s=2) [aspect=1 show_grid=True]
dim_x = hv.Dimension('x', unit='mm', label='$x$', range=(-12,+12))
dim_xp = hv.Dimension('xp', unit='mrad', label="$x'$", range=(-12,+12))
dim_y = hv.Dimension('y', unit='mm', label='$y$', range=(-12,+12))
dim_yp = hv.Dimension('yp', unit='mrad', label="$y'$", range=(-12,+12))
dim_z = hv.Dimension('z', unit='mm', label='$z$', range=(-12,+12))
dim_p = hv.Dimension('p', unit='MeV/c', label='$p$', range=(0,None)) # label='100%*$\Delta p/p$', range=(-1.5,+1.5))
%output backend='matplotlib' fig='png' size=100 dpi=100
hv.Scatter(df, kdims=[dim_z,dim_p]) + hv.Scatter(df, kdims=[dim_xp,dim_p]) + hv.Scatter(df, kdims=[dim_x,dim_p])
(hv.Scatter(df, kdims=[dim_x,dim_y]) + \
hv.Scatter(df, kdims=[dim_yp,dim_y]) + \
hv.Scatter(df, kdims=[dim_x,dim_xp]) + \
hv.Scatter(df, kdims=[dim_yp,dim_xp])).cols(2)
dat = '80-8.dat2'
df = read_dat(dat)
df.head(3)
hv.Scatter(df, kdims=[dim_z,dim_p]) + hv.Scatter(df, kdims=[dim_xp,dim_p]) + hv.Scatter(df, kdims=[dim_x,dim_p])
(hv.Scatter(df, kdims=[dim_x,dim_y]) + \
hv.Scatter(df, kdims=[dim_yp,dim_y]) + \
hv.Scatter(df, kdims=[dim_x,dim_xp]) + \
hv.Scatter(df, kdims=[dim_yp,dim_xp])).cols(2)