Commit in lcsim/src/org/lcsim/contrib/tracking on MAIN
ZSeg.java+10-81.1 -> 1.2


lcsim/src/org/lcsim/contrib/tracking
ZSeg.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- ZSeg.java	18 Jul 2007 22:12:26 -0000	1.1
+++ ZSeg.java	10 Aug 2007 19:37:49 -0000	1.2
@@ -23,7 +23,7 @@
  */
 public class ZSeg {
     //segment length, in mm
-    static int segs=300;
+    static int segs=100;
 
     /** Creates a new instance of ZSeg */
     
@@ -53,7 +53,7 @@
        
         //checks whether or not 3rd hit falls within projected range
         //includes check for whether to use interpolation or extrapolation
-	public static boolean zChecker(SimTrackerHit ht1, SimTrackerHit ht2, SimTrackerHit ht3){
+	private static boolean zChecker(SimTrackerHit ht1, SimTrackerHit ht2, SimTrackerHit ht3){
             boolean hitPass = false;
                 
             if (ht1!=null && ht2!=null && ht3 !=null){                  
@@ -65,8 +65,10 @@
 		double[] mod2 = moduleInfo(ht2.getPoint()[2], r2);
 		double[] mod3 = moduleInfo(ht3.getPoint()[2], r3);
 
-		double z1 = zFinder(mod1[1], r1, mod2[0], r2, r3);
-		double z2 = zFinder(mod1[0], r1, mod2[1], r2, r3);
+		double z1ext = zFinder(mod1[1], r1, mod2[0], r2, r3);
+		double z2ext = zFinder(mod1[0], r1, mod2[1], r2, r3);
+                double z1int = zFinder(mod1[0], r1, mod2[0], r2, r3);
+		double z2int = zFinder(mod1[1], r1, mod2[1], r2, r3);
                         
                 //extrapolation: used when hit is in layer on 1 side or other of 2 hits
                 //if any part of module lies between projected lines
@@ -75,10 +77,10 @@
                     //checking if minz lies within projected range
                     //only minz OR maxz needs to fall within range since
                     //we only have module info and not exact hit info
-                    if ((mod3[0] >= z1 && mod3[0] <= z2) || (mod3[0] <= z1 && mod3[0] >= z2))
+                    if ((mod3[0] >= z1ext && mod3[0] <= z2ext) || (mod3[0] <= z1ext && mod3[0] >= z2ext))
                         hitPass = true;
                     //checking if maxz lies within projected range
-                    if ((mod3[1] >= z1 && mod3[1] <= z2) || (mod3[1] <= z1 && mod3[1] >= z2))
+                    if ((mod3[1] >= z1ext && mod3[1] <= z2ext) || (mod3[1] <= z1ext && mod3[1] >= z2ext))
                         hitPass = true;
                 }                        
                 //interpolation: used when third hit is in layer between 2 other hits;
@@ -86,7 +88,7 @@
                 //then hit passes interpolation test
                 else if ((r3 < r1 && r3 > r2) || (r3 > r1 && r3 < r2)){
                     //checking if minz or maxz lies within projected range
-                    if((mod3[0] >= z1 && mod3[0] <= z2) || (mod3[1] >= z1 && mod3[1] <= z2)){
+                    if((mod3[0] >= z1int && mod3[0] <= z2int) || (mod3[1] >= z1int && mod3[1] <= z2int)){
 			hitPass = true;
                     }
 		}
@@ -117,7 +119,7 @@
             return modInfo;
 	}
         //method used to draw projected lines onto layer at radius3
-	public static double zFinder(double z1, double r1, double z2, double r2, double r3) {
+	private static double zFinder(double z1, double r1, double z2, double r2, double r3) {
             double m = (r1-r2)/(z1-z2);
             double b = r1-m*z1;
             double z3 = (r3-b)/m;
CVSspam 0.2.8