Print

Print


Author: phansson
Date: Tue Nov  4 22:00:43 2014
New Revision: 3413

Log:
Make local half-module coordinate system comply with SiSensor definition. Fix override problem with choosing which part of the geometry to build.

Modified:
    projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014GeometryDefinition.java
    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/HPSTrackerGeometryDefinition.java

Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014GeometryDefinition.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014GeometryDefinition.java	(original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014GeometryDefinition.java	Tue Nov  4 22:00:43 2014
@@ -24,15 +24,7 @@
 
 
 
-    //steering
-    public final boolean doAxial = true;
-    public final boolean doStereo = true;
-    public final boolean doColdBlock = false;
-    public final boolean doBottom = true;
-    public final boolean doTop = true;
-    public final int layerBitMask =  0x1F;    //0x1;//
-
-
+    
     //General
     protected static final boolean useSiStripsConvention = true;
     protected static final boolean use30mradRotation = true;
@@ -47,6 +39,12 @@
 
     public HPSTestRunTracker2014GeometryDefinition(boolean debug, Element node) {
         super(debug, node);
+        doAxial = true;
+        doStereo = true;
+        doColdBlock = false;
+        doBottom = true;
+        doTop = true;
+        layerBitMask = 0x1F;    //0x1;//
     }
 
 
@@ -1163,11 +1161,18 @@
             // Note that this can be different between axial and stereo since the survey positions determine the local coordinate 
             // system now.
             // I'm not sure this feels good but this has to be done somewhere
+//            double box_center_local_x =  TestRunHalfModule.getLength()/2.0 - ( (170.00 + 10.00) - Sensor.getSensorLength()/2.0); 
+//            double box_center_local_y = -1.0*TestRunHalfModule.getThickness()/2.0 + (TestRunHalfModule.getCFThickness() + HalfModuleLamination.kapton_thickness + Sensor.getSensorThickness()/2.0);
+//            double box_center_local_z = TestRunHalfModule.getWidth()/2.0 - ( 12.66 - (8.83 -3.00) + Sensor.getSensorWidth()/2.0 ); 
+            
             double box_center_local_x =  TestRunHalfModule.getLength()/2.0 - ( (170.00 + 10.00) - Sensor.getSensorLength()/2.0); 
-            double box_center_local_y = -1.0*TestRunHalfModule.getThickness()/2.0 + (TestRunHalfModule.getCFThickness() + HalfModuleLamination.kapton_thickness + Sensor.getSensorThickness()/2.0);
+            double box_center_local_y = - Sensor.getSensorThickness()/2.0 - HalfModuleLamination.kapton_thickness - CarbonFiber.cf_thickness + half_module_thickness/2.0; 
             double box_center_local_z = TestRunHalfModule.getWidth()/2.0 - ( 12.66 - (8.83 -3.00) + Sensor.getSensorWidth()/2.0 ); 
+            
+            
             if(useSiStripsConvention) {
-                setCenter(box_center_local_z, box_center_local_x, box_center_local_y); 
+                //setCenter(box_center_local_z, box_center_local_x, box_center_local_y); 
+                setCenter(-1.0*box_center_local_z, box_center_local_x, box_center_local_y); 
             } else {
                 setCenter(box_center_local_x, box_center_local_y, box_center_local_z); 
             }
@@ -1253,12 +1258,19 @@
 
 
             if(useSiStripsConvention) {
+//                vee_pos_halfmod_local_x =  ball_pos_halfmod_local_x;
+//                vee_pos_halfmod_local_y =  ball_pos_halfmod_local_y;
+//                vee_pos_halfmod_local_z =  ball_pos_halfmod_local_z + Sensor.getSensorWidth()/2.0;
+//                flat_pos_halfmod_local_x =  ball_pos_halfmod_local_x + Sensor.getSensorLength()/2.0;
+//                flat_pos_halfmod_local_y =  ball_pos_halfmod_local_y;
+//                flat_pos_halfmod_local_z =  ball_pos_halfmod_local_z;        
                 vee_pos_halfmod_local_x =  ball_pos_halfmod_local_x;
                 vee_pos_halfmod_local_y =  ball_pos_halfmod_local_y;
-                vee_pos_halfmod_local_z =  ball_pos_halfmod_local_z + Sensor.getSensorWidth()/2.0;
+                vee_pos_halfmod_local_z =  ball_pos_halfmod_local_z - Sensor.getSensorWidth()/2.0;
                 flat_pos_halfmod_local_x =  ball_pos_halfmod_local_x + Sensor.getSensorLength()/2.0;
                 flat_pos_halfmod_local_y =  ball_pos_halfmod_local_y;
                 flat_pos_halfmod_local_z =  ball_pos_halfmod_local_z;        
+
             } else {
                 vee_pos_halfmod_local_x =  ball_pos_halfmod_local_x + Sensor.getSensorLength()/2.0;
                 vee_pos_halfmod_local_y =  ball_pos_halfmod_local_y;
@@ -1278,6 +1290,9 @@
             }
 
         }
