Author: [log in to unmask]
Date: Tue Nov 25 15:19:25 2014
New Revision: 3433
Log:
Fix L4-6 U-channels positions
Modified:
projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014GeometryDefinition.java
Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014GeometryDefinition.java
=============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014GeometryDefinition.java (original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014GeometryDefinition.java Tue Nov 25 15:19:25 2014
@@ -625,10 +625,8 @@
protected static final double height = 2.575*inch;
private static final double kin_mount_to_edge_of_plate_x = width/2.0-5.75*inch;
private static final double kin_mount_to_edge_of_plate_y = 0.2*inch;
- protected static final double cone_to_edge_of_plate_y = 2.75*inch;
protected static final double side_plate_cone_y = 2.0*inch;
- private static final double cone_to_L1_hole_y = cone_to_edge_of_plate_y - kin_mount_to_edge_of_plate_y;
-
+
public UChannelL46(String name, SurveyVolume m,
AlignmentCorrection alignmentCorrection) {
super(name, m, alignmentCorrection);
@@ -652,10 +650,24 @@
*
*/
public static class UChannelL46Bottom extends UChannelL46 {
- // Coordinates taken from Shawn's 3D model
- protected static final double cone_x = -6.977*inch;
- protected static final double cone_y = SvtBox.length/2.0 - 31.668*inch;
- protected static final double cone_z = -0.3316*inch;
+ // Coordinates of the survey ball engaging the machined features
+ protected static final double cone_fwd_right_x = -7.019*inch;
+ protected static final double cone_fwd_right_y = -6.419*inch;
+ protected static final double cone_fwd_right_z = -0.332*inch;
+
+ protected static final double cone_bwd_right_x = -6.539*inch;
+ protected static final double cone_bwd_right_y = -22.159*inch;
+ protected static final double cone_bwd_right_z = -0.332*inch;
+
+ protected static final double cone_fwd_left_x = 6.558*inch;
+ protected static final double cone_fwd_left_y = -6.005*inch;
+ protected static final double cone_fwd_left_z = -0.332*inch;
+
+ protected static final double cone_bwd_left_x = 7.038*inch;
+ protected static final double cone_bwd_left_y = -21.745*inch;
+ protected static final double cone_bwd_left_z = -0.332*inch;
+
+ protected static final double cone_to_edge_of_plate_y = 2.75*inch;
public UChannelL46Bottom(String name, SurveyVolume m,
AlignmentCorrection alignmentCorrection) {
@@ -670,12 +682,16 @@
}
protected void setPos() {
//locate coordinate system from cone in mother coordinate system
- final double ball_pos_x = cone_x + width/2.0;
- final double ball_pos_y = cone_y;
- final double ball_pos_z = cone_z;
- ballPos = new BasicHep3Vector(ball_pos_x, ball_pos_y, ball_pos_z);
- veePos = new BasicHep3Vector(ballPos.x()-1, ballPos.y(), ballPos.z());
- flatPos = new BasicHep3Vector(ballPos.x(), ballPos.y()-1, ballPos.z());
+ Hep3Vector fwd_right = new BasicHep3Vector(cone_fwd_right_x, cone_fwd_right_y, cone_fwd_right_z);
+ Hep3Vector fwd_left = new BasicHep3Vector(cone_fwd_left_x, cone_fwd_left_y, cone_fwd_left_z);
+ Hep3Vector bwd_right = new BasicHep3Vector(cone_bwd_right_x, cone_bwd_right_y, cone_bwd_right_z);
+ Hep3Vector bwd_left = new BasicHep3Vector(cone_bwd_left_x, cone_bwd_left_y, cone_bwd_left_z);
+
+ Hep3Vector d = VecOp.mult(0.5,VecOp.sub(fwd_left, fwd_right));
+ ballPos = VecOp.add(fwd_right, d);
+ veePos = fwd_right;
+ d = VecOp.mult(0.5, VecOp.sub(bwd_left, bwd_right));
+ flatPos = VecOp.add(bwd_right, d);
}
}
@@ -690,10 +706,27 @@
*
*/
public static class UChannelL46Top extends UChannelL46 {
- // TODO change these to the top coordinates taken from Shawn's 3D model
- protected static final double cone_x = -6.997*inch;
- protected static final double cone_y = SvtBox.length/2.0 - 31.643*inch; //TODO is this 31.643 or 31.043?
- protected static final double cone_z = -1*UChannelL46Bottom.cone_z;
+ // Coordinates of the survey ball engaging the machined features
+ protected static final double cone_fwd_right_x = -7.038*inch;
+ protected static final double cone_fwd_right_y = -5.794*inch;
+ protected static final double cone_fwd_right_z = 0.332*inch;
+
+ protected static final double cone_bwd_right_x = -6.558*inch;
+ protected static final double cone_bwd_right_y = -21.535*inch;
+ protected static final double cone_bwd_right_z = 0.332*inch;
+
+ protected static final double cone_fwd_left_x = 6.539*inch;
+ protected static final double cone_fwd_left_y = -5.380*inch;
+ protected static final double cone_fwd_left_z = 0.332*inch;
+
+ protected static final double cone_bwd_left_x = 7.019*inch;
+ protected static final double cone_bwd_left_y = -21.121*inch;
+ protected static final double cone_bwd_left_z = 0.332*inch;
+
+ private static final double cone_to_side_plate_pin_y = (0.875-0.25)*inch;
+ private static final double side_plate_pin_to_edge_of_plate_y = 1.5*inch;
+
+ protected static final double cone_to_edge_of_plate_y = cone_to_side_plate_pin_y + side_plate_pin_to_edge_of_plate_y;
public UChannelL46Top(String name, SurveyVolume m,
AlignmentCorrection alignmentCorrection) {
@@ -707,13 +740,19 @@
setCenter(x,y,z);
}
protected void setPos() {
- //locate coordinate system from cone in mother coordinate system
- final double ball_pos_x = cone_x + width/2.0;
- final double ball_pos_y = cone_y;
- final double ball_pos_z = cone_z;
- ballPos = new BasicHep3Vector(ball_pos_x, ball_pos_y, ball_pos_z);
- veePos = new BasicHep3Vector(ballPos.x()+1, ballPos.y(), ballPos.z());
- flatPos = new BasicHep3Vector(ballPos.x(), ballPos.y()-1, ballPos.z());
+
+ //locate coordinate system from cone in mother coordinate system
+ Hep3Vector fwd_right = new BasicHep3Vector(cone_fwd_right_x, cone_fwd_right_y, cone_fwd_right_z);
+ Hep3Vector fwd_left = new BasicHep3Vector(cone_fwd_left_x, cone_fwd_left_y, cone_fwd_left_z);
+ Hep3Vector bwd_right = new BasicHep3Vector(cone_bwd_right_x, cone_bwd_right_y, cone_bwd_right_z);
+ Hep3Vector bwd_left = new BasicHep3Vector(cone_bwd_left_x, cone_bwd_left_y, cone_bwd_left_z);
+
+ Hep3Vector d = VecOp.mult(0.5,VecOp.sub(fwd_left, fwd_right));
+ ballPos = VecOp.add(fwd_right, d);
+ veePos = fwd_left;
+ d = VecOp.mult(0.5, VecOp.sub(bwd_left, bwd_right));
+ flatPos = VecOp.add(bwd_right, d);
+
}
}
@@ -787,6 +826,8 @@
*
*/
public static class UChannelL46BottomPlate extends UChannelL46Plate {
+ protected final static double L4_module_pin_to_edge_of_plate = 3.125*inch;
+
public UChannelL46BottomPlate(String name, SurveyVolume m,
AlignmentCorrection alignmentCorrection, SurveyVolume ref) {
super(name, m, alignmentCorrection, ref);
@@ -795,7 +836,7 @@
protected void setCenter() {
final double x = 0.0;
- final double y = -UChannelL46.cone_to_edge_of_plate_y + length/2.0;
+ final double y = -UChannelL46Bottom.cone_to_edge_of_plate_y + length/2.0;
final double z = -UChannelL46.side_plate_cone_y - height/2.0;
setCenter(x,y,z);
}
@@ -813,6 +854,8 @@
*
*/
public static class UChannelL46TopPlate extends UChannelL46Plate {
+ protected final static double L4_module_pin_to_edge_of_plate = 1.75*inch;
+
public UChannelL46TopPlate(String name, SurveyVolume m,
AlignmentCorrection alignmentCorrection, SurveyVolume ref) {
super(name, m, alignmentCorrection, ref);
@@ -821,7 +864,7 @@
protected void setCenter() {
final double x = 0.0;
- final double y = -UChannelL46.cone_to_edge_of_plate_y + length/2.0;
+ final double y = -UChannelL46Top.cone_to_edge_of_plate_y + length/2.0;
final double z = -UChannelL46.side_plate_cone_y - height/2.0;
setCenter(x,y,z);
}
@@ -1044,13 +1087,15 @@
protected void setCenter() {
final double x = -width/2.0;
final double y = -hole_to_module_edge_length_dir + length/2.0;
- final double z = -hole_to_module_edge_height_dir + height/2.0;
+ final double z = -Math.abs(getHoleModuleCenterOffset());
+ //final double z = -hole_to_module_edge_height_dir + height/2.0;
setCenter(x,y,z);
}
protected void setBoxDim() {
setBoxDim(width, length, height);
}
protected abstract void setPos();
+ protected abstract double getHoleModuleCenterOffset();
protected abstract Hep3Vector getHole();
}
@@ -1075,6 +1120,9 @@
veePos = new BasicHep3Vector(ballPos.x(), ballPos.y(), ballPos.z()-1.0);
flatPos = new BasicHep3Vector(ballPos.x()-1.0, ballPos.y(), ballPos.z());
}
+ protected double getHoleModuleCenterOffset() {
+ return UChannelL46Bottom.cone_to_edge_of_plate_y - UChannelL46BottomPlate.L4_module_pin_to_edge_of_plate;
+ }
}
/**
@@ -1097,6 +1145,10 @@
veePos = new BasicHep3Vector(ballPos.x(), ballPos.y(), ballPos.z()-1.0);
flatPos = new BasicHep3Vector(ballPos.x()+1.0, ballPos.y(), ballPos.z());
}
+ protected double getHoleModuleCenterOffset() {
+ return UChannelL46Top.cone_to_edge_of_plate_y - UChannelL46TopPlate.L4_module_pin_to_edge_of_plate;
+ }
+
}
@@ -1110,7 +1162,7 @@
protected Hep3Vector getHole() {
double x = hole_to_center_of_plate_width_dir;
- double y = 0.0; // TODO assume that cone and module mount pin hole is at same y. Check if true.
+ double y = -getHoleModuleCenterOffset(); //Note minus sign compared to top
double z = -UChannelL46.side_plate_cone_y - UChannelL46Plate.pocket_depth_L4;
return new BasicHep3Vector(x, y, z);
}
@@ -1127,7 +1179,7 @@
protected Hep3Vector getHole() {
double x = -1*hole_to_center_of_plate_width_dir;
- double y = 0.0; // TODO assume that cone and module mount pin hole is at same y. Check if true.
+ double y = -getHoleModuleCenterOffset();
double z = -UChannelL46.side_plate_cone_y - UChannelL46Plate.pocket_depth_L4;
return new BasicHep3Vector(x, y, z);
}
@@ -1145,7 +1197,7 @@
protected Hep3Vector getHole() {
double x = hole_to_center_of_plate_width_dir;
- double y = UChannelL46Plate.module_mounting_hole_to_hole_x;
+ double y = -getHoleModuleCenterOffset() + UChannelL46Plate.module_mounting_hole_to_hole_x;
double z = -UChannelL46.side_plate_cone_y - UChannelL46Plate.pocket_depth_L5;
return new BasicHep3Vector(x, y, z);
}
@@ -1162,7 +1214,7 @@
protected Hep3Vector getHole() {
double x = -1*hole_to_center_of_plate_width_dir;
- double y = UChannelL46Plate.module_mounting_hole_to_hole_x;
+ double y = -getHoleModuleCenterOffset() + UChannelL46Plate.module_mounting_hole_to_hole_x;
double z = -UChannelL46.side_plate_cone_y - UChannelL46Plate.pocket_depth_L5;
return new BasicHep3Vector(x, y, z);
}
@@ -1179,7 +1231,7 @@
protected Hep3Vector getHole() {
double x = hole_to_center_of_plate_width_dir;
- double y = 2.0*UChannelL46Plate.module_mounting_hole_to_hole_x;
+ double y = -getHoleModuleCenterOffset() + 2.0*UChannelL46Plate.module_mounting_hole_to_hole_x;
double z = -UChannelL46.side_plate_cone_y - UChannelL46Plate.pocket_depth_L6;
return new BasicHep3Vector(x, y, z);
}
@@ -1196,7 +1248,7 @@
protected Hep3Vector getHole() {
double x = -hole_to_center_of_plate_width_dir;
- double y = 2.0*UChannelL46Plate.module_mounting_hole_to_hole_x;
+ double y = -getHoleModuleCenterOffset() + 2.0*UChannelL46Plate.module_mounting_hole_to_hole_x;
double z = -UChannelL46.side_plate_cone_y - UChannelL46Plate.pocket_depth_L6;
return new BasicHep3Vector(x, y, z);
}
########################################################################
Use REPLY-ALL to reply to list
To unsubscribe from the LCDET-SVN list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCDET-SVN&A=1
|