lcsim/src/org/lcsim/recon/tracking/seedtracker
diff -u -r1.18 -r1.19
--- SeedTrackFinder.java 28 Feb 2011 19:59:26 -0000 1.18
+++ SeedTrackFinder.java 12 Jul 2013 20:54:05 -0000 1.19
@@ -30,6 +30,8 @@
private Set<MCParticle> _seededmcp;
private Set<MCParticle> _confirmedmcp;
TrackCheck _trackCheck; // set by SeedTracker
+ private boolean _debug = false;
+ private boolean _applySectorBinning = false;
/**
* Creates a new instance of SeedTrackFinder
@@ -63,9 +65,10 @@
// Instantiate the fast hit checker
FastCheck checker = new FastCheck(strategy, bfield, _diag);
-
+ if(_applySectorBinning) checker.setDoSectorBinCheck(_hitmanager.getSectorManager());
+
// Find the valid sector combinations
- SeedSectoring ss = new SeedSectoring(_hitmanager, strategy, bfield);
+ SeedSectoring ss = new SeedSectoring(_hitmanager, strategy, bfield,_applySectorBinning);
List<List<Sector>> sslist = ss.SeedSectors();
// Loop over the valid sector combinations
@@ -76,7 +79,7 @@
// Loop over the second seed layer and check that we have a hit pair consistent with our strategy
for (HelicalTrackHit hit2 : slist.get(1).Hits()) {
-
+
// Call _trackCheck if set
if (_trackCheck != null) {
SeedCandidate tempseed = new SeedCandidate(strategy, bfield);
@@ -93,7 +96,7 @@
// Loop over the third seed layer and check that we have a hit triplet consistent with our strategy
for (HelicalTrackHit hit3 : slist.get(2).Hits()) {
-
+
// Call _trackCheck if set
if (_trackCheck != null) {
SeedCandidate tempseed2 = new SeedCandidate(strategy, bfield);
@@ -130,11 +133,16 @@
if (seed.isTrueSeed())
_seededmcp.addAll(seed.getMCParticles());
+ if(_debug) System.out.println(this.getClass().getSimpleName()+": fit the candidate");
+
+
// See if we can fit a helix to this seed candidate
boolean success = _helixfitter.FitCandidate(seed, strategy);
if (!success) continue;
+ if(_debug) System.out.println(this.getClass().getSimpleName()+": fit success");
+
// Save the helix fit
seed.setHelix(_helixfitter.getHelix());
@@ -147,11 +155,15 @@
success = _confirmer.Confirm(seed, strategy, bfield);
if (!success) continue;
+ if(_debug) System.out.println(this.getClass().getSimpleName()+": confirmed seed");
+
// Confirmed a seed - if it's a true seed, add the MC Particle to those that were confirmed
if (_diag != null)
if (seed.isTrueSeed())
_confirmedmcp.addAll(seed.getMCParticles());
+ if(_debug) System.out.println(this.getClass().getSimpleName()+": try to extend");
+
// Try to extend each confirmed seed candidates to make a track candidate
List<SeedCandidate> confirmedlist = _confirmer.getResult();
for (SeedCandidate confirmedseed : confirmedlist) {
@@ -198,7 +210,16 @@
public void setMaxFit(int maxfits) {
_confirmer.setMaxFit(maxfits);
}
-
+
+ /**
+ * Set to enable the sectoring to use the sector bins in checking for consistent hits.
+ *
+ * @param applySectorBinning apply sector binning switch
+ */
+ public void setApplySectorBinning(boolean applySectorBinning) {
+ this._applySectorBinning = applySectorBinning;
+ }
+
/**
* Return the list of MCParticles that formed valid 3-hit seeds.
*
@@ -216,4 +237,15 @@
public Set<MCParticle> getConfirmedMCParticles() {
return _confirmedmcp;
}
+
+ /**
+ * Return the ConfirmerExtender
+ *
+ * @return confirmer/extender object
+ *
+ */
+ public ConfirmerExtender getConfirmer() {
+ return _confirmer;
+ }
+
}
\ No newline at end of file