Print

Print


Commit in lcsim/src/org/lcsim/contrib/JanStrube/standalone on MAIN
NickTrackVtxFitter.java+347added 1.1
Tracks.py+12-121.1 -> 1.2
FitterTestDriver_ReconTrack.java+2-21.4 -> 1.5
MainLoop.py+4-41.3 -> 1.4
FitterTestDriver.java+5-51.6 -> 1.7
+370-23
1 added + 4 modified, total 5 files
Some scripts to test the VtxFitter and show the shortcomings of ReconTrack

lcsim/src/org/lcsim/contrib/JanStrube/standalone
NickTrackVtxFitter.java added at 1.1
diff -N NickTrackVtxFitter.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ NickTrackVtxFitter.java	28 Oct 2006 01:11:33 -0000	1.1
@@ -0,0 +1,347 @@
+import static java.lang.Math.abs;
+import static java.lang.Math.sqrt;
+
+import org.lcsim.event.*;
+import org.lcsim.event.util.*;
+import org.lcsim.event.base.*;
+import org.lcsim.geometry.Detector;
+import org.lcsim.contrib.JanStrube.tracking.NewTrack;
+import org.lcsim.contrib.JanStrube.tracking.Track;
+import org.lcsim.contrib.JanStrube.vtxFitter.Fitter;
+import org.lcsim.contrib.JanStrube.vtxFitter.Vertex;
+import org.lcsim.contrib.NickSinev.tracking.wmfitter.*;
+import org.lcsim.contrib.NickSinev.tracking.util.*;
+import org.lcsim.spacegeom.SpacePoint;
+import org.lcsim.util.Driver;
+import org.lcsim.contrib.NickSinev.ztracking.*;
+import org.lcsim.contrib.NickSinev.event.util.*;
+import org.lcsim.constants.Constants;
+import hep.physics.vec.Hep3Vector;
+import hep.physics.vec.VecOp;
+import hep.physics.vec.BasicHep3Vector;
+import hep.physics.matrix.*;
+import org.lcsim.fit.circle.*;
+import java.text.*;
+import java.util.*;
+import org.lcsim.util.aida.AIDA;
+import Jama.*;
+
+public class NickTrackVtxFitter extends Driver {
+	int firstev = 0;
+
+	int lastev = 9999;
+
+	boolean real = true;
+
+	double minPt = 0.1;
+
+	double maxPt = 500.;
+
+	double minTl = 0.;
+
+	double maxTl = 5.2;
+
+	double[] minTllms = { 0.01, 0.4, 0.9, 1.4, 2.2, 3.2 };
+
+	double[] maxTllms = { 0.4, 0.9, 1.4, 2.2, 3.2, 5. };
+
+	private double vtxbrphires = 0.0035;
+
+	private double vtxbzres = 0.035;
+
+	private double vtxecrpres = 0.0035;
+
+	private double vtxecrres = 0.0035;
+
+	private double trkbrpres = 0.007;
+
+	private double trkbzres = 30.;
+
+	private double trkecrpres = 0.01;
+
+	private double trkecrres = 0.01;
+
+	private SLDFitTrack fitter = new SLDFitTrack();
+
+	private DecimalFormat df = new DecimalFormat();
+
+	private AIDA aida = AIDA.defaultInstance();
+
+	private SmearTrackerHits smTh = new SmearTrackerHits();
+
+	private TrackingCheaterSmHits cheat = new TrackingCheaterSmHits();
+
+	private int evnum = 0;
+
+	double field = 5. * Constants.fieldConversion;
+
+	int ttn = 0;
+
+	int ngdft = 0;
+
+	double trtrlpa = 0.;
+
+	public NickTrackVtxFitter() {
+		if (real) {
+			smTh.setVtxBarrRPResolution(vtxbrphires);
+			smTh.setVtxBarrZResolution(vtxbzres);
+			smTh.setVtxECRPResolution(vtxecrpres);
+			smTh.setVtxECRResolution(vtxecrres);
+			smTh.setTrkBarrRPResolution(trkbrpres);
+			smTh.setTrkBarrZResolution(trkbzres);
+			smTh.setTrkECRPResolution(trkecrpres);
+			smTh.setTrkECRResolution(trkecrres);
+		}
+		cheat.useChargedOnly = true;
+		smTh.setDoSmear(true); // ++++++++++++++++++++++++++++++++++turn on
+		// smearing
+		add(smTh);
+		add(cheat);
+		df.setMaximumFractionDigits(2);
+		fitter.setDoHist(false);
+	}
+
+	public void process(EventHeader event) {
+		if (!((evnum > firstev - 1) && (evnum < lastev + 1)))
+			return;
+		if (evnum % 100 == 0) {
+			System.out.println("Processing event " + evnum
+					+ " accepted chit tracks " + ttn + " fitted " + ngdft);
+		}
+		super.process(event);
+		if (evnum == firstev) {
+			Detector det = event.getDetector();
+			fitter.setDetector(det);
+		}
+		List<CheatedBaseTrack> tracks = null;
+		try {
+			tracks = event.get(CheatedBaseTrack.class, "CheatedBaseTracks");
+		} catch (Exception trnotf) {
+			System.out.println("No CheatedBaseTracks in the event ! \n");
+		} finally {
+		}
+		if (tracks == null)
+			return;
+
+		int nprts = tracks.size();
+		System.out.println("Tracking cheater has found " + nprts
+				+ " BaseTracks in event " + evnum);
+		int tn = 0;
+		double[] ortpar = new double[5];
+		List<Track> vtxCabdidate = new ArrayList<Track>();
+		for (CheatedBaseTrack track : tracks) {// 4
+			double[] opar = track.getTrackParameters();
+			for (int i = 0; i < 5; i++) {// 5
+				ortpar[i] = opar[i];
+			}// 4
+			MCParticle mcp = track.getMCParticle();
+			Hep3Vector po = new BasicHep3Vector(1., 1., 1.);
+			int pdgid = -1;
+			double mfmo = 0.;
+			double mcpmas = 0.;
+			if (mcp == null) {
+				System.out.println("No Particle");
+				continue;
+			}
+			po = mcp.getOrigin();
+			Hep3Vector pm = mcp.getMomentum();
+			double mphi0 = Math.atan2(pm.y(), pm.x());
+			double mPt = Math.sqrt(pm.x() * pm.x() + pm.y() * pm.y());
+			mfmo = Math.sqrt(mPt * mPt + pm.z() * pm.z());
+			double mtlam = pm.z() / mPt;
+			pdgid = mcp.getType().getPDGID();
+			mcpmas = mcp.getMass();
+			double mcpip = Math.sqrt(po.x() * po.x() + po.y() * po.y() + po.z()
+					* po.z());
+			int iq = (int) mcp.getCharge();
+			double[] tm = track.getMomentum();
+			double Pt = Math.sqrt(tm[0] * tm[0] + tm[1] * tm[1]);
+			double d0 = Math.abs(track.getTrackParameter(0));
+			double phi0 = track.getTrackParameter(1);
+			double z0 = track.getTrackParameter(3);
+			double tl = track.getTrackParameter(4);
+			double momega = track.getTrackParameter(2);
+			System.out.printf("PT: %.3f mcpip: %.3f tl: %.3f ip: %d", Pt,
+					mcpip, tl, iq);
+			// if ((Pt > minPt) && (mcpip < 0.001) && (Math.abs(tl) < maxTl)
+			// && (iq != 0) && (Pt < maxPt) && (Math.abs(tl) >= minTl)) {
+			if (Pt > 1.0) {
+				ttn++;
+				fitter.setTrack(track);
+				fitter.fit(); // **************************************************
+				System.out.println(track.fitSuccess());
+				if (!track.fitSuccess()) {
+					System.out.println("No fit success");
+					continue;
+				}
+
+				// hist
+
+				double[] ftpar = track.getTrackParameters();
+				double ftl = ftpar[4];
+				aida.cloud2D("am. of mat vs TanLam").fill(Math.abs(ftl),
+						trtrlpa * 100.);
+				double chi2 = track.getChi2();
+				int ndf = track.getNDF();
+				SymmetricMatrix trcovm = track.getErrorMatrix();
+				double dd0exp = Math.sqrt(trcovm.diagonal(0));
+				double dphi0exp = Math.sqrt(trcovm.diagonal(1));
+				double domexp = Math.sqrt(trcovm.diagonal(2));
+				boolean badFit = false;
+				if (domexp < 0.00000001) {
+					System.out.println("domexp is too small");
+					badFit = true;
+				}
+				if (Double.toString(domexp).equals("NaN"))
+					badFit = true;
+				double dz0exp = Math.sqrt(trcovm.diagonal(3));
+				double dtlexp = Math.sqrt(trcovm.diagonal(4));
+				double chi2aft = chi2 / ndf;
+				if (badFit) {
+					System.out.println("bad fit");
+					continue;
+				}
+//				System.out.println("Event:" + evnum
+//						+ "covariance matrix omega error is: " + domexp
+//						+ " divaded by omega: " + Math.abs(domexp / ortpar[2]));
+				ngdft++;
+//				aida.cloud1D("Tan Lambda of fitted tracks").fill(ftpar[4]);
+//				aida.cloud1D("Phi of fitted tracks").fill(ftpar[1]);
+				double[] fitres = new double[5];
+				for (int i = 0; i < 5; i++) {
+					fitres[i] = ftpar[i] - ortpar[i];
+				}
+				if (fitres[1] > Math.PI)
+					fitres[1] -= 2. * Math.PI;
+				if (fitres[1] < -Math.PI)
+					fitres[1] += 2. * Math.PI;
+				double[] tmf = track.getMomentum();
+				double Ptf = field / Math.abs(ftpar[2]);
+				double bfom = ftpar[2];
+				double ftP = Ptf * Math.sqrt(1. + ftpar[4] * ftpar[4]);
+				double relPer = (ftP - mfmo) / mfmo;
+//				aida.cloud1D(
+//						"delta full mom over full mom for fitted trks, Tl "
+//								+ df.format(minTl) + " - " + df.format(maxTl))
+//						.fill(relPer);
+				double d0res = fitres[0];
+//				aida.cloud1D("number of degrees of freedom for fitted tracks")
+//						.fill(ndf);
+//				aida.cloud1D(
+//						"d0 residual for fitted tracks, Tl " + df.format(minTl)
+//								+ " - " + df.format(maxTl)).fill(d0res);
+//				aida.cloud1D(
+//						"phi0 residual for fitted tracks, Tl "
+//								+ df.format(minTl) + " - " + df.format(maxTl))
+//						.fill(fitres[1]);
+				double domovom = (fitres[2]) / Math.abs(ortpar[2]);
+//				aida.cloud1D(
+//						"domega over omega for fitted tracks, Tl "
+//								+ df.format(minTl) + " - " + df.format(maxTl))
+//						.fill(domovom);
+				domovom /= Pt;
+//				aida.cloud1D(
+//						"dPt over Pt**2 for fitted traks, Tl "
+//								+ df.format(minTl) + " - " + df.format(maxTl))
+//						.fill(domovom);
+				double noromr = fitres[0] / dd0exp;
+//				aida.cloud1D(
+//						"normalised to cov.mat d0 residual, Tl "
+//								+ df.format(minTl) + " - " + df.format(maxTl))
+//						.fill(noromr);
+//				aida.cloud2D("Track cov.mat. exp d0 error vs tanlam").fill(
+//						Math.abs(ftl), dd0exp);
+				noromr = fitres[1] / dphi0exp;
+//				if (Math.abs(noromr) < 5.) {
+//					aida.cloud1D(
+//							"normalised to cov.mat Phi0 residual, Tl "
+//									+ df.format(minTl) + " - "
+//									+ df.format(maxTl)).fill(noromr);
+//				}
+//				aida.cloud2D("Track cov.mat. exp phi0 error vs tanlam").fill(
+//						Math.abs(ftl), dphi0exp);
+				noromr = fitres[2] / domexp;
+//				if (Math.abs(noromr) < 5.) {
+//					aida.cloud1D(
+//							"normalised to cov.mat omega residual, Tl "
+//									+ df.format(minTl) + " - "
+//									+ df.format(maxTl)).fill(noromr);
+//						aida.cloud1D("normalised to cov.mat omega residual for all EC tracks")
+//								.fill(noromr);
+//				}
+//				aida.cloud2D("Track cov.mat. rel. omega error vs tanlam").fill(
+//						Math.abs(ftl), domexp / Math.abs(ortpar[2]));
+				noromr = fitres[3] / dz0exp;
+//				if (Math.abs(noromr) < 5.) {
+//					aida.cloud1D(
+//							"normalised to cov.mat z0 residual, Tl "
+//									+ df.format(minTl) + " - "
+//									+ df.format(maxTl)).fill(noromr);
+//					aida.cloud1D(
+//							"z0 residual for fitted tracks, Tl "
+//									+ df.format(minTl) + " - "
+//									+ df.format(maxTl)).fill(fitres[3]);
+//				}
+//				aida.cloud2D("Track cov.mat. exp z0 error vs tanlam").fill(
+//						Math.abs(ftl), dz0exp);
+				noromr = fitres[4] / dtlexp;
+//				if (Math.abs(noromr) < 5.) {
+//					aida.cloud1D(
+//							"normalised to cov.mat Tanlam residual, Tl "
+//									+ df.format(minTl) + " - "
+//									+ df.format(maxTl)).fill(noromr);
+//					aida.cloud1D(
+//							"tanl residual for fitted tracks, Tl "
+//									+ df.format(minTl) + " - "
+//									+ df.format(maxTl)).fill(fitres[4]);
+//				}
+//				aida.cloud2D("Track cov.mat. exp tanlam error vs tanlam").fill(
+//						Math.abs(ftl), dtlexp);
+				noromr = chi2 / ndf;
+//				if (noromr < 10.) {
+//					aida.cloud1D(
+//							"Chi2 per dof for fitted tracks, Tl "
+//									+ df.format(minTl) + " - "
+//									+ df.format(maxTl)).fill(chi2 / ndf);
+//				}
+//				aida.cloud1D(
+//						"Pt of fitted tracks, Tl " + df.format(minTl) + " - "
+//								+ df.format(maxTl)).fill(mPt);
+//				aida.cloud1D(
+//						"tan lambda of fitted tracks, Tl " + df.format(minTl)
+//								+ " - " + df.format(maxTl)).fill(tl);
+//				if ((chi2 / ndf > 50.) || (chi2 < 0.))
+//					System.out.println(" Event " + evnum + " track " + tn
+//							+ " has chi2: " + chi2);
+				tn++;
+				vtxCabdidate.add(new NewTrack(track));
+				
+			}
+		}
+        for (MCParticle part : event.getMCParticles()) {
+        	// K0: 310, J/Psi: 443
+            if (abs(part.getPDGID()) != 443)
+                continue;
+        
+		Fitter fitter = new Fitter(event);
+		Vertex newVtx2 = fitter.fit(vtxCabdidate, new SpacePoint());
+        double sigmaX = sqrt(newVtx2.getSpatialCovarianceMatrix().get(0, 0));
+        double sigmaY = sqrt(newVtx2.getSpatialCovarianceMatrix().get(1, 1));
+        double sigmaZ = sqrt(newVtx2.getSpatialCovarianceMatrix().get(2, 2));
+        double deltaX = newVtx2.location().x() - part.getEndPoint().x();
+        double deltaY = newVtx2.location().y() - part.getEndPoint().y();
+        double deltaZ = newVtx2.location().z() - part.getEndPoint().z();
+        aida.cloud1D("decayLength").fill(new SpacePoint(part.getEndPoint()).magnitude());
+        aida.cloud1D("vtx_smeared_deltaX").fill(deltaX);
+        aida.cloud1D("vtx_smeared_deltaY").fill(deltaY);
+        aida.cloud1D("vtx_smeared_deltaZ").fill(deltaZ);
+        aida.cloud1D("vtx_sigma_x").fill(sigmaX);
+        aida.cloud1D("vtx_sigma_y").fill(sigmaY);
+        aida.cloud1D("vtx_sigma_z").fill(sigmaZ);
+        aida.cloud1D("vtx_pull_x").fill(deltaX/sigmaX);
+        aida.cloud1D("vtx_pull_y").fill(deltaY/sigmaY);
+        aida.cloud1D("vtx_pull_z").fill(deltaZ/sigmaZ);
+        }
+		evnum++;
+	}
+}

