Print

Print


Commit in lcsim/src/org/lcsim/recon/tracking/seedtracker on MAIN
SeedTracker.java+271.11 -> 1.12
Add option to make timing plots

lcsim/src/org/lcsim/recon/tracking/seedtracker
SeedTracker.java 1.11 -> 1.12
diff -u -r1.11 -r1.12
--- SeedTracker.java	3 Sep 2009 17:52:29 -0000	1.11
+++ SeedTracker.java	9 Sep 2009 04:23:53 -0000	1.12
@@ -18,6 +18,7 @@
 import org.lcsim.geometry.Detector;
 import org.lcsim.recon.tracking.seedtracker.diagnostic.ISeedTrackerDiagnostics;
 import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
 
 /**
  * Tracking algorithm based on forming track seeds from all 3-hit combinations,
@@ -41,6 +42,8 @@
     private double _bfield = 0.;
     private double _rtrk = 1000.;
     private boolean _autosectoring = true;
+    private AIDA aida = AIDA.defaultInstance();
+    private boolean _timing = false;
 
     /** Creates a new instance of SeedTracker */
     public SeedTracker() {
@@ -80,9 +83,18 @@
         //  Pass the event to the diagnostics package
         if (_diag != null) _diag.setEvent(event);
 
+        //  Initialize timing
+        long last_time = System.currentTimeMillis();
+
         //  Sort the hits for this event
         _hitmanager.OrganizeHits(event);
 
+        //  Make the timing plots if requested
+        long start_time = System.currentTimeMillis();
+        double dtime = ((double) (start_time - last_time)) / 1000.;
+        last_time = start_time;
+        if (_timing) aida.cloud1D("Organize Hits").fill(dtime);
+
         //  Make sure that we have cleared the list of track seeds in the finder
         _finder.clearTrackSeedList();
 
@@ -94,6 +106,12 @@
 
             //  Perform track finding under this strategy
             _finder.FindTracks(strategy, _bfield);
+
+            //  Make the timing plots if requested
+            long time = System.currentTimeMillis();
+            dtime = ((double) (time - last_time)) / 1000.;
+            last_time = time;
+            if (_timing) aida.cloud1D("Tracking time for strategy "+strategy.getName()).fill(dtime);
         }
 
         //  Get the list of final list of SeedCandidates
@@ -115,6 +133,11 @@
         //  Clear the list of track seeds accumulated in the track finder
         _finder.clearTrackSeedList();
 
+        //  Make the total time plot if requested
+            long end_time = System.currentTimeMillis();
+            dtime = ((double) (end_time - start_time)) / 1000.;
+            if (_timing) aida.cloud1D("Total tracking time").fill(dtime);
+
         return;
     }
 
@@ -178,6 +201,10 @@
         }
     }
 
+    public void setTimingPlots(boolean timing) {
+        _timing = timing;
+    }
+
     public void setTrkCollectionName(String name) {
         _maketracks.setTrkCollectionName(name);
     }
CVSspam 0.2.8