lcsim/src/org/lcsim/contrib/tracking
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;