summaryrefslogtreecommitdiff
path: root/detectors
diff options
context:
space:
mode:
Diffstat (limited to 'detectors')
-rw-r--r--detectors/lbne.py2
-rw-r--r--detectors/sno.py16
2 files changed, 9 insertions, 9 deletions
diff --git a/detectors/lbne.py b/detectors/lbne.py
index d3c12da..8942cb2 100644
--- a/detectors/lbne.py
+++ b/detectors/lbne.py
@@ -21,7 +21,7 @@ def build_lbne(radius, height, nstrings, pmts_per_string, endcap_spacing, physic
lbne = Geometry()
# outer cylinder
- cylinder_mesh = segmented_cylinder(radius, height+height/(pmts_per_string-1), theta=(2*np.pi/nstrings)/8, n=200)
+ cylinder_mesh = segmented_cylinder(radius, height+height/(pmts_per_string-1), nsteps=16*nstrings, nsegments=1200)
cylinder_mesh.vertices = rotate(cylinder_mesh.vertices, np.pi/2, (-1,0,0))
lbne.add_solid(Solid(cylinder_mesh, water_wcsim, vacuum, black_surface, 0xff0000ff))
diff --git a/detectors/sno.py b/detectors/sno.py
index 156dcbe..3e748b4 100644
--- a/detectors/sno.py
+++ b/detectors/sno.py
@@ -9,7 +9,7 @@ from solids import build_8inch_pmt_with_lc
from transform import rotate, make_rotation_matrix
import os
-def sno_vessel(sphere_radius, neck_radius, neck_top, angle_step=math.pi/20):
+def sno_vessel(sphere_radius, neck_radius, neck_top, nsteps=40):
'''Compute the 2D coordinates of the profile of one side of a
SNO-style acrylic vessel. The center of the sphere is at (0,0), with
the neck extending along the positive y direction.
@@ -17,7 +17,7 @@ def sno_vessel(sphere_radius, neck_radius, neck_top, angle_step=math.pi/20):
sphere_radius: Radius of spherical part of profile
neck_radius: Radius of neck part
neck_top: y coordinate of top of neck
- angle_step: angular step size (radius) between points on the sphere
+ nsteps: number of points around the circumference of the sphere
Returns: Tuple of x and y coordinate numpy arrays.
'''
@@ -31,7 +31,7 @@ def sno_vessel(sphere_radius, neck_radius, neck_top, angle_step=math.pi/20):
raise ValueError('neck_top must be greater than the y-value where the sphere and cylinder intersect')
# Start with point at bottom
- angles = np.arange(-math.pi/2, max_angle, angle_step)
+ angles = np.linspace(-math.pi/2, max_angle, nsteps)
x = list(np.cos(angles) * sphere_radius)
y = list(np.sin(angles) * sphere_radius)
x[0] = 0.0 # Round-off error might make cos(-pi/2) not exactly zero
@@ -52,19 +52,19 @@ def sno_vessel(sphere_radius, neck_radius, neck_top, angle_step=math.pi/20):
##### SNO Parts
-angle_step = math.pi/20
+nsteps = 40
av_outside_profile = sno_vessel(sphere_radius=6.0604, neck_radius=0.79375,
- neck_top=10.50, angle_step=angle_step)
+ neck_top=10.50, nsteps=nsteps)
# For simplicity, cap the top of the AV with acrylic
av_inside_profile = sno_vessel(sphere_radius=6.0053, neck_radius=0.72898,
- neck_top=10.00, angle_step=angle_step)
+ neck_top=10.00, nsteps=nsteps)
av_outside_mesh = rotate_extrude(av_outside_profile[0], av_outside_profile[1],
- angle_step)
+ nsteps)
av_outside_mesh.vertices = rotate(av_outside_mesh.vertices, np.pi/2, (-1,0,0))
av_inside_mesh = rotate_extrude(av_inside_profile[0], av_inside_profile[1],
- angle_step)
+ nsteps)
av_inside_mesh.vertices = rotate(av_inside_mesh.vertices, np.pi/2, (-1,0,0))
dir = os.path.split(os.path.realpath(__file__))[0]