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