Commit in lcsim/src/org/lcsim/contrib/SteveMagill on MAIN
TrkXPosDriver.java+17-91.2 -> 1.3


lcsim/src/org/lcsim/contrib/SteveMagill
TrkXPosDriver.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- TrkXPosDriver.java	29 May 2008 22:35:28 -0000	1.2
+++ TrkXPosDriver.java	6 Jun 2008 18:39:06 -0000	1.3
@@ -99,7 +99,7 @@
             for (int i=0; i<_numecemlayers; ++i)
             {
                 ECZs[i] = emec.getLayering().getDistanceToLayerSensorMid(i);
-//                System.out.println("EM Endcap Layer Number " +i+ " EM Endcap Z " +_emecZ[i]);
+//                System.out.println("EM Endcap Layer Number " + i + " EM Endcap Z " + ECZs[i]);
             }
 
             CylindricalCalorimeter hadb = ((CylindricalCalorimeter) det.getSubdetectors().get("HADBarrel"));       
@@ -141,6 +141,7 @@
             Hep3Vector trp3 = new BasicHep3Vector(trp);
             double[] trrp = itr.getReferencePoint();
             double[] trpar = itr.getTrackParameters();
+//            System.out.println("Track parameters " + trpar[0] + + trpar[1] + + trpar[3]);
             double[] tror = new double[3];
             tror[0] = -trpar[0]*Math.sin(trpar[1])+trrp[0];
             tror[1] = trpar[0]*Math.cos(trpar[1])+trrp[1];
@@ -155,23 +156,31 @@
             
             //  get swim distances to selected points (hard coded for now)
             double tobrad0 = tswim.getDistanceToRadius(BRadii[0]);  // layer 0 of ECAL Barrel
-            double toecz0 = tswim.getDistanceToZ(ECZs[0]);  // layer 0 of ECAL Endcap
+            double toecz0 = 0.;
+            if (trp[2]>0) toecz0 = tswim.getDistanceToZ(ECZs[0]);
+            if (trp[2]<0) toecz0 = tswim.getDistanceToZ(-ECZs[0]);
             double tobrad7 = tswim.getDistanceToRadius(BRadii[7]);  // layer 7 of ECAL Barrel
-            double toecz7 = tswim.getDistanceToZ(ECZs[7]);  // layer 7 of ECAL Endcap
+            double toecz7 = 0.;
+            if (trp[2]>0) toecz7 = tswim.getDistanceToZ(ECZs[7]);  // layer 7 of ECAL Endcap
+            if (trp[2]<0) toecz7 = tswim.getDistanceToZ(-ECZs[7]);  // layer 7 of ECAL in other endcap
             double tobrad30 = tswim.getDistanceToRadius(BRadii[_numbemlayers]);  // layer 0 of HCAL Barrel
-            double toecz30 = tswim.getDistanceToZ(ECZs[_numbemlayers]);  // layer 0 of HCAL Endcap
+            double toecz30 = 0.;
+            if (trp[2]>0) toecz30 = tswim.getDistanceToZ(ECZs[_numecemlayers]);  // layer 0 of HCAL Endcap
+            if (trp[2]<0) toecz30 = tswim.getDistanceToZ(-ECZs[_numecemlayers]);  // layer 0 of HCAL in other endcap
 
             //  make map for ECAL layer 0
             if (tobrad0<Math.abs(toecz0)) // in barrel
             {
 //                SpacePoint trSP = tswim.getPointAtDistance(tobrad0);  // old way
                 SpacePoint trSP = tswim.getPointAtLength(tobrad0);
+//                System.out.println("Spacept z " + trSP.z());
                 trkE0map.put(itr, trSP);
                 
             } else  // in endcap
             {
                 SpacePoint trSP = tswim.getPointAtLength(toecz0);
-                trkE0map.put(itr, trSP);                
+//                System.out.println("Spacept z " + trSP.z());                
+                trkE0map.put(itr, trSP);
             }
 
             //  make map for ECAL layer 7
@@ -183,7 +192,7 @@
             } else  // in endcap
             {
                 SpacePoint trSP = tswim.getPointAtLength(toecz7);
-                trkEsmmap.put(itr, trSP);                
+                trkEsmmap.put(itr, trSP);
             }
             
             //  make map for HCAL layer 0
@@ -194,10 +203,9 @@
                 
             } else  // in endcap
             {
-                SpacePoint trSP = tswim.getPointAtLength(toecz30);
-                trkH0map.put(itr, trSP);                
+                    SpacePoint trSP = tswim.getPointAtLength(toecz30);
+                    trkH0map.put(itr, trSP);
             }
-            
         }
         
         event.put("TrackXE0Map",trkE0map); 
CVSspam 0.2.8