lcsim/src/org/lcsim/contrib/JanStrube/standalone
diff -u -r1.1 -r1.2
--- FitterTestDriver.java 19 Aug 2006 20:03:16 -0000 1.1
+++ FitterTestDriver.java 20 Aug 2006 05:56:56 -0000 1.2
@@ -1,6 +1,8 @@
import java.util.Random;
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;
import org.lcsim.event.EventHeader;
@@ -17,18 +19,23 @@
private SpacePoint referencePoint;
private SpacePoint origin;
private Random rand;
+ private int count=0;
public FitterTestDriver() {
referencePoint = new CartesianPoint(0, 0, 0);
origin = new CartesianPoint(0, 0, 0);
- rand = new Random(74234);
+ rand = new Random(123);
}
public void process(EventHeader event) {
+ 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()) {
- if (abs(part.getPDGID()) != 310)
+ // K0: 310, J/Psi: 443
+ if (abs(part.getPDGID()) != 443)
continue;
Vertex unsmearedVertex = new Vertex();
unsmearedVertex.setOrigin(origin);
@@ -36,28 +43,59 @@
smearedVertex.setOrigin(origin);
for (MCParticle daughter : part.getDaughters()) {
- unsmearedVertex.addTrack(tf.getTrack(
+ Track unsmearedTrack = tf.getTrack(
new SpacePoint(daughter.getMomentum()),
new SpacePoint(daughter.getOrigin()),
referencePoint,
(int)daughter.getCharge(),
rand,
- false), 0);
- smearedVertex.addTrack(tf.getTrack(
+ false);
+ SpacePoint unsmearedPosition = NewTrack.Parameters2Position(unsmearedTrack.getParameters());
+ SpacePoint unsmearedMomentum = NewTrack.Parameters2Momentum(unsmearedTrack.getParameters());
+ unsmearedVertex.addTrack(unsmearedTrack, 0);
+ aida.cloud1D("unsmeared_pt").fill(unsmearedTrack.getPt());
+ aida.cloud1D("unsmeared_diffx").fill(unsmearedPosition.x() - daughter.getOriginX());
+ aida.cloud1D("unsmeared_diffy").fill(unsmearedPosition.y() - daughter.getOriginY());
+ aida.cloud1D("unsmeared_diffz").fill(unsmearedPosition.z() - daughter.getOriginZ());
+ aida.cloud1D("unsmeared_diffpx").fill(unsmearedMomentum.x() - daughter.getPX());
+ aida.cloud1D("unsmeared_diffpy").fill(unsmearedMomentum.y() - daughter.getPY());
+ aida.cloud1D("unsmeared_diffpz").fill(unsmearedMomentum.z() - daughter.getPZ());
+
+ Track smearedTrack = tf.getTrack(
new SpacePoint(daughter.getMomentum()),
new SpacePoint(daughter.getOrigin()),
referencePoint,
(int)daughter.getCharge(),
rand,
- true), 0);
- }
+ true);
+ SpacePoint smearedPosition = NewTrack.Parameters2Position(smearedTrack.getParameters());
+ SpacePoint smearedMomentum = NewTrack.Parameters2Momentum(smearedTrack.getParameters());
+ smearedVertex.addTrack(smearedTrack, 0);
+ aida.cloud1D("smeared_pt").fill(smearedTrack.getPt());
+ aida.cloud1D("smeared_diffx").fill(smearedPosition.x() - daughter.getOriginX());
+ aida.cloud1D("smeared_diffy").fill(smearedPosition.y() - daughter.getOriginY());
+ aida.cloud1D("smeared_diffz").fill(smearedPosition.z() - daughter.getOriginZ());
+ aida.cloud1D("smeared_diffpx").fill(smearedMomentum.x() - daughter.getPX());
+ aida.cloud1D("smeared_diffpy").fill(smearedMomentum.y() - daughter.getPY());
+ aida.cloud1D("smeared_diffpz").fill(smearedMomentum.z() - daughter.getPZ());
+ aida.cloud1D("diff_d0").fill(unsmearedTrack.getParameters().getValues()[0]-smearedTrack.getParameters().getValues()[0]);
+ aida.cloud1D("diff_phi0").fill(unsmearedTrack.getParameters().getValues()[1]-smearedTrack.getParameters().getValues()[1]);
+ aida.cloud1D("diff_omega").fill(unsmearedTrack.getParameters().getValues()[2]-smearedTrack.getParameters().getValues()[2]);
+ aida.cloud1D("diff_z").fill(unsmearedTrack.getParameters().getValues()[3]-smearedTrack.getParameters().getValues()[3]);
+ aida.cloud1D("diff_tanLambda").fill(unsmearedTrack.getParameters().getValues()[4]-smearedTrack.getParameters().getValues()[4]);
+ }
Fitter fitter = new Fitter(unsmearedVertex, 5.0);
Vertex newVtx1 = fitter.fit();
- aida.cloud1D("deltaX").fill(newVtx1.origin().x() - part.getOrigin().x());
- aida.cloud1D("deltaY").fill(newVtx1.origin().y() - part.getOrigin().y());
- aida.cloud1D("deltaZ").fill(newVtx1.origin().z() - part.getOrigin().z());
-
+ Fitter fitter2 = new Fitter(smearedVertex, 5.0);
+ Vertex newVtx2 = fitter2.fit();
+ aida.cloud1D("decayLength").fill(new SpacePoint(part.getEndPoint()).magnitude());
+ aida.cloud1D("unsmeared_deltaX").fill(newVtx1.origin().x() - part.getOrigin().x());
+ aida.cloud1D("unsmeared_deltaY").fill(newVtx1.origin().y() - part.getOrigin().y());
+ aida.cloud1D("unsmeared_deltaZ").fill(newVtx1.origin().z() - part.getOrigin().z());
+ aida.cloud1D("smeared_deltaX").fill(newVtx2.origin().x() - part.getOrigin().x());
+ aida.cloud1D("smeared_deltaY").fill(newVtx2.origin().y() - part.getOrigin().y());
+ aida.cloud1D("smeared_deltaZ").fill(newVtx2.origin().z() - part.getOrigin().z());
}
}
-}
\ No newline at end of file
+}
lcsim/src/org/lcsim/contrib/JanStrube/standalone
diff -u -r1.2 -r1.3
--- MainLoop.java 19 Aug 2006 20:03:16 -0000 1.2
+++ MainLoop.java 20 Aug 2006 05:56:56 -0000 1.3
@@ -22,14 +22,15 @@
{
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/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");
FileCache cache = new FileCache();
File trackFile = cache.getCachedFile(location);
loop.setStdhepRecordSource(trackFile, "sidaug05");
// loop.setLCIORecordSource(input);
-// loop.add(new MCFast(false, false));
- loop.add(new FitterTestDriver());
+ loop.add(new MCFast(false, false));
+// loop.add(new FitterTestDriver());
+ loop.add(new FitterTestDriver_ReconTrack());
// File output = new File("exampleAnalysisJava.slcio");
// loop.add(new LCIODriver(output));
loop.loop(-1);
lcsim/src/org/lcsim/contrib/JanStrube/vtxFitter
diff -u -r1.9 -r1.10
--- Fitter.java 19 Aug 2006 20:08:03 -0000 1.9
+++ Fitter.java 20 Aug 2006 05:56:56 -0000 1.10
@@ -1,6 +1,6 @@
package org.lcsim.contrib.JanStrube.vtxFitter;
/**
- * @version $Id: Fitter.java,v 1.9 2006/08/19 20:08:03 jstrube Exp $
+ * @version $Id: Fitter.java,v 1.10 2006/08/20 05:56:56 jstrube Exp $
*/
import static java.lang.Math.atan2;
@@ -77,10 +77,12 @@
particle._tracks.clear();
chi2_prev = 0;
for (Track t : unfittedParticle.getTracks()) {
-// System.out.printf("filtering: chi2=%f\n", filter(t));
+ double chi2_track = filter(t);
+// System.out.printf("filtering: chi2=%f\n", chi2_track);
}
for (Track t : particle.getTracks()) {
-// System.out.printf("smoothing: %f\n", smoothe(t));
+ double chi2_track = smoothe(t);
+// System.out.printf("smoothing: %f\n", chi2_track);
}
}
return particle;