Author: [log in to unmask]
Date: Tue Sep 8 16:11:19 2015
New Revision: 3554
Log:
Add method that allows setting the fieldMap.
Modified:
java/trunk/recon/src/main/java/org/hps/recon/utils/TrackClusterMatcher.java
Modified: java/trunk/recon/src/main/java/org/hps/recon/utils/TrackClusterMatcher.java
=============================================================================
--- java/trunk/recon/src/main/java/org/hps/recon/utils/TrackClusterMatcher.java (original)
+++ java/trunk/recon/src/main/java/org/hps/recon/utils/TrackClusterMatcher.java Tue Sep 8 16:11:19 2015
@@ -10,13 +10,15 @@
import hep.aida.IHistogramFactory;
import hep.aida.ITree;
import hep.aida.ref.rootwriter.RootFileStore;
-
import hep.physics.vec.BasicHep3Vector;
import hep.physics.vec.Hep3Vector;
import org.lcsim.event.Cluster;
import org.lcsim.event.Track;
-
+import org.lcsim.geometry.FieldMap;
+import org.lcsim.recon.tracking.seedtracker.TrackState;
+import org.hps.conditions.database.DatabaseConditionsManager;
+import org.hps.recon.tracking.CoordinateTransformations;
import org.hps.recon.tracking.TrackUtils;
/**
@@ -26,6 +28,9 @@
*/
public class TrackClusterMatcher {
+ /** The B field map */
+ FieldMap bFieldMap = null;
+
// Plotting
private ITree tree;
private IHistogramFactory histogramFactory;
@@ -50,6 +55,12 @@
private double bottomClusterTrackMatchDeltaYLow = -22.5; // mm
private double bottomClusterTrackMatchDeltaYHigh = 22.5; // mm
+ /** Z position to start extrapolation from */
+ double extStartPos = 700; // mm
+
+ /** The extrapolation step size */
+ double stepSize = 5.; // mm
+
/** Constructor */
public TrackClusterMatcher() {};
@@ -63,6 +74,10 @@
this.enablePlots = enablePlots;
if (enablePlots == true) this.bookHistograms();
}
+
+ public void setBFieldMap(FieldMap bFieldMap) {
+ this.bFieldMap = bFieldMap;
+ }
/**
* Set the window in which the x residual of the extrapolated bottom track
@@ -135,15 +150,26 @@
// Get the cluster position
Hep3Vector clusterPosition = new BasicHep3Vector(cluster.getPosition());
-
+ //System.out.println("Cluster Position: " + clusterPosition.toString());
+
// Extrapolate the track to the Ecal cluster position
// TODO: At some point, this needs to use the fringe field
Hep3Vector trackPosAtEcal = TrackUtils.extrapolateTrack(track, clusterPosition.z());
-
+ //Hep3Vector trackPosAtEcal
+ // = new BasicHep3Vector(TrackUtils.extrapolateTrackUsingFieldMap(track, this.extStartPos, clusterPosition.z(), this.stepSize, bFieldMap).getReferencePoint());
+ //trackPosAtEcal = CoordinateTransformations.transformVectorToDetector(trackPosAtEcal);
+ //System.out.println("Track position at Ecal: " + trackPosAtEcal.toString());
+
+
+ //TrackState trackStateAtEcal = (TrackState) track.getTrackStates().get(1);
+
// Calculate the difference between the cluster position at the Ecal and
// the track in both the x and y directions
double deltaX = clusterPosition.x() - trackPosAtEcal.x();
double deltaY = clusterPosition.y() - trackPosAtEcal.y();
+
+ //System.out.println("delta X: " + deltaX);
+ //System.out.println("delta Y: " + deltaY);
if (enablePlots) {
if (track.getTrackStates().get(0).getTanLambda() > 0) {
|