Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux/itc on MAIN
algorithms/ComputeTrajectory_Basic.java+2-21.1 -> 1.2
          /ReverseThreadingDirection_Basic.java+5-11.1 -> 1.2
          /SearchForDots_NN.java+9-11.1 -> 1.2
          /SearchForProximityDots_NN.java+2-21.1 -> 1.2
          /Step_Basic.java+11-21.1 -> 1.2
drivers/MipStubFinder.java+6-21.1 -> 1.2
+35-10
6 modified files
Move Hep3Vector implementations to a separate package

lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux/itc/algorithms
ComputeTrajectory_Basic.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- ComputeTrajectory_Basic.java	29 Mar 2009 23:44:23 -0000	1.1
+++ ComputeTrajectory_Basic.java	6 Apr 2009 19:49:26 -0000	1.2
@@ -23,7 +23,7 @@
  *
  *
  * @author D. Onoprienko
- * @version $Id: ComputeTrajectory_Basic.java,v 1.1 2009/03/29 23:44:23 onoprien Exp $
+ * @version $Id: ComputeTrajectory_Basic.java,v 1.2 2009/04/06 19:49:26 onoprien Exp $
  */
 public class ComputeTrajectory_Basic implements RosaryClusterer.ComputeTrajectory {
 
@@ -46,7 +46,7 @@
 
     int _nDotsFit = 2;
 
-    ArrayList<Node> tailDots = rosary.getTailNodes(_nDotsFit, Node.Type.DOT);
+    ArrayList<Node> tailDots = rosary.getHeadNodes(_nDotsFit, Node.Type.DOT);
     int nDots = tailDots.size();
     if (nDots > 2) {
       // FIXME - Fit

lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux/itc/algorithms
ReverseThreadingDirection_Basic.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- ReverseThreadingDirection_Basic.java	29 Mar 2009 23:44:23 -0000	1.1
+++ ReverseThreadingDirection_Basic.java	6 Apr 2009 19:49:26 -0000	1.2
@@ -9,7 +9,7 @@
  * See methods javadoc for details on algorithms and implementations.
  *
  * @author D. Onoprienko
- * @version $Id: ReverseThreadingDirection_Basic.java,v 1.1 2009/03/29 23:44:23 onoprien Exp $
+ * @version $Id: ReverseThreadingDirection_Basic.java,v 1.2 2009/04/06 19:49:26 onoprien Exp $
  */
 public class ReverseThreadingDirection_Basic implements RosaryClusterer.ReverseThreadingDirection {
 
@@ -29,6 +29,9 @@
    * @param rosary  Rosary being threaded.
    */
   public boolean reverseThreadingDirection(Rosary rosary) {
+
+    //System.out.println("Called reverseThreadingDirection for Rosary "+ rosary);
+
     Rosary.ThreadDirection thDir = rosary.getThreadingDirection();
     if (thDir == Rosary.ThreadDirection.FORWARD) {
       if (rosary.isTracked()) {
@@ -36,6 +39,7 @@
       } else {
         rosary.setThreadingDirection(Rosary.ThreadDirection.BACK);
         rosary.reverseDirection();
+        System.out.println("reverseThreadingDirection returns true");
         return true;
       }
     } else if (thDir == Rosary.ThreadDirection.BACK) {

lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux/itc/algorithms
SearchForDots_NN.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- SearchForDots_NN.java	29 Mar 2009 23:44:23 -0000	1.1
+++ SearchForDots_NN.java	6 Apr 2009 19:49:26 -0000	1.2
@@ -17,7 +17,7 @@
  * See methods javadoc for details on algorithms and implementations.
  *
  * @author D. Onoprienko
- * @version $Id: SearchForDots_NN.java,v 1.1 2009/03/29 23:44:23 onoprien Exp $
+ * @version $Id: SearchForDots_NN.java,v 1.2 2009/04/06 19:49:26 onoprien Exp $
  */
 public class SearchForDots_NN implements RosaryClusterer.SearchForDots {
 
@@ -50,13 +50,21 @@
   public List<Dot> searchForDots(Rosary rosary, Trajectory trajectory, LayerData layerData) {
     Hep3Vector pos = trajectory.getPosition();
     long cell = layerData.decoder.findCellContainingXYZ(pos);
+    System.out.println("projection "+ cell +" phi "+ Math.atan2(pos.y(), pos.x()) +" theta "+ Math.atan2(Math.hypot(pos.y(), pos.x()), pos.z()));
     Dot dot = layerData.dotMap.get(cell);
     ArrayList<Dot> out;
     if (dot != null) {
       out = new ArrayList<Dot>(1);
       out.add(dot);
     } else {
+      System.out.println("Dots ");
+      for (Dot d : layerData.dots) System.out.print(" "+ d.getHits().get(0).getCellID());
+      System.out.println("");
+      layerData.decoder.setID(cell);
       long[] neighbors = layerData.decoder.getNeighbourIDs(0, 1, 1);
+      System.out.println("Neighbors ");
+      for (long c : neighbors) System.out.print(" "+ c);
+      System.out.println("");
       HashSet<Dot> dotSet = new HashSet<Dot>();
       for (long cellID : neighbors) {
         dot = layerData.dotMap.get(cellID);

lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux/itc/algorithms
SearchForProximityDots_NN.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- SearchForProximityDots_NN.java	29 Mar 2009 23:44:23 -0000	1.1
+++ SearchForProximityDots_NN.java	6 Apr 2009 19:49:26 -0000	1.2
@@ -21,7 +21,7 @@
  * See methods javadoc for details on algorithms and implementations.
  *
  * @author D. Onoprienko
- * @version $Id: SearchForProximityDots_NN.java,v 1.1 2009/03/29 23:44:23 onoprien Exp $
+ * @version $Id: SearchForProximityDots_NN.java,v 1.2 2009/04/06 19:49:26 onoprien Exp $
  */
 public class SearchForProximityDots_NN implements RosaryClusterer.SearchForProximityDots {
 
@@ -54,7 +54,7 @@
    * @param layerData    Data for the current layer.
    */
   public List<Dot> searchForProximityDots(Rosary rosary, Trajectory trajectory, LayerData layerData) {
-    Dot oldDot = (Dot) rosary.getTailNode(DOT);
+    Dot oldDot = (Dot) rosary.getHeadNode(DOT);
     Hep3Vector oldPos = oldDot.getPosition();
     Hep3Vector newPos = _geom.getClosestPointOnLayer(oldPos, layerData.cruxLayer);
     long cell = layerData.decoder.findCellContainingXYZ(newPos);

lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux/itc/algorithms
Step_Basic.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- Step_Basic.java	29 Mar 2009 23:44:24 -0000	1.1
+++ Step_Basic.java	6 Apr 2009 19:49:26 -0000	1.2
@@ -21,7 +21,7 @@
  * See methods javadoc for details on algorithms and implementations.
  *
  * @author D. Onoprienko
- * @version $Id: Step_Basic.java,v 1.1 2009/03/29 23:44:24 onoprien Exp $
+ * @version $Id: Step_Basic.java,v 1.2 2009/04/06 19:49:26 onoprien Exp $
  */
 public class Step_Basic implements RosaryClusterer.Step {
 
@@ -68,19 +68,25 @@
    */
   public boolean step(Rosary rosary, Queue<Rosary> seeds) {
 
+    System.out.println("Step: last node "+ rosary.getHeadNode());
+
     Trajectory trajectory = _clusterer.getComputeTrajectory().computeTrajectory(rosary);
-    CalLayer currentLayer = rosary.getTailNode().getLayer();
+    CalLayer currentLayer = rosary.getHeadNode().getLayer();
     CalLayer layer;
     if (currentLayer == null) {
       layer = _geom.propagateFromTracker(trajectory);
     } else {
       layer = _geom.propagateToNextLayer(currentLayer, trajectory);
     }
+    _clusterer.display.get(rosary).add(trajectory.getPosition());
     if (layer == null) {
       return _clusterer.getReverseThreadingDirection().reverseThreadingDirection(rosary);
     }
 
+    _clusterer.slicer.fillTrajectory(trajectory.getPosition(), layer, true);
+
     List<Dot> dots = _clusterer.getSearchForDots().searchForDots(rosary, trajectory, _clusterer.getLayerDB().get(layer));
+    System.out.println("Found "+ dots.size() +" Dots");
     int nDots = dots.size();
     if (nDots > 0) {
       rosary.addNode(dots.get(0));
@@ -92,6 +98,7 @@
     } else {
       Bead bead = _clusterer.getSearchForBead().searchForBead(rosary, trajectory, _clusterer.getLayerDB().get(layer));
       if (bead != null) {
+        System.out.println("Found a Bead");
         rosary.addNode(bead);
       } else {
         if (rosary.getNodeCount(DOT) == 1 && !rosary.isTracked()) {
@@ -105,9 +112,11 @@
               seeds.add(branch);
             }
           } else {
+            System.out.println("Adding Crack");
             rosary.addNode(new Crack(layer));
           }
         } else {
+          System.out.println("Adding Crack");
           rosary.addNode(new Crack(layer));
         }
       }

lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux/itc/drivers
MipStubFinder.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- MipStubFinder.java	31 Mar 2009 03:55:37 -0000	1.1
+++ MipStubFinder.java	6 Apr 2009 19:49:26 -0000	1.2
@@ -1,5 +1,7 @@
 package org.lcsim.contrib.onoprien.crux.itc.drivers;
 
+import java.util.logging.Level;
+
 import org.lcsim.recon.cluster.nn.NearestNeighborClusterer;
 
 import org.lcsim.contrib.onoprien.crux.itc.RosaryClusterer;
@@ -9,7 +11,7 @@
  *
  *
  * @author D. Onoprienko
- * @version $Id: MipStubFinder.java,v 1.1 2009/03/31 03:55:37 onoprien Exp $
+ * @version $Id: MipStubFinder.java,v 1.2 2009/04/06 19:49:26 onoprien Exp $
  */
 public class MipStubFinder extends RosaryClusterer {
 
@@ -21,13 +23,15 @@
 
   public MipStubFinder() {
 
+    set("LOG_LEVEL", Level.FINEST);
+
     FindDotsAndBeads_Basic findDotsAndBeads = new FindDotsAndBeads_Basic(this);
     findDotsAndBeads.set("CLUSTERER", new NearestNeighborClusterer(1, 1, 0, 0, 0.));
     findDotsAndBeads.set("DOT_SIZE_LIMIT", 1);
     setFindDotsAndBeads(findDotsAndBeads);
 
     ChooseSeedLayers_FirstN chooseSeedLayers = new ChooseSeedLayers_FirstN(this);
-    chooseSeedLayers.set("N", 0);
+    chooseSeedLayers.set("N", 2);
     setChooseSeedLayers(chooseSeedLayers);
 
     setSeedFromTrack(new SeedFromTrack_Basic());
CVSspam 0.2.8