Commit in lcsim/src/org/lcsim/recon/tracking/seedtracker on MAIN
TrackCheck.java+24added 1.1
MakeTracks.java+5-11.3 -> 1.4
SeedTrackFinder.java+51.10 -> 1.11
SeedTracker.java+91.8 -> 1.9
+43-1
1 added + 3 modified, total 4 files
Hooks into SeedTracker for plugging in CAT code

lcsim/src/org/lcsim/recon/tracking/seedtracker
TrackCheck.java added at 1.1
diff -N TrackCheck.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ TrackCheck.java	7 Aug 2009 23:33:17 -0000	1.1
@@ -0,0 +1,24 @@
+package org.lcsim.recon.tracking.seedtracker;
+
+/**
+ * Classes implementing this interface can define additional requirements on seeds and tracks.
+ * To make a particular {@link SeedTracker} driver use these requirements, call its
+ * <tt>setTrackCheck(TrackCheck)</tt> method.
+ * <p>
+ * The <tt>checkSeed(SeedCandidate)</tt> method will be called for each 3-hit seed candidate
+ * after the initial helix fit, before trying to attach any additional hits in confirmation layers.
+ * If the method returns <tt>false</tt>, the seed candidate will be discarded.
+ * <p>
+ * The <tt>checkTrack(SeedTrack)</tt> method will be called for each found track before saving
+ * it into the event record. If the method returns <tt>false</tt>, the track will be discarded.
+ *
+ * @author D. Onoprienko
+ * @version $Id: TrackCheck.java,v 1.1 2009/08/07 23:33:17 onoprien Exp $
+ */
+public interface TrackCheck {
+
+  boolean checkSeed(SeedCandidate candidate);
+
+  boolean checkTrack(SeedTrack track);
+
+}

lcsim/src/org/lcsim/recon/tracking/seedtracker
MakeTracks.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- MakeTracks.java	4 Mar 2009 23:39:19 -0000	1.3
+++ MakeTracks.java	7 Aug 2009 23:33:17 -0000	1.4
@@ -26,6 +26,7 @@
 public class MakeTracks {
 
     private String _TrkCollectionName = EventHeader.TRACKS;
+    TrackCheck _trackCheck; // set by SeedTracker
 
     /**
      * Creates a new instance of MakeTracks.
@@ -79,7 +80,10 @@
             
             //  Set the SeedCandidate this track is based on
             trk.setSeedCandidate(trackseed);
-            
+
+            // Check the track - hook for plugging in external constraint
+            if ((_trackCheck != null) && (! _trackCheck.checkTrack(trk))) continue;
+
             //  Add the track to the list of tracks
             tracks.add((Track) trk);
         }

lcsim/src/org/lcsim/recon/tracking/seedtracker
SeedTrackFinder.java 1.10 -> 1.11
diff -u -r1.10 -r1.11
--- SeedTrackFinder.java	24 Jul 2009 14:05:03 -0000	1.10
+++ SeedTrackFinder.java	7 Aug 2009 23:33:17 -0000	1.11
@@ -25,6 +25,8 @@
     private List<SeedCandidate> _trackseeds;
     private ISeedTrackerDiagnostics _diag = null;
 
+    TrackCheck _trackCheck; // set by SeedTracker
+
     /**
      * Creates a new instance of SeedTrackFinder
      */
@@ -113,6 +115,9 @@
                         seed.setHelix(_helixfitter.getHelix());
                         nfit++;
 
+                        // Check the seed - hook for plugging in external constraint
+                        if ((_trackCheck != null) && (! _trackCheck.checkSeed(seed))) continue;
+
                         //  See if we can confirm this seed candidate
                         success = _confirmer.Confirm(seed, strategy, bfield);
                         if (!success) continue;

lcsim/src/org/lcsim/recon/tracking/seedtracker
SeedTracker.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- SeedTracker.java	4 Mar 2009 23:39:19 -0000	1.8
+++ SeedTracker.java	7 Aug 2009 23:33:17 -0000	1.9
@@ -166,4 +166,13 @@
     public void setTrkCollectionName(String name) {
         _maketracks.setTrkCollectionName(name);
     }
+
+    /**
+     * Set {@link TrackCheck} object to be used by the track finding algorithm.
+     * If this method is never called, no external checking of seeds and tracks is performed.
+     */
+    public void setTrackCheck(TrackCheck trackCheck) {
+      _finder._trackCheck = trackCheck;
+      _maketracks._trackCheck = trackCheck;
+    }
 }
\ No newline at end of file
CVSspam 0.2.8