lcsim/src/org/lcsim/contrib/JanStrube/standalone
Tracks.py 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- Tracks.py	28 Oct 2006 00:48:53 -0000	1.1
+++ Tracks.py	28 Oct 2006 01:11:33 -0000	1.2
@@ -1,7 +1,7 @@
 from org.lcsim.util.aida import AIDA
 from org.lcsim.util import Driver
 from org.lcsim.mc.fast.tracking import ReconTrack
-from org.lcsim.contrib.JanStrube.tracking import EMap, NewFastMCTrackFactory
+from org.lcsim.contrib.JanStrube.tracking import LCIOTrackParameters, NewFastMCTrackFactory
 from org.lcsim.spacegeom import CartesianPoint, CartesianVector
 from org.lcsim.util.swim import HelixSwimmer as Swimmer_old
 from org.lcsim.contrib.JanStrube.tracking import HelixSwimmer as Swimmer_new
@@ -33,11 +33,11 @@
             #print 'Track parameters:', t.getTrackParameters()
             pt = sqrt(t.getPX()**2 + t.getPY()**2)
             parms = t.getTrackParameters()
-            emap_old = EMap(t.getTrackParameters(), pt)
+            emap_old = LCIOTrackParameters(t.getTrackParameters(), pt)
             refPoint = CartesianPoint(0, 0, 0)
