1 added + 3 modified, total 4 files
lcsim/src/org/lcsim/recon/tracking/seedtracker
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
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
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
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