1 added + 4 modified, total 5 files
lcsim/src/org/lcsim/contrib/JanStrube/standalone
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
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
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
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
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