-            #print 'EMap:', emap_old
-            #print EMap.Parameters2Momentum(emap_old)
-            #print EMap.Parameters2Position(emap_old, refPoint)
+            #print 'LCIOTrackParameters:', emap_old
+            #print LCIOTrackParameters.Parameters2Momentum(emap_old)
+            #print LCIOTrackParameters.Parameters2Position(emap_old, refPoint)
             trackFac = NewFastMCTrackFactory(event, false)
             o = origin
             p = momentum
@@ -63,12 +63,12 @@
             #print newT.getParameters()
             # after 10 iterations transforming back and forth
             for i in range(10):
-                tempPos = EMap.Parameters2Position(emap_old, refPoint)
-                tempMom = EMap.Parameters2Momentum(emap_old)
-                emap_old = EMap.SpaceMomentum2Parameters(tempPos, tempMom, refPoint, c, 5.)
-                tempPos = EMap.Parameters2Position(emap_new, refPoint)
-                tempMom = EMap.Parameters2Momentum(emap_new)
-                emap_new = EMap.SpaceMomentum2Parameters(tempPos, tempMom, refPoint, c, 5.)
+                tempPos = LCIOTrackParameters.Parameters2Position(emap_old, refPoint)
+                tempMom = LCIOTrackParameters.Parameters2Momentum(emap_old)
+                emap_old = LCIOTrackParameters.SpaceMomentum2Parameters(tempPos, tempMom, refPoint, c, 5.)
+                tempPos = LCIOTrackParameters.Parameters2Position(emap_new, refPoint)
+                tempMom = LCIOTrackParameters.Parameters2Momentum(emap_new)
+                emap_new = LCIOTrackParameters.SpaceMomentum2Parameters(tempPos, tempMom, refPoint, c, 5.)
 
             # difference between old parameters after 10 conversions
             vals_old10 = emap_old.getValues()
