LISTSERV mailing list manager LISTSERV 16.5

Help for LCDET-SVN Archives


LCDET-SVN Archives

LCDET-SVN Archives


LCDET-SVN@LISTSERV.SLAC.STANFORD.EDU


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

LCDET-SVN Home

LCDET-SVN Home

LCDET-SVN  November 2014

LCDET-SVN November 2014

Subject:

r3433 - /projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014GeometryDefinition.java

From:

[log in to unmask]

Reply-To:

Notification of commits to the lcdet svn repository <[log in to unmask]>

Date:

Tue, 25 Nov 2014 23:19:29 -0000

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (272 lines)

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

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search Archives

Search Archives


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Archives

January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013

ATOM RSS1 RSS2



LISTSERV.SLAC.STANFORD.EDU

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager

Privacy Notice, Security Notice and Terms of Use