Print

Print


Commit in lcsim/src/org/lcsim/recon/tracking/gtrdetector on MAIN
GtrDetector.java+60-121.10 -> 1.11
updates for ZPlane

lcsim/src/org/lcsim/recon/tracking/gtrdetector
GtrDetector.java 1.10 -> 1.11
diff -u -r1.10 -r1.11
--- GtrDetector.java	8 May 2008 01:18:21 -0000	1.10
+++ GtrDetector.java	8 May 2008 21:35:37 -0000	1.11
@@ -3,7 +3,7 @@
  *
  * Created on July 30, 2005, 3:30 PM
  *
- * $Id: GtrDetector.java,v 1.10 2008/05/08 01:18:21 ngraf Exp $
+ * $Id: GtrDetector.java,v 1.11 2008/05/08 21:35:37 ngraf Exp $
  */
 
 package org.lcsim.recon.tracking.gtrdetector;
@@ -67,6 +67,7 @@
         Collection<Subdetector> subDets = subDetMap.values();
         // TODO need a mechanism to define what the digitization for each subdetector is.
         // current default is to assume 2d points being measured in all the detectors.
+        // TODO create trf surfaces for non-sensitive detector elements
         for(Subdetector subDet : subDets)
         {
             if (subDet instanceof DiskTracker)
@@ -313,6 +314,7 @@
     }
     
     // TODO: Handle modules with multiple sensitive components.
+    // create XYPlanes for barrel sensitive modules
     private void add(SiTrackerBarrel barrel)
     {
         IDetectorElement subdet = barrel.getDetectorElement();
@@ -344,7 +346,7 @@
                 double rxy = point.rxy();
                 
                 // Get global rotation.
-                IRotation3D rot = sensor.getGeometry().getLocalToGlobal().getRotation();
+//                IRotation3D rot = sensor.getGeometry().getLocalToGlobal().getRotation();
 //                System.out.println("rot="+rot.toString());
                 
                 // Get width (x) and length (y).
@@ -352,15 +354,15 @@
                 List<Point3D> vertices = box.getVertices();
 //                System.out.println("sensor has "+vertices.size()+" vertices");
                 int[] point_ordering = box.getHepRepVertexOrdering();
-                for (int i = 0; i< point_ordering.length; i++)
-                {
-                    Point3D pt = vertices.get(point_ordering[i]);
-//                    System.out.println("Local : "+i+" x= "+pt.x()+" y= "+pt.y()+" z= "+ pt.z());
-                    Hep3Vector p = sensor.getGeometry().transformLocalToGlobal(pt);
-//                    System.out.println("Global: "+i+" x= "+p.x()+" y= "+p.y()+" z= "+ p.z());
-                }
-                double u = box.getXHalfLength();
-                double v = box.getYHalfLength();
+//                for (int i = 0; i< point_ordering.length; i++)
+//                {
+//                    Point3D pt = vertices.get(point_ordering[i]);
+////                    System.out.println("Local : "+i+" x= "+pt.x()+" y= "+pt.y()+" z= "+ pt.z());
+//                    Hep3Vector p = sensor.getGeometry().transformLocalToGlobal(pt);
+////                    System.out.println("Global: "+i+" x= "+p.x()+" y= "+p.y()+" z= "+ p.z());
+//                }
+//                double u = box.getXHalfLength();
+//                double v = box.getYHalfLength();
                 
                 // create the sensor plane.
                 // use the heprep ordering
@@ -403,6 +405,7 @@
         }
     }
     
+    // create ZPlanes for forward sensitive elements
     private void add(SiTrackerEndcap e)
     {
         IDetectorElement de = e.getDetectorElement();
@@ -417,7 +420,7 @@
                     {
                         double x0 = calculateEndcapModuleX0(module);
                         
-                        //System.out.println("module " + module.getName() + " x0 = " + x0);
+                        System.out.println("module " + module.getName() + " x0 = " + x0);
                         
                         IDetectorElement sensor = null;
                         for (IDetectorElement component : module.getChildren())
@@ -434,8 +437,53 @@
                             throw new RuntimeException("No sensor found!");
                         
                         ISolid solid = sensor.getGeometry().getLogicalVolume().getSolid();
+                        List<Point3D> vertices = null;
+                        double zpos = 0.;
+                        int[] point_ordering = null;
+                        if(solid instanceof Box)
+                        {
+                            System.out.println("Box");
+                            Box box = (Box) solid;
+                            vertices = box.getVertices();
+                            point_ordering = box.getHepRepVertexOrdering();
+                        }
+                        else if (solid instanceof Trd)
+                        {
+                            System.out.println("Trd");
+                            Trd trd = (Trd) solid;
+                            vertices = trd.getVertices();
+                            point_ordering = trd.getHepRepVertexOrdering();
+                        }
+                        else if (solid instanceof Trap)
+                        {
+                            System.out.println("Trap");
+                            Trap trap = (Trap) solid;
+                            vertices = trap.getVertices();
+                            point_ordering = trap.getHepRepVertexOrdering();
+                        }
+                        if (vertices == null)
+                            throw new RuntimeException("No vertices found for "+sensor.getName()+"!");
+                        System.out.println("sensor has "+vertices.size()+" vertices");
+                        // let's handle z
+                        zpos += sensor.getGeometry().transformLocalToGlobal(vertices.get(0)).z();
+                        zpos += sensor.getGeometry().transformLocalToGlobal(vertices.get(2)).z();
+                        zpos /=2.;
+                        System.out.println("ZPlane z: "+zpos);
+                        for (int i = 0; i< point_ordering.length; ++i)
+                        {
+                            Point3D pt = vertices.get(point_ordering[i]);
+                            System.out.println("Local : "+i+" x= "+pt.x()+" y= "+pt.y()+" z= "+ pt.z());
+                            Hep3Vector p = sensor.getGeometry().transformLocalToGlobal(pt);
+                            System.out.println("Global: "+i+" x= "+p.x()+" y= "+p.y()+" z= "+ p.z());
+                        }
                         
                         // TODO: Create ZPlanes here!
+                        // From inspection, we have:
+                        // +z : 0,1,4,5
+                        // -z : 2,3,6,7
+                        // again, from inspection, all volumes have 8 vertices
+                        int[] corners = {0,1,4,5};
+                        
                     }
                     
                 }
CVSspam 0.2.8