@@ -140,7 +140,7 @@
             origin = particle.getOrigin()
             momentum = particle.getMomentum()
             pt = sqrt(t.getPX()**2 + t.getPY()**2)
-            emap_old = EMap(t.getTrackParameters(), pt)
+            emap_old = LCIOTrackParameters(t.getTrackParameters(), pt)
             refPoint = CartesianPoint(0, 0, 0)
             trackFac = NewFastMCTrackFactory(event, false)
             o = origin

lcsim/src/org/lcsim/contrib/JanStrube/standalone
FitterTestDriver_ReconTrack.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- FitterTestDriver_ReconTrack.java	14 Oct 2006 08:45:21 -0000	1.4
+++ FitterTestDriver_ReconTrack.java	28 Oct 2006 01:11:33 -0000	1.5
@@ -2,7 +2,7 @@
 import java.util.List;
 import java.util.Random;
 
-import org.lcsim.contrib.JanStrube.tracking.EMap;
+import org.lcsim.contrib.JanStrube.tracking.LCIOTrackParameters;
 import org.lcsim.contrib.JanStrube.tracking.NewFastMCTrackFactory;
 import org.lcsim.contrib.JanStrube.tracking.NewTrack;
 import org.lcsim.contrib.JanStrube.vtxFitter.Fitter;