+        
+        
+        
     }
 
 
@@ -1332,12 +1347,12 @@
             
             if(useSiStripsConvention) {
 
-                vee_pos_halfmod_local_x =  ball_pos_halfmod_local_x ;
-                vee_pos_halfmod_local_y =  ball_pos_halfmod_local_y;
-                vee_pos_halfmod_local_z =  ball_pos_halfmod_local_z + Sensor.getSensorWidth()/2.0;
-                flat_pos_halfmod_local_x =  ball_pos_halfmod_local_x + Sensor.getSensorLength()/2.0;
-                flat_pos_halfmod_local_y =  ball_pos_halfmod_local_y;
-                flat_pos_halfmod_local_z =  ball_pos_halfmod_local_z;      
+//                vee_pos_halfmod_local_x =  ball_pos_halfmod_local_x ;
+//                vee_pos_halfmod_local_y =  ball_pos_halfmod_local_y;
+//                vee_pos_halfmod_local_z =  ball_pos_halfmod_local_z + Sensor.getSensorWidth()/2.0;
+//                flat_pos_halfmod_local_x =  ball_pos_halfmod_local_x + Sensor.getSensorLength()/2.0;
+//                flat_pos_halfmod_local_y =  ball_pos_halfmod_local_y;
+//                flat_pos_halfmod_local_z =  ball_pos_halfmod_local_z;      
 
 
 
@@ -1348,6 +1363,14 @@
                 //                flat_pos_halfmod_local_y =  ball_pos_halfmod_local_y;
                 //                flat_pos_halfmod_local_z =  ball_pos_halfmod_local_z;            
 
+                
+                vee_pos_halfmod_local_x =  ball_pos_halfmod_local_x;
+                vee_pos_halfmod_local_y =  ball_pos_halfmod_local_y;
+                vee_pos_halfmod_local_z =  ball_pos_halfmod_local_z - Sensor.getSensorWidth()/2.0;
+                flat_pos_halfmod_local_x =  ball_pos_halfmod_local_x + Sensor.getSensorLength()/2.0;
+                flat_pos_halfmod_local_y =  ball_pos_halfmod_local_y;
+                flat_pos_halfmod_local_z =  ball_pos_halfmod_local_z;        
+                
 
             } else {
                 
@@ -1660,7 +1683,7 @@
      */
     public static class HalfModuleLamination extends HalfModuleComponent {
         protected static final double kapton_length = 184.0;
-        protected static final double kapton_width = 40.0;
+        protected static final double kapton_width = 40.0; // -2.0; // width under the sensor, 2mm wider under hybrid.
         protected static final double kapton_thickness = 0.050;
         public HalfModuleLamination(String name, SurveyVolume m, int id) {
             super(name, m, null, id);
@@ -1680,31 +1703,38 @@
             //             double flat_pos_kapton_local_y =  ball_pos_kapton_local_y + HalfModuleLamination.kapton_thickness/2.0; // arbitrary distance
             //             double flat_pos_kapton_local_z =  ball_pos_kapton_local_z;
 
-            double ball_pos_kapton_local_x =  -1 * (Sensor.getSensorWidth()/2.0 + 12.66) + 8.83 - 3.00 + 6.00;
-            double ball_pos_kapton_local_y =  -1 * (180.0 - Sensor.getSensorLength()/2.0) + 8.5;
-            double ball_pos_kapton_local_z = (Sensor.getSensorThickness()/2.0 + HalfModuleLamination.kapton_thickness/2.0);
-            double vee_pos_kapton_local_x =  ball_pos_kapton_local_x + Sensor.getSensorWidth()/2.0; // arbitrary distance
-            double vee_pos_kapton_local_y =  ball_pos_kapton_local_y;
-            double vee_pos_kapton_local_z =  ball_pos_kapton_local_z;
-            double flat_pos_kapton_local_x =  ball_pos_kapton_local_x;
-            double flat_pos_kapton_local_y =  ball_pos_kapton_local_y + Sensor.getSensorLength(); // arbitrary distance
-            double flat_pos_kapton_local_z =  ball_pos_kapton_local_z;
-
-
-
+//            double ball_pos_kapton_local_x =  -1 * (Sensor.getSensorWidth()/2.0 + 12.66) + 8.83 - 3.00 + 6.00;
+//            double ball_pos_kapton_local_y =  -1 * (180.0 - Sensor.getSensorLength()/2.0) + 8.5;
+//            double ball_pos_kapton_local_z = (Sensor.getSensorThickness()/2.0 + HalfModuleLamination.kapton_thickness/2.0);
+//            double vee_pos_kapton_local_x =  ball_pos_kapton_local_x + Sensor.getSensorWidth()/2.0; // arbitrary distance
+//            double vee_pos_kapton_local_y =  ball_pos_kapton_local_y;
+//            double vee_pos_kapton_local_z =  ball_pos_kapton_local_z;
+//            double flat_pos_kapton_local_x =  ball_pos_kapton_local_x;
+//            double flat_pos_kapton_local_y =  ball_pos_kapton_local_y + Sensor.getSensorLength(); // arbitrary distance
+//            double flat_pos_kapton_local_z =  ball_pos_kapton_local_z;
+
+            double ball_pos_kapton_local_x =  Sensor.sensor_width/2.0 + 6.83 - 6.0 - kapton_width/2.0;
+            double ball_pos_kapton_local_y =  Sensor.getSensorLength()/2.0 - 170.0 - 10.0 + 8.5 + kapton_length/2.0;
+            double ball_pos_kapton_local_z = -1.0 * (Sensor.getSensorThickness()/2.0 + HalfModuleLamination.kapton_thickness/2.0);
+            
+            //ballPos = new BasicHep3Vector(ball_pos_kapton_local_x,ball_pos_kapton_local_y,ball_pos_kapton_local_z);
+            //veePos = new BasicHep3Vector(vee_pos_kapton_local_x,vee_pos_kapton_local_y,vee_pos_kapton_local_z);
+            //flatPos = new BasicHep3Vector(flat_pos_kapton_local_x,flat_pos_kapton_local_y,flat_pos_kapton_local_z);
 
             ballPos = new BasicHep3Vector(ball_pos_kapton_local_x,ball_pos_kapton_local_y,ball_pos_kapton_local_z);
-            veePos = new BasicHep3Vector(vee_pos_kapton_local_x,vee_pos_kapton_local_y,vee_pos_kapton_local_z);
-            flatPos = new BasicHep3Vector(flat_pos_kapton_local_x,flat_pos_kapton_local_y,flat_pos_kapton_local_z);
-
+            veePos = new BasicHep3Vector(ballPos.x() + 1.0,ballPos.y(),ballPos.z());
+            flatPos = new BasicHep3Vector(ballPos.x(),ballPos.y()+ 1.0,ballPos.z());
+            
+            
             if(debug) {
                 System.out.printf("%s: survey positions for %s\n",this.getClass().getSimpleName(),getName());
                 printSurveyPos();
             }
         }
         protected void setCenter() {
-            setCenter(getWidth()/2.0, getLength()/2.0,0.0);
-            //setCenter(getLength()/2.0, 0.0, getWidth()/2.0);
+            setCenter(0.0, 0.0, 0.0);
+            //setCenter(getWidth()/2.0, getLength()/2.0,0.0);
+            //setCenter(getWidth()/2.0, getLength()/2.0,0.0);
         }
         protected  double getThickness() {
             return kapton_thickness;
@@ -1755,19 +1785,27 @@
 //            setVeePos(vee_pos_cf_local_x,vee_pos_cf_local_y,vee_pos_cf_local_z);
 //            setFlatPos(flat_pos_cf_local_x,flat_pos_cf_local_y,flat_pos_cf_local_z);
            
-            final double ball_pos_cf_local_x =  -1 * (Sensor.getSensorWidth()/2.0 + 12.66) + 8.83 - 3.00;
-            final double ball_pos_cf_local_y =  -1 * (180.0 - Sensor.getSensorLength()/2.0);
-            final double ball_pos_cf_local_z = (Sensor.getSensorThickness()/2.0 + HalfModuleLamination.kapton_thickness + TestRunHalfModule.getCFThickness()/2.0);
-            final double vee_pos_cf_local_x =  ball_pos_cf_local_x + Sensor.getSensorWidth()/2.0; // arbitrary distance
-            final double vee_pos_cf_local_y =  ball_pos_cf_local_y;
-            final double vee_pos_cf_local_z =  ball_pos_cf_local_z;
-            final double flat_pos_cf_local_x =  ball_pos_cf_local_x;
-            final double flat_pos_cf_local_y =  ball_pos_cf_local_y + Sensor.getSensorLength()/2.0; // arbitrary distance
-            final double flat_pos_cf_local_z =  ball_pos_cf_local_z;
-            setBallPos(ball_pos_cf_local_x,ball_pos_cf_local_y,ball_pos_cf_local_z);
-            setVeePos(vee_pos_cf_local_x,vee_pos_cf_local_y,vee_pos_cf_local_z);
-            setFlatPos(flat_pos_cf_local_x,flat_pos_cf_local_y,flat_pos_cf_local_z);
-           
+//            final double ball_pos_cf_local_x =  -1 * (Sensor.getSensorWidth()/2.0 + 12.66) + 8.83 - 3.00;
+//            final double ball_pos_cf_local_y =  -1 * (180.0 - Sensor.getSensorLength()/2.0);
+//            final double ball_pos_cf_local_z = (Sensor.getSensorThickness()/2.0 + HalfModuleLamination.kapton_thickness + TestRunHalfModule.getCFThickness()/2.0);
+//            final double vee_pos_cf_local_x =  ball_pos_cf_local_x + Sensor.getSensorWidth()/2.0; // arbitrary distance
+//            final double vee_pos_cf_local_y =  ball_pos_cf_local_y;
+//            final double vee_pos_cf_local_z =  ball_pos_cf_local_z;
+//            final double flat_pos_cf_local_x =  ball_pos_cf_local_x;
+//            final double flat_pos_cf_local_y =  ball_pos_cf_local_y + Sensor.getSensorLength()/2.0; // arbitrary distance
+//            final double flat_pos_cf_local_z =  ball_pos_cf_local_z;
+//            setBallPos(ball_pos_cf_local_x,ball_pos_cf_local_y,ball_pos_cf_local_z);
+//            setVeePos(vee_pos_cf_local_x,vee_pos_cf_local_y,vee_pos_cf_local_z);
+//            setFlatPos(flat_pos_cf_local_x,flat_pos_cf_local_y,flat_pos_cf_local_z);
+ 
+            
+            final double ball_pos_cf_local_x =  Sensor.getSensorWidth()/2.0 + 6.83 - cf_width/2.0;
+            final double ball_pos_cf_local_y =  Sensor.getSensorLength()/2.0 - 170.0 - 10.0 + cf_length/2.0;
+            final double ball_pos_cf_local_z =  -1 * ( Sensor.getSensorThickness()/2.0 + HalfModuleLamination.kapton_thickness + TestRunHalfModule.getCFThickness()/2.0 );
+            
+            ballPos = new BasicHep3Vector(ball_pos_cf_local_x, ball_pos_cf_local_y, ball_pos_cf_local_z);
+            veePos = new BasicHep3Vector(ballPos.x() + 1.0, ballPos.y(), ballPos.z());
+            flatPos = new BasicHep3Vector(ballPos.x(), ballPos.y() + 1.0, ballPos.z());
             
             
             
@@ -1778,7 +1816,8 @@
             
         }
         protected void setCenter() {
-            setCenter(getWidth()/2.0, getLength()/2.0, 0.0);
+            setCenter(0.0, 0.0, 0.0);
+            //setCenter(getWidth()/2.0, getLength()/2.0, 0.0);
             //setCenter(getLength()/2.0, 0.0, getWidth()/2.0);
         }
         protected double getThickness() {
@@ -1830,18 +1869,27 @@
 //            setVeePos(vee_pos_hybrid_local_x,vee_pos_hybrid_local_y,vee_pos_hybrid_local_z);
 //            setFlatPos(flat_pos_hybrid_local_x,flat_pos_hybrid_local_y,flat_pos_hybrid_local_z);
             
-            final double ball_pos_hybrid_local_x =  -1 * (Sensor.getSensorWidth()/2.0);
-            final double ball_pos_hybrid_local_y =  -1 * (170.0 - Sensor.getSensorLength()/2.0);
-            final double ball_pos_hybrid_local_z = (Sensor.getSensorThickness()/2.0 - TestRunHalfModule.getHybridThickness()/2.0);
-            final double vee_pos_hybrid_local_x =  ball_pos_hybrid_local_x + Sensor.getSensorWidth()/2.0; // arbitrary distance
-            final double vee_pos_hybrid_local_y =  ball_pos_hybrid_local_y;
-            final double vee_pos_hybrid_local_z =  ball_pos_hybrid_local_z;
-            final double flat_pos_hybrid_local_x =  ball_pos_hybrid_local_x;
-            final double flat_pos_hybrid_local_y =  ball_pos_hybrid_local_y + Sensor.getSensorLength()/2.0; // arbitrary distance
-            final double flat_pos_hybrid_local_z =  ball_pos_hybrid_local_z;
-            setBallPos(ball_pos_hybrid_local_x,ball_pos_hybrid_local_y,ball_pos_hybrid_local_z);
-            setVeePos(vee_pos_hybrid_local_x,vee_pos_hybrid_local_y,vee_pos_hybrid_local_z);
-            setFlatPos(flat_pos_hybrid_local_x,flat_pos_hybrid_local_y,flat_pos_hybrid_local_z);
+//            final double ball_pos_hybrid_local_x =  -1 * (Sensor.getSensorWidth()/2.0);
+//            final double ball_pos_hybrid_local_y =  -1 * (170.0 - Sensor.getSensorLength()/2.0);
+//            final double ball_pos_hybrid_local_z = (Sensor.getSensorThickness()/2.0 - TestRunHalfModule.getHybridThickness()/2.0);
+//            final double vee_pos_hybrid_local_x =  ball_pos_hybrid_local_x + Sensor.getSensorWidth()/2.0; // arbitrary distance
+//            final double vee_pos_hybrid_local_y =  ball_pos_hybrid_local_y;
+//            final double vee_pos_hybrid_local_z =  ball_pos_hybrid_local_z;
+//            final double flat_pos_hybrid_local_x =  ball_pos_hybrid_local_x;
+//            final double flat_pos_hybrid_local_y =  ball_pos_hybrid_local_y + Sensor.getSensorLength()/2.0; // arbitrary distance
+//            final double flat_pos_hybrid_local_z =  ball_pos_hybrid_local_z;
+//            setBallPos(ball_pos_hybrid_local_x,ball_pos_hybrid_local_y,ball_pos_hybrid_local_z);
+//            setVeePos(vee_pos_hybrid_local_x,vee_pos_hybrid_local_y,vee_pos_hybrid_local_z);
+//            setFlatPos(flat_pos_hybrid_local_x,flat_pos_hybrid_local_y,flat_pos_hybrid_local_z);
+            
+            final double ball_pos_hybrid_local_x =  0.0;
+            final double ball_pos_hybrid_local_y =  Sensor.getSensorLength()/2.0 - 170.0 + hybrid_length/2.0;
+            final double ball_pos_hybrid_local_z = -1.0*Sensor.getSensorThickness()/2.0 + hybrid_thickness/2.0;
+            
+            ballPos = new BasicHep3Vector(ball_pos_hybrid_local_x,ball_pos_hybrid_local_y, ball_pos_hybrid_local_z);
+            veePos = new BasicHep3Vector(ballPos.x() + 1.0, ballPos.y(), ballPos.z());
+            flatPos = new BasicHep3Vector(ballPos.x(), ballPos.y() + 1.0, ballPos.z());
+            
             
             
             if(debug) {
@@ -1850,7 +1898,8 @@
             }
         }
         protected void setCenter() {
-            setCenter(getWidth()/2.0, getLength()/2.0, 0.0);
+            setCenter(0.0, 0.0, 0.0);
+            //setCenter(getWidth()/2.0, getLength()/2.0, 0.0);
             //setCenter(getLength()/2.0, 0.0, getWidth()/2.0);
         }
         protected double getThickness() {

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  4 22:00:43 2014
@@ -19,18 +19,14 @@
 
 
 
-    //steering
-    public final boolean doAxial = false;
-    public final boolean doStereo = false;
-    public final boolean doColdBlock = false;
-    public final boolean doBottom = true;
-    public final boolean doTop = false;
-    public final int layerBitMask =  0x7;    //0x1;//
-    
-
-
     public HPSTracker2014GeometryDefinition(boolean debug, Element node) {
         super(debug, node);
+        doAxial = false;
+        doStereo = false;
+        doColdBlock = false;
+        doBottom = true;
+        doTop = false;
+        layerBitMask = 0x7;
     }
 
 

Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerGeometryDefinition.java
 =============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerGeometryDefinition.java	(original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerGeometryDefinition.java	Tue Nov  4 22:00:43 2014
@@ -19,12 +19,12 @@
 
 
     //steering
-    public final boolean doAxial = true;
-    public final boolean doStereo = true;
-    public final boolean doColdBlock = false;
-    public final boolean doBottom = true;
-    public final boolean doTop = true;
-    public final int layerBitMask =  0x1;    //0x1;//
+    public boolean doAxial = true;
+    public boolean doStereo = true;
+    public boolean doColdBlock = false;
+    public boolean doBottom = true;
+    public boolean doTop = true;
+    public int layerBitMask =  0x1;    //0x1;//
 
 
     //General

########################################################################
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