From 34ff4d6c734e5adf3aa8a0e7ca89031effdb1489 Mon Sep 17 00:00:00 2001 From: Anthony LaTorre Date: Fri, 17 Jun 2011 14:51:40 -0400 Subject: visually tested optics code. added models of the inner and outer meshes for the 12" hamamatsu and sno pmts. ratdb.py is able to parse ratdb files. chromaticity.py provides a function to map wavelength -> rgb color. lbne detector model now includes an outer black cylinder and pmts with a glass layer and photocathode/reflective surfaces. --- chromaticity.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'chromaticity.py') diff --git a/chromaticity.py b/chromaticity.py index 18ec28f..4080496 100644 --- a/chromaticity.py +++ b/chromaticity.py @@ -1,6 +1,7 @@ import numpy as np -f = open('ciexyz64_1.csv') +#f = open('ciexyz64_1.csv') +f = open('sbrgb10w.csv') color_map = [] for line in f: @@ -10,9 +11,25 @@ f.close() color_map = np.array(color_map) +# zero negative coefficients +color_map[color_map < 0] = 0 + +# normalize coefficients +for i in range(len(color_map)): + color_map[i,1:] /= np.sum(color_map[i,1:]) + def map_wavelength(wavelength): r = np.interp(wavelength, color_map[:,0], color_map[:,1]) g = np.interp(wavelength, color_map[:,0], color_map[:,2]) b = np.interp(wavelength, color_map[:,0], color_map[:,3]) - return r, g, b + if np.iterable(wavelength): + rgb = np.empty((len(wavelength),3)) + + rgb[:,0] = r + rgb[:,1] = g + rgb[:,2] = b + + return rgb + else: + return np.array([r,g,b]) -- cgit