@@ -57,7 +57,7 @@
             SpacePoint org = new CartesianPoint(t.getReferencePoint());
             SpaceVector mom = new CartesianVector(t.getMomentum());
             Matrix errors = new Matrix(t.getErrorMatrix());
-            EMap parameters = EMap.SpaceMomentum2Parameters(mom, org, referencePoint, t.getCharge(), 5);
+            LCIOTrackParameters parameters = LCIOTrackParameters.SpaceMomentum2Parameters(mom, org, referencePoint, t.getCharge(), 5);
             tracks.add(new NewTrack(referencePoint, parameters, errors, t.getCharge()));
         }
         SpacePoint startingPoint = new SpacePoint();

lcsim/src/org/lcsim/contrib/JanStrube/standalone
MainLoop.py 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- MainLoop.py	28 Oct 2006 00:48:53 -0000	1.3
+++ MainLoop.py	28 Oct 2006 01:11:33 -0000	1.4
@@ -23,14 +23,14 @@
     loop = LCSimLoop()
 #    location = URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/ILC500/Zgamma/stdhep/pythia/pythiaZgamma.stdhep")
 #    location = URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/stdhep/psi_mumu_Theta4-176_5-100GeV.stdhep")
-#    location = URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/stdhep/K0S_pipi_Theta45-135_5-25Gev.stdhep")
+    location = URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/stdhep/K0S_pipi_Theta45-135_5-25Gev.stdhep")
 #    location = URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/sidaug05/slcio/slic/tau_5pi_Theta20-90_10-200GeV_SLIC_v1r9p3_sidaug05.slcio")
 #    location = URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/sidaug05/slcio/slic/tau_3pi_Theta20-90_10-200GeV_SLIC_v1r9p3_sidaug05.slcio")
