summaryrefslogtreecommitdiff
path: root/solids
diff options
context:
space:
mode:
Diffstat (limited to 'solids')
-rw-r--r--solids/__init__.py12
-rw-r--r--solids/pmts.py11
-rw-r--r--solids/sno_cone.txt6
3 files changed, 23 insertions, 6 deletions
diff --git a/solids/__init__.py b/solids/__init__.py
index 338725c..9de5c8d 100644
--- a/solids/__init__.py
+++ b/solids/__init__.py
@@ -1,6 +1,6 @@
import numpy as np
-from pmts import build_pmt, build_light_collector
+from pmts import build_pmt, build_light_collector, build_light_collector_from_file
import os
import sys
@@ -28,5 +28,11 @@ def build_12inch_pmt_with_lc(outer_material=water, theta=np.pi/8):
return pmt + build_light_collector(pmt, a=lc_12inch_a, b=lc_12inch_b, d=lc_12inch_d, rmin=lc_12inch_rmin, rmax=lc_12inch_rmax)
@buildable('8inch_pmt')
-def build_8inch_pmt(outer_material=water, theta=np.pi/8):
- return build_pmt(dir + '/sno_pmt.txt', 0.003, outer_material, theta)
+def build_8inch_pmt(outer_material=water, theta=np.pi/12):
+ return build_pmt(dir + '/sno_pmt_reduced.txt', 0.003, outer_material, theta)
+
+@buildable('8inch_pmt_with_lc')
+def build_8inch_pmt_with_lc(outer_material=water, theta=np.pi/12):
+ pmt = build_8inch_pmt(outer_material, theta)
+ lc = build_light_collector_from_file(dir + '/sno_cone.txt', outer_material, theta)
+ return pmt + lc
diff --git a/solids/pmts.py b/solids/pmts.py
index 6b10522..377024d 100644
--- a/solids/pmts.py
+++ b/solids/pmts.py
@@ -64,3 +64,14 @@ def build_pmt(filename, glass_thickness, outer_material=water, theta=np.pi/8):
pmt.theta = theta
return pmt
+
+def build_light_collector_from_file(filename, outer_material, theta=np.pi/24):
+ profile = read_csv(filename)
+
+ # Convert mm to m
+ profile /= 1000.0
+
+ mesh = rotate_extrude(profile[:,0], profile[:,1], theta)
+ solid = Solid(mesh, outer_material, outer_material, color=0xFF0000,
+ surface=shiny_surface)
+ return solid
diff --git a/solids/sno_cone.txt b/solids/sno_cone.txt
index bf666cc..5b56792 100644
--- a/solids/sno_cone.txt
+++ b/solids/sno_cone.txt
@@ -4,10 +4,10 @@
-133.7058, 116.0503
-133.0342, 109.7357
-132.3659, 102.7194
--131.6944, 96.4048
+#-131.6944, 96.4048
-130.3251, 89.3909
--128.2481, 83.7831
--126.8788, 76.7691
+#-128.2481, 83.7831
+#-126.8788, 76.7691
-124.8018, 71.1613
-122.7282, 64.8516
-119.9503, 59.2462