lcsim/src/org/lcsim/contrib/JanStrube/standalone
diff -N FitterTestDriver_ReconTrack.java
--- FitterTestDriver_ReconTrack.java 28 Oct 2006 01:11:33 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,84 +0,0 @@
-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.vtxFitter.Fitter;
-import org.lcsim.contrib.JanStrube.vtxFitter.Vertex;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.MCParticle;
-import org.lcsim.event.Track;
-import org.lcsim.mc.fast.tracking.ReconTrack;
-import org.lcsim.spacegeom.CartesianPoint;
-import org.lcsim.spacegeom.CartesianVector;
-import org.lcsim.spacegeom.SpacePoint;
-import org.lcsim.spacegeom.SpaceVector;
-import org.lcsim.util.Driver;
-import org.lcsim.util.aida.AIDA;
-
-import Jama.Matrix;
-
-import static java.lang.Math.abs;
-import static java.lang.Math.sqrt;
-
-class FitterTestDriver_ReconTrack extends Driver {
- private AIDA aida = AIDA.defaultInstance();
- private SpacePoint referencePoint;
- private SpacePoint origin;
- private Random rand;
- private int count = 0;
-
- public FitterTestDriver_ReconTrack() {
- referencePoint = new CartesianPoint(0, 0, 0);
- origin = new CartesianPoint(0, 0, 0);
- 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);
- MCParticle mother = null;
- // K0: 310, J/Psi: 443
- for (MCParticle p : event.getMCParticles()) {
- if (abs(p.getPDGID()) == 443) {
- mother = p;
- }
- }
- List<org.lcsim.contrib.JanStrube.tracking.Track> tracks = new ArrayList<org.lcsim.contrib.JanStrube.tracking.Track>();
- for (Track t : event.getTracks()) {
- ReconTrack rt = (ReconTrack) t;
- MCParticle part = (MCParticle) rt.getMCParticle();
-
- SpacePoint org = new CartesianPoint(t.getReferencePoint());
- SpaceVector mom = new CartesianVector(t.getMomentum());
- Matrix errors = new Matrix(t.getErrorMatrix());
- LCIOTrackParameters parameters = LCIOTrackParameters.SpaceMomentum2Parameters(mom, org, referencePoint, t.getCharge(), 5);
- tracks.add(new NewTrack(referencePoint, parameters, errors, t.getCharge()));
- }
- SpacePoint startingPoint = new SpacePoint();
- Fitter fitter2 = new Fitter(event);
- fitter2.setDelta_chi2(0);
- Vertex newVtx2 = fitter2.fit(tracks, startingPoint);
- 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() - mother.getOrigin().x();
- double deltaY = newVtx2.location().y() - mother.getOrigin().y();
- double deltaZ = newVtx2.location().z() - mother.getOrigin().z();
- aida.cloud1D("decayLength").fill(new SpacePoint(mother.getEndPoint()).magnitude());
- aida.cloud1D("smeared_deltaX").fill(deltaX);
- aida.cloud1D("smeared_deltaY").fill(deltaY);
- aida.cloud1D("smeared_deltaZ").fill(deltaZ);
- aida.cloud1D("sigma_x").fill(sigmaX);
- aida.cloud1D("sigma_y").fill(sigmaY);
- aida.cloud1D("sigma_z").fill(sigmaZ);
- aida.cloud1D("pull_x").fill(deltaX/sigmaX);
- aida.cloud1D("pull_y").fill(deltaY/sigmaY);
- aida.cloud1D("pull_z").fill(deltaZ/sigmaZ);
- }
-}