-    location = URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/sidaug05/slcio/slic/psi_mumu_Theta4-176_5-100GeV_SLIC_v1r9p3_sidaug05.slcio")
+#    location = URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/sidaug05/slcio/slic/psi_mumu_Theta4-176_5-100GeV_SLIC_v1r9p3_sidaug05.slcio")
     cache = FileCache()
     trackFile = cache.getCachedFile(location)
-#    loop.setStdhepRecordSource(trackFile, "sidaug05")
-    loop.setLCIORecordSource(trackFile)
+    loop.setStdhepRecordSource(trackFile, "sidaug05")
+#    loop.setLCIORecordSource(trackFile)
     # no beamspotConstraint, no simple smearing
     loop.add(MCFast(False, False))
 #    loop.add(FitterTestDriver())

lcsim/src/org/lcsim/contrib/JanStrube/standalone
FitterTestDriver.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- FitterTestDriver.java	14 Oct 2006 08:45:21 -0000	1.6
+++ FitterTestDriver.java	28 Oct 2006 01:11:34 -0000	1.7
@@ -2,7 +2,7 @@
 import java.util.List;
 import java.util.Random;
 
-import org.lcsim.contrib.JanStrube.tracking.EMap;
+import org.lcsim.contrib.JanStrube.tracking.LCIOTrackParameters;
 import org.lcsim.contrib.JanStrube.tracking.NewFastMCTrackFactory;
 import org.lcsim.contrib.JanStrube.tracking.NewTrack;
 import org.lcsim.contrib.JanStrube.tracking.Track;
@@ -57,8 +57,8 @@
 //              System.err.println("Particle: charge " + daughter.getCharge());
 //              System.err.println("Position:" + new SpacePoint(daughter.getOrigin()));
 //              System.err.println("Momentum:" + new SpacePoint(daughter.getMomentum()));
-        	  SpacePoint unsmearedPosition = EMap.Parameters2Position(unsmearedTrack.getParameters(), referencePoint);
-        	  SpacePoint unsmearedMomentum = EMap.Parameters2Momentum(unsmearedTrack.getParameters());
+        	  SpacePoint unsmearedPosition = LCIOTrackParameters.Parameters2Position(unsmearedTrack.getParameters(), referencePoint);
+        	  SpacePoint unsmearedMomentum = LCIOTrackParameters.Parameters2Momentum(unsmearedTrack.getParameters());
 //              System.err.println("unsmeared Position: " + unsmearedPosition);
 //              System.err.println("unsmeared Momentum: " + unsmearedMomentum);
               unsmearedInput.add(unsmearedTrack);
@@ -77,8 +77,8 @@
                       (int)daughter.getCharge(),
                       rand,
                       true);
-        	  SpacePoint smearedPosition = EMap.Parameters2Position(smearedTrack.getParameters(), referencePoint);
-        	  SpacePoint smearedMomentum = EMap.Parameters2Momentum(smearedTrack.getParameters());              
+        	  SpacePoint smearedPosition = LCIOTrackParameters.Parameters2Position(smearedTrack.getParameters(), referencePoint);
+        	  SpacePoint smearedMomentum = LCIOTrackParameters.Parameters2Momentum(smearedTrack.getParameters());              
 //              System.err.println("smeared Position: " + smearedPosition);
 //              System.err.println("smeared Momentum: " + smearedMomentum);
               smearedInput.add(smearedTrack);
CVSspam 0.2.8