4 modified files
lcsim/src/org/lcsim/contrib/JanStrube/standalone
diff -u -r1.7 -r1.8
--- FitterTestDriver.java 28 Oct 2006 01:11:34 -0000 1.7
+++ FitterTestDriver.java 31 Jan 2007 02:05:40 -0000 1.8
@@ -1,10 +1,12 @@
+import static java.lang.Math.abs;
+import static java.lang.Math.sqrt;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
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;
import org.lcsim.contrib.JanStrube.vtxFitter.Fitter;
import org.lcsim.contrib.JanStrube.vtxFitter.Vertex;
@@ -12,20 +14,17 @@
import org.lcsim.event.MCParticle;
import org.lcsim.spacegeom.CartesianPoint;
import org.lcsim.spacegeom.SpacePoint;
-import org.lcsim.spacegeom.CartesianVector;
import org.lcsim.spacegeom.SpaceVector;
import org.lcsim.util.Driver;
import org.lcsim.util.aida.AIDA;
-import static java.lang.Math.abs;
-import static java.lang.Math.sqrt;
-class FitterTestDriver extends Driver {
+public class FitterTestDriver extends Driver {
private AIDA aida = AIDA.defaultInstance();
private SpacePoint referencePoint;
private SpacePoint origin;
private Random rand;
- private int count=0;
-
+ private int count = 0;
+
public FitterTestDriver() {
referencePoint = new CartesianPoint(0, 0, 0);
origin = new CartesianPoint(0, 0, 0);
@@ -33,91 +32,122 @@
}
public void process(EventHeader event) {
- count++;
- if (count % 500 == 0)
- System.out.printf("Processing event %d\n", count);
+ count++;
+ if (count % 500 == 0)
+ System.out.printf("Processing event %d\n", count);
// beamconstraint when smearing the tracks ?
NewFastMCTrackFactory tf = new NewFastMCTrackFactory(event, false);
for (MCParticle part : event.getMCParticles()) {
- // K0: 310, J/Psi: 443
+ // K0: 310, J/Psi: 443
if (abs(part.getPDGID()) != 443)
continue;
List<Track> unsmearedInput = new ArrayList<Track>();
List<Track> smearedInput = new ArrayList<Track>();
- origin = new SpacePoint(part.getEndPoint());
-
- for (MCParticle daughter : part.getDaughters()) {
- Track unsmearedTrack = tf.getTrack(
- new SpaceVector(daughter.getMomentum()),
- new SpacePoint(daughter.getOrigin()),
- new SpacePoint(part.getEndPoint()),
- (int)daughter.getCharge(),
- rand,
- false);
-// 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 = 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);
- aida.cloud1D("track_unsmeared_pt").fill(unsmearedTrack.getPt());
- aida.cloud1D("track_unsmeared_diffx").fill(unsmearedPosition.x() - daughter.getOriginX());
- aida.cloud1D("track_unsmeared_diffy").fill(unsmearedPosition.y() - daughter.getOriginY());
- aida.cloud1D("track_unsmeared_diffz").fill(unsmearedPosition.z() - daughter.getOriginZ());
- aida.cloud1D("track_unsmeared_diffpx").fill(unsmearedMomentum.x() - daughter.getPX());
- aida.cloud1D("track_unsmeared_diffpy").fill(unsmearedMomentum.y() - daughter.getPY());
- aida.cloud1D("track_unsmeared_diffpz").fill(unsmearedMomentum.z() - daughter.getPZ());
-
- Track smearedTrack = tf.getTrack(
- new SpaceVector(daughter.getMomentum()),
- new SpacePoint(daughter.getOrigin()),
- new SpacePoint(part.getEndPoint()),
- (int)daughter.getCharge(),
- rand,
- true);
- 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);
- aida.cloud1D("track_smeared_pt").fill(smearedTrack.getPt());
- aida.cloud1D("track_smeared_diffx").fill(smearedPosition.x() - daughter.getOriginX());
- aida.cloud1D("track_smeared_diffy").fill(smearedPosition.y() - daughter.getOriginY());
- aida.cloud1D("track_smeared_diffz").fill(smearedPosition.z() - daughter.getOriginZ());
- aida.cloud1D("track_smeared_diffpx").fill(smearedMomentum.x() - daughter.getPX());
- aida.cloud1D("track_smeared_diffpy").fill(smearedMomentum.y() - daughter.getPY());
- aida.cloud1D("track_smeared_diffpz").fill(smearedMomentum.z() - daughter.getPZ());
- aida.cloud1D("track_diff_d0").fill(unsmearedTrack.getParameters().getValues()[0]-smearedTrack.getParameters().getValues()[0]);
- aida.cloud1D("track_diff_phi0").fill(unsmearedTrack.getParameters().getValues()[1]-smearedTrack.getParameters().getValues()[1]);
- aida.cloud1D("track_diff_omega").fill(unsmearedTrack.getParameters().getValues()[2]-smearedTrack.getParameters().getValues()[2]);
- aida.cloud1D("track_diff_z").fill(unsmearedTrack.getParameters().getValues()[3]-smearedTrack.getParameters().getValues()[3]);
- aida.cloud1D("track_diff_tanLambda").fill(unsmearedTrack.getParameters().getValues()[4]-smearedTrack.getParameters().getValues()[4]);
- }
- Fitter fitter = new Fitter(event);
- Vertex newVtx1 = fitter.fit(unsmearedInput, origin);
- Fitter fitter2 = new Fitter(event);
- Vertex newVtx2 = fitter2.fit(smearedInput, origin);
- 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);
- aida.cloud1D("vtx_unsmeared_deltaX").fill(newVtx1.location().x() - part.getEndPoint().x());
- aida.cloud1D("vtx_unsmeared_deltaY").fill(newVtx1.location().y() - part.getEndPoint().y());
- aida.cloud1D("vtx_unsmeared_deltaZ").fill(newVtx1.location().z() - part.getEndPoint().z());
+ origin = new SpacePoint(part.getEndPoint());
+
+ for (MCParticle daughter : part.getDaughters()) {
+ Track unsmearedTrack = tf.getTrack(new SpaceVector(daughter
+ .getMomentum()), new SpacePoint(daughter.getOrigin()),
+ new SpacePoint(part.getEndPoint()), (int) daughter
+ .getCharge(), rand, false);
+ // 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 = 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);
+ aida.cloud1D("track_unsmeared_pt").fill(unsmearedTrack.getPt());
+ aida.cloud1D("track_unsmeared_diffx").fill(
+ unsmearedPosition.x() - daughter.getOriginX());
+ aida.cloud1D("track_unsmeared_diffy").fill(
+ unsmearedPosition.y() - daughter.getOriginY());
+ aida.cloud1D("track_unsmeared_diffz").fill(
+ unsmearedPosition.z() - daughter.getOriginZ());
+ aida.cloud1D("track_unsmeared_diffpx").fill(
+ unsmearedMomentum.x() - daughter.getPX());
+ aida.cloud1D("track_unsmeared_diffpy").fill(
+ unsmearedMomentum.y() - daughter.getPY());
+ aida.cloud1D("track_unsmeared_diffpz").fill(
+ unsmearedMomentum.z() - daughter.getPZ());
+
+ Track smearedTrack = tf.getTrack(new SpaceVector(daughter
+ .getMomentum()), new SpacePoint(daughter.getOrigin()),
+ new SpacePoint(part.getEndPoint()), (int) daughter
+ .getCharge(), rand, true);
+ 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);
+ aida.cloud1D("track_smeared_pt").fill(smearedTrack.getPt());
+ aida.cloud1D("track_smeared_diffx").fill(
+ smearedPosition.x() - daughter.getOriginX());
+ aida.cloud1D("track_smeared_diffy").fill(
+ smearedPosition.y() - daughter.getOriginY());
+ aida.cloud1D("track_smeared_diffz").fill(
+ smearedPosition.z() - daughter.getOriginZ());
+ aida.cloud1D("track_smeared_diffpx").fill(
+ smearedMomentum.x() - daughter.getPX());
+ aida.cloud1D("track_smeared_diffpy").fill(
+ smearedMomentum.y() - daughter.getPY());
+ aida.cloud1D("track_smeared_diffpz").fill(
+ smearedMomentum.z() - daughter.getPZ());
+ aida.cloud1D("track_diff_d0").fill(
+ unsmearedTrack.getParameters().getValues()[0]
+ - smearedTrack.getParameters().getValues()[0]);
+ aida.cloud1D("track_diff_phi0").fill(
+ unsmearedTrack.getParameters().getValues()[1]
+ - smearedTrack.getParameters().getValues()[1]);
+ aida.cloud1D("track_diff_omega").fill(
+ unsmearedTrack.getParameters().getValues()[2]
+ - smearedTrack.getParameters().getValues()[2]);
+ aida.cloud1D("track_diff_z").fill(
+ unsmearedTrack.getParameters().getValues()[3]
+ - smearedTrack.getParameters().getValues()[3]);
+ aida.cloud1D("track_diff_tanLambda").fill(
+ unsmearedTrack.getParameters().getValues()[4]
+ - smearedTrack.getParameters().getValues()[4]);
+ }
+ Fitter fitter = new Fitter(event);
+ Vertex newVtx1 = fitter.fit(unsmearedInput, origin);
+ Fitter fitter2 = new Fitter(event);
+ Vertex newVtx2 = fitter2.fit(smearedInput, origin);
+ 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);
+ aida.cloud1D("vtx_unsmeared_deltaX").fill(
+ newVtx1.location().x() - part.getEndPoint().x());
+ aida.cloud1D("vtx_unsmeared_deltaY").fill(
+ newVtx1.location().y() - part.getEndPoint().y());
+ aida.cloud1D("vtx_unsmeared_deltaZ").fill(
+ newVtx1.location().z() - part.getEndPoint().z());
}
}
}
lcsim/src/org/lcsim/contrib/JanStrube/standalone
diff -u -r1.7 -r1.8
--- MainLoop.java 7 Dec 2006 06:11:24 -0000 1.7
+++ MainLoop.java 31 Jan 2007 02:05:40 -0000 1.8
@@ -13,23 +13,16 @@
import java.net.URL;
import org.lcsim.util.cache.FileCache;
-public class MainLoop extends Driver
-{
- public MainLoop()
- {
- }
- public static void main(String[] args) throws Exception
- {
- LCSimLoop loop = new LCSimLoop();
-// URL location = new URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/ILC500/Zgamma/stdhep/pythia/pythiaZgamma.stdhep");
-// URL location = new URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/stdhep/K0S_pipi_Theta45-135_5-25Gev.stdhep");
- //URL location = new URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/stdhep/psi_mumu_Theta4-176_5-100GeV.stdhep");
-// URL location = new URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/ILC500/mumu/stdhep/pandorapythia/panpymumu.stdhep");
- URL location = new URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/sidaug05/slcio/slic/psi_mumu_Theta4-176_5-100GeV_SLIC_v1r9p3_sidaug05.slcio");
- FileCache cache = new FileCache();
- File trackFile = cache.getCachedFile(location);
+public class MainLoop extends Driver {
+ public MainLoop() {
+ }
+ public static void main(String[] args) throws Exception {
+ LCSimLoop loop = new LCSimLoop();
+ URL location = new URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/sidaug05/slcio/slic/psi_mumu_Theta4-176_5-100GeV_SLIC_v1r9p3_sidaug05.slcio");
+ FileCache cache = new FileCache();
+ File trackFile = cache.getCachedFile(location);
// loop.setStdhepRecordSource(trackFile, "sidaug05");
- loop.setLCIORecordSource(trackFile);
+ loop.setLCIORecordSource(trackFile);
// loop.add(new MCFast(false, false));
// loop.add(new FitterTestDriver());
// loop.add(new FitterTestDriver_ReconTrack());
@@ -37,9 +30,9 @@
// loop.add(new LCIODriver(output));
// System.out.println("starting:");
// loop.add(new TrackComparison());
- loop.add(new NickTrack_FastMCTrackComparison());
- loop.loop(-1);
- loop.dispose();
- AIDA.defaultInstance().saveAs("exampleAnalysisJava.aida");
- }
+ loop.add(new FitterTestDriver());
+ loop.loop(-1);
+ loop.dispose();
+ AIDA.defaultInstance().saveAs("exampleAnalysisJava.aida");
+ }
}
lcsim/src/org/lcsim/contrib/JanStrube/standalone
diff -u -r1.6 -r1.7
--- MainLoop.py 7 Dec 2006 06:11:24 -0000 1.6
+++ MainLoop.py 31 Jan 2007 02:05:40 -0000 1.7
@@ -9,7 +9,7 @@
from java.io import File
#from ZvTubePlotter import ZvTubePlotter
from java.lang import System
-#from FitterTestDriver import FitterTestDriver
+import FitterTestDriver
from java.lang import Boolean
from ReconParticleTestDriver import ReconParticleTestDriver
import NickTrackVtxFitter
@@ -32,10 +32,10 @@
# loop.setStdhepRecordSource(trackFile, "sidaug05")
loop.setLCIORecordSource(trackFile)
# no beamspotConstraint, no simple smearing
- loop.add(MCFast(False, False))
-# loop.add(FitterTestDriver())
- loop.add(TrackTest())
- loop.add(TrackErrorMatrix())
+# loop.add(MCFast(False, False))
+ loop.add(FitterTestDriver())
+# loop.add(TrackTest())
+# loop.add(TrackErrorMatrix())
# loop.add(NewMCFastTrackDriver())
# loop.add(NickTrackVtxFitter())
# loop.add(ZvTubePlotter())
lcsim/src/org/lcsim/contrib/JanStrube/standalone
diff -u -r1.1 -r1.2
--- VertexFitterDriver.java 28 Jun 2006 01:54:46 -0000 1.1
+++ VertexFitterDriver.java 31 Jan 2007 02:05:40 -0000 1.2
@@ -1,10 +1,10 @@
-package org.lcsim.contrib.JanStrube.standalone;
+//package org.lcsim.contrib.JanStrube.standalone;
/*
* VertexFitterDriver.java
*
* Created on March 25, 2006, 3:15 PM
*
- *@version $Id: VertexFitterDriver.java,v 1.1 2006/06/28 01:54:46 jstrube Exp $
+ *@version $Id: VertexFitterDriver.java,v 1.2 2007/01/31 02:05:40 jstrube Exp $
*/
import hep.aida.IAnalysisFactory;
@@ -88,12 +88,12 @@
double tanLambda = iTrack.getTrackParameter(4);
double theta = Math.PI/2-Math.atan(tanLambda);
trackTuple.fill(4, (float) theta);
- double thetaError = (1+tanLambda*tanLambda)*(1+tanLambda*tanLambda)*iTrack.getErrorMatrixElement(4,4);
+ double thetaError = (1+tanLambda*tanLambda)*(1+tanLambda*tanLambda)*iTrack.getErrorMatrix().e(4,4);
trackTuple.fill(5, (float) thetaError);
trackTuple.fill(6, (float) iTrack.getTrackParameter(1));
- trackTuple.fill(7, (float) iTrack.getErrorMatrixElement(1,1));
+ trackTuple.fill(7, (float) iTrack.getErrorMatrix().e(1, 1));
trackTuple.fill(8, (float) iTrack.getTrackParameter(2));
- trackTuple.fill(9, (float) iTrack.getErrorMatrixElement(2, 2));
+ trackTuple.fill(9, (float) iTrack.getErrorMatrix().e(2, 2));
trackTuple.fill(10, (float) vertex._parf[0][i]);
trackTuple.fill(11, (float) sqrt(vertex._tcov[0][i]));
trackTuple.fill(12, (float) vertex._parf[1][i]);
CVSspam 0.2.8