Print

Print


Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux on MAIN
converters/TrackToITrackConverter.java+188added 1.1
          /package-info.java+8added 1.1
recon/TrackToITrackConverter.java-1611.1 removed
tests/TestDriver.java-1051.3 removed
     /TestDriverClustering.java-1101.2 removed
     /TestDriverRosary.java-1411.5 removed
+196-517
2 added + 4 removed, total 6 files
Make it possible to use converter directly, not as a driver

lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux/converters
TrackToITrackConverter.java added at 1.1
diff -N TrackToITrackConverter.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ TrackToITrackConverter.java	12 Mar 2009 22:27:12 -0000	1.1
@@ -0,0 +1,188 @@
+package org.lcsim.contrib.onoprien.crux.converters;
+
+import java.util.*;
+import java.util.logging.Level;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.LCRelation;
+import org.lcsim.event.RelationalTable;
+import org.lcsim.event.Track;
+import org.lcsim.event.TrackerHit;
+import org.lcsim.fit.helicaltrack.HelicalTrackHit;
+
+import org.lcsim.contrib.onoprien.util.ConstHep3Vector;
+import org.lcsim.contrib.onoprien.util.WeightedTable;
+import org.lcsim.contrib.onoprien.util.job.Driver;
+import org.lcsim.contrib.onoprien.util.job.JobEvent;
+import org.lcsim.contrib.onoprien.util.job.JobEventListener;
+import org.lcsim.contrib.onoprien.util.job.JobManager;
+import org.lcsim.contrib.onoprien.util.swim.Helix;
+import org.lcsim.contrib.onoprien.util.swim.ParVector;
+
+import org.lcsim.contrib.onoprien.vsegment.hit.ITrackerHit;
+
+import org.lcsim.contrib.onoprien.crux.infrastructure.CruxTrack;
+import org.lcsim.contrib.onoprien.crux.infrastructure.CruxTrackAnchorHit;
+import org.lcsim.contrib.onoprien.crux.infrastructure.CruxTrackNode;
+import org.lcsim.contrib.onoprien.crux.infrastructure.ITrackAnchor;
+import org.lcsim.contrib.onoprien.crux.infrastructure.ITrackNode;
+
+/**
+ * Converts tracks produced by SeedTracker into ITracks.
+ * An object of this class can be used either as a driver by adding it to the event
+ * processing chain, or as a standalone converted by calling the {@link #convert convert(Track)} method
+ * explicitly. In the latter case, {@link #setEvent setEvent(EventHeader)} method should be called first to
+ * initialize event specific data, and {@link #clearEvent()} should be called after the
+ * last conversion.
+ *
+ * @author D. Onoprienko
+ * @version $Id: TrackToITrackConverter.java,v 1.1 2009/03/12 22:27:12 onoprien Exp $
+ */
+public class TrackToITrackConverter extends Driver implements JobEventListener {
+
+// -- Private parts :  ---------------------------------------------------------
+
+  private String[] _inTracksNames;
+  private String _outTracksName;
+  private String _hHitRelName;
+
+  private WeightedTable<HelicalTrackHit, ITrackerHit> _h2i;
+
+
+// -- Constructors and initialization :  ----------------------------------------
+
+  public TrackToITrackConverter() {
+    JobManager jobMan = JobManager.defaultInstance();
+    jobMan.addListener(this);
+  }
+
+  /** Called by framework to perform detector-dependent initialization. */
+  public void detectorChanged(JobEvent jobEvent) {
+    if (_hHitRelName == null) throw new IllegalStateException(ERR_NS);
+  }
+
+
+// -- Setters :  ---------------------------------------------------------------
+
+  /**
+   * Set any parameter.
+   * The following parameters can be set with this method:
+   * <p><dl>
+   * <dt>"INPUT_TRACKS"</dt> <dd>One or more names of input {@link Track} collections.<br>
+   *           Default: <tt>null</tt> (must be specified before this converter can be used as a driver).</dd>
+   * <dt>"OUTPUT_TRACKS"</dt> <dd>Name of output list that contains created {@link CruxTrack} objects.<br>
+   *           Default: <tt>null</tt> (must be specified before this converter can be used as a driver).</dd>
+   * <dt>"HELICAL_HIT_RELATIONS"</dt> <dd>Name of the list of relations between {@link HelicalTrackHit}
+   *           objects attached to input tracks, and tracker clusters.<br>
+   *           Default: <tt>null</tt> (must be specified before this converter can be used).</dd>
+   * </dl>
+   *
+   * @param name   Name of parameter to be set. Case is ignored.
+   * @param values  List of values to be used for setting the parameter.
+   * @throws NoSuchParameterException Thrown if the supplied parameter name is unknown.
+   * @throws IllegalArgumentException Thrown if incorrect number of values, or a value
+   *                                  of incorrect type is supplied.
+   */
+  public void set(String name, Object... values) {
+    try {
+      if (name.equalsIgnoreCase("INPUT_TRACKS")) {
+        _inTracksNames = new String[values.length];
+        for (int i=0; i<values.length; i++) _inTracksNames[i] = (String) values[i];
+      } else if (name.equalsIgnoreCase("OUTPUT_TRACKS")) {
+        _outTracksName = (String) values[0];
+      } else if (name.equalsIgnoreCase("HELICAL_HIT_RELATIONS")) {
+        _hHitRelName = (String) values[0];
+      } else {
+        super.set(name, values);
+      }
+    } catch (ClassCastException x) {
+      throw new IllegalArgumentException(ERR_VIT, x);
+    }
+  }
+
+
+// -- Processing event :  ------------------------------------------------------
+
+  /** Called by the framework to process an event. */
+  public void process(EventHeader event) {
+
+    super.process(event);
+
+    HashSet<Track> oldTracks = new HashSet<Track>();
+    for (String name : _inTracksNames) {
+      try {
+        oldTracks.addAll((List<Track>) event.get(name));
+      } catch (IllegalArgumentException x) {}
+    }
+
+    setEvent(event);
+
+    ArrayList<CruxTrack> cruxTracks = new ArrayList<CruxTrack>(oldTracks.size());
+
+    for (Track track : oldTracks) {
+      cruxTracks.add(convert(track));
+    }
+
+    clearEvent();
+    cruxTracks.trimToSize();
+    event.put(_outTracksName, cruxTracks, Track.class, 0);
+  }
+
+  /**
+   * Initializes event-specific data.
+   * If client code calls {@link #convert convert(Track)} directly instead of using this
+   * <tt>TrackToITrackConverter</tt> as a driver, this method should be called once
+   * per event before using the converter.
+   */
+  public void setEvent(EventHeader event) {
+    _h2i = new WeightedTable<HelicalTrackHit, ITrackerHit>(RelationalTable.Mode.ONE_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
+    try {
+      Collection<LCRelation> hHitRel = (Collection<LCRelation>) event.get(_hHitRelName);
+      for (LCRelation rel : hHitRel) {
+        _h2i.add((HelicalTrackHit) rel.getFrom(), (ITrackerHit) rel.getTo());
+      }
+    } catch (IllegalArgumentException x) {}
+  }
+
+  /**
+   * Clears event specific data.
+   */
+  public void clearEvent() {
+    _h2i = null;
+  }
+
+  /**
+   * Converts the specified <tt>Track</tt> into an <tt>ITrack</tt>.
+   */
+  public CruxTrack convert(Track track) {
+
+      // Wrap hits into anchors :
+
+      LinkedHashSet<ITrackerHit> clusters = new LinkedHashSet<ITrackerHit>();
+      List<TrackerHit> hits = track.getTrackerHits();
+      for (TrackerHit hit : hits) {
+        Set<ITrackerHit> iHits = _h2i.allFrom((HelicalTrackHit)hit);
+        clusters.addAll(iHits);
+      }
+      ArrayList<ITrackAnchor> anchors = new ArrayList<ITrackAnchor>(clusters.size());
+      for (ITrackerHit cluster : clusters) {
+        anchors.add(new CruxTrackAnchorHit(cluster));
+      }
+
+      // Create track node at POCA XY to IP :
+
+      double[] tp = track.getTrackParameters().clone();
+      ConstHep3Vector refPoint = new ConstHep3Vector(track.getReferencePoint());
+      ParVector<Helix.CRep> pars = new ParVector<Helix.CRep>(Helix.CRep.class, tp);
+      Helix helix = new Helix(pars, refPoint);
+      CruxTrackNode startNode = new CruxTrackNode(helix);
+
+      ArrayList<ITrackNode> nodes = new ArrayList<ITrackNode>(1);
+      nodes.add(startNode);
+
+      // Create track
+
+      return new CruxTrack(anchors, nodes, track.getCharge());
+  }
+
+}

lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux/converters
package-info.java added at 1.1
diff -N package-info.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ package-info.java	12 Mar 2009 22:27:12 -0000	1.1
@@ -0,0 +1,8 @@
+/**
+ * Classes that bridge Crux object model to other types of infrastructure, and
+ * drivers that operate on non-Crux objects.
+ *
+ * @author D. Onoprienko
+ */
+package org.lcsim.contrib.onoprien.crux.converters;
+

lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux/recon
TrackToITrackConverter.java removed after 1.1
diff -N TrackToITrackConverter.java
--- TrackToITrackConverter.java	3 Mar 2009 21:25:32 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,161 +0,0 @@
-package org.lcsim.contrib.onoprien.crux.recon;
-
-import java.util.*;
-import java.util.logging.Level;
-
-import hep.physics.vec.Hep3Vector;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.LCRelation;
-import org.lcsim.event.MCParticle;
-import org.lcsim.event.RelationalTable;
-import org.lcsim.event.Track;
-import org.lcsim.event.TrackerHit;
-import org.lcsim.fit.helicaltrack.HelicalTrackHit;
-
-import org.lcsim.contrib.onoprien.util.ConstHep3Vector;
-import org.lcsim.contrib.onoprien.util.WeightedTable;
-import org.lcsim.contrib.onoprien.util.job.Driver;
-import org.lcsim.contrib.onoprien.util.job.JobEvent;
-import org.lcsim.contrib.onoprien.util.job.JobEventListener;
-import org.lcsim.contrib.onoprien.util.job.JobManager;
-import org.lcsim.contrib.onoprien.util.swim.BField;
-import org.lcsim.contrib.onoprien.util.swim.Helix;
-import org.lcsim.contrib.onoprien.util.swim.ParVector;
-
-import org.lcsim.contrib.onoprien.vsegment.hit.ITrackerHit;
-
-import org.lcsim.contrib.onoprien.crux.infrastructure.CruxTrack;
-import org.lcsim.contrib.onoprien.crux.infrastructure.CruxTrackAnchorHit;
-import org.lcsim.contrib.onoprien.crux.infrastructure.CruxTrackNode;
-import org.lcsim.contrib.onoprien.crux.infrastructure.ITrack;
-import org.lcsim.contrib.onoprien.crux.infrastructure.ITrackAnchor;
-import org.lcsim.contrib.onoprien.crux.infrastructure.ITrackNode;
-
-/**
- * Driver that converts tracks produced by SeedTracker into ITracks.
- *
- * @author D. Onoprienko
- * @version $Id: TrackToITrackConverter.java,v 1.1 2009/03/03 21:25:32 onoprien Exp $
- */
-public class TrackToITrackConverter extends Driver implements JobEventListener {
-
-// -- Private parts :  ---------------------------------------------------------
-
-  private String[] _inTracksNames;
-  private String _outTracksName;
-  private String _hHitRelName;
-
-
-// -- Constructors and initialization :  ----------------------------------------
-
-  public TrackToITrackConverter() {
-    JobManager jobMan = JobManager.defaultInstance();
-    jobMan.addListener(this);
-  }
-
-  /** Called by framework to perform detector-dependent initialization. */
-  public void detectorChanged(JobEvent jobEvent) {
-    if (_inTracksNames == null || _outTracksName == null || _hHitRelName == null) throw new IllegalStateException(ERR_NS);
-  }
-
-
-// -- Setters :  ---------------------------------------------------------------
-
-  /**
-   * Set any parameter.
-   * The following parameters can be set with this method:
-   * <p><dl>
-   * <dt>"INPUT_TRACKS"</dt> <dd>One or more names of input {@link Track} collections.<br>
-   *           Default: <tt>null</tt> (must be specified before this driver can be used).</dd>
-   * <dt>"OUTPUT_TRACKS"</dt> <dd>Name of output list that contains created {@link CruxTrack} objects.<br>
-   *           Default: <tt>null</tt> (must be specified before this driver can be used).</dd>
-   * <dt>"HELICAL_HIT_RELATIONS"</dt> <dd>Name of the list of relations between {@link HelicalTrackHit}
-   *           objects attached to input tracks, and tracker clusters.<br>
-   *           Default: <tt>null</tt> (must be specified before this driver can be used).</dd>
-   * </dl>
-   *
-   * @param name   Name of parameter to be set. Case is ignored.
-   * @param values  List of values to be used for setting the parameter.
-   * @throws NoSuchParameterException Thrown if the supplied parameter name is unknown.
-   * @throws IllegalArgumentException Thrown if incorrect number of values, or a value
-   *                                  of incorrect type is supplied.
-   */
-  public void set(String name, Object... values) {
-    try {
-      if (name.equalsIgnoreCase("INPUT_TRACKS")) {
-        _inTracksNames = new String[values.length];
-        for (int i=0; i<values.length; i++) _inTracksNames[i] = (String) values[i];
-      } else if (name.equalsIgnoreCase("OUTPUT_TRACKS")) {
-        _outTracksName = (String) values[0];
-      } else if (name.equalsIgnoreCase("HELICAL_HIT_RELATIONS")) {
-        _hHitRelName = (String) values[0];
-      } else {
-        super.set(name, values);
-      }
-    } catch (ClassCastException x) {
-      throw new IllegalArgumentException(ERR_VIT, x);
-    }
-  }
-
-
-// -- Processing event :  ------------------------------------------------------
-
-  public void process(EventHeader event) {
-
-    super.process(event);
-
-    HashSet<Track> oldTracks = new HashSet<Track>();
-    for (String name : _inTracksNames) {
-      try {
-        oldTracks.addAll((List<Track>) event.get(name));
-      } catch (IllegalArgumentException x) {}
-    }
-
-    WeightedTable<HelicalTrackHit, ITrackerHit> h2i =
-        new WeightedTable<HelicalTrackHit, ITrackerHit>(RelationalTable.Mode.ONE_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
-    try {
-      Collection<LCRelation> hHitRel = (Collection<LCRelation>) event.get(_hHitRelName);
-      for (LCRelation rel : hHitRel) {
-        h2i.add((HelicalTrackHit) rel.getFrom(), (ITrackerHit) rel.getTo());
-      }
-    } catch (IllegalArgumentException x) {}
-
-    ArrayList<CruxTrack> cruxTracks = new ArrayList<CruxTrack>(oldTracks.size());
-
-    for (Track track : oldTracks) {
-
-      // Wrap hits into anchors :
-
-      LinkedHashSet<ITrackerHit> clusters = new LinkedHashSet<ITrackerHit>();
-      List<TrackerHit> hits = track.getTrackerHits();
-      for (TrackerHit hit : hits) {
-        Set<ITrackerHit> iHits = h2i.allFrom((HelicalTrackHit)hit);
-        clusters.addAll(iHits);
-      }
-      ArrayList<ITrackAnchor> anchors = new ArrayList<ITrackAnchor>(clusters.size());
-      for (ITrackerHit cluster : clusters) {
-        anchors.add(new CruxTrackAnchorHit(cluster));
-      }
-
-      // Create track node at POCA XY to IP :
-
-      double[] tp = track.getTrackParameters().clone();
-      ConstHep3Vector refPoint = new ConstHep3Vector(track.getReferencePoint());
-      ParVector<Helix.CRep> pars = new ParVector<Helix.CRep>(Helix.CRep.class, tp);
-      Helix helix = new Helix(pars, refPoint);
-      CruxTrackNode startNode = new CruxTrackNode(helix);
-
-      ArrayList<ITrackNode> nodes = new ArrayList<ITrackNode>(1);
-      nodes.add(startNode);
-
-      // Create track
-
-      CruxTrack cruxTrack = new CruxTrack(anchors, nodes, track.getCharge());
-      cruxTracks.add(cruxTrack);
-    }
-
-    cruxTracks.trimToSize();
-    event.put(_outTracksName, cruxTracks, Track.class, 0);
-  }
-
-}

lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux/tests
TestDriver.java removed after 1.3
diff -N TestDriver.java
--- TestDriver.java	3 Mar 2009 21:25:32 -0000	1.3
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,105 +0,0 @@
-package org.lcsim.contrib.onoprien.crux.tests;
-
-import java.util.logging.Level;
-import org.lcsim.contrib.onoprien.crux.CruxManager;
-
-import org.lcsim.digisim.DigiSimDriver;
-import org.lcsim.digisim.SimCalorimeterHitsDriver;
-import org.lcsim.event.EventHeader;
-import org.lcsim.recon.cluster.util.CalHitMapDriver;
-
-import org.lcsim.contrib.onoprien.util.job.Driver;
-
-import org.lcsim.contrib.onoprien.crux.algorithms.TrackedParticleFinderDriver;
-import org.lcsim.contrib.onoprien.crux.algorithms.ValidationDriver;
-import org.lcsim.contrib.onoprien.crux.algorithms.Validator;
-import org.lcsim.contrib.onoprien.crux.diagnostics.TrackingTest;
-import org.lcsim.contrib.onoprien.crux.infrastructure.*;
-import org.lcsim.contrib.onoprien.crux.mctruth.MCTruthDriverCrux;
-import org.lcsim.contrib.onoprien.crux.analysis.CheatTrackFinderDriver;
-import org.lcsim.contrib.onoprien.crux.analysis.CheatVertexFinderDriver;
-
-/**
- * Main driver for testing PFA code.
- *
- * @author D. Onoprienko
- * @version $Id: TestDriver.java,v 1.3 2009/03/03 21:25:32 onoprien Exp $
- */
-public class TestDriver extends Driver {
-  
-  public TestDriver() {
-    
-    set("LOG_LEVEL", Level.FINEST);
-    
-// -- MCTruth access :  --------------------------------------------------------
-
-    // The effect is: CruxMCTruth object is created and put into the event as "CruxMCTruth".
-    // Required by various cheaters and analysis classes.
-
-    add(new MCTruthDriverCrux());
-    
-// -- Digitization of hits in calorimeter :  -----------------------------------
-
-    // Output of DigiSim is hit collections: "EcalBarrDigiHits", "EcalEndcapDigiHits", 
-    // "HcalBarrDigiHits", "HcalEndcapDigiHits" (added to the event).
-    // FIXME: If those collections are all I need, a lot of large maps in CalHitMapMgr
-    //        and LCRelation collections can be discarded to save memory - talk to Guilherme.
-
-    add(new CalHitMapDriver());
-    add(new DigiSimDriver());
-    add(new SimCalorimeterHitsDriver());
-    
-// -- Track & Vertex finding/fitting :  ----------------------------------------
-
-    // The effect is: tracks are created for trackable particles, vertices are created 
-    // and associated with tracks, a list of tracks is added to the event.
-
-    CheatTrackFinderDriver trackingDriver = new CheatTrackFinderDriver();
-    trackingDriver.set("TRACK_LIST", "CheatedTracks");
-    add(trackingDriver);
-    CheatVertexFinderDriver vertexingDriver = new CheatVertexFinderDriver();
-    vertexingDriver.set("TRACK_LIST", "CheatedTracks");
-    add(vertexingDriver);
-    
-    TrackingTest trackingTestDriver = new TrackingTest();
-    trackingTestDriver.set("TRACK_LIST", "CheatedTracks");
-    add(trackingTestDriver);
-    
-// -- Crux package initialization :  -------------------------------------------
-
-    // The effect is:
-    //   CruxManager singleton is created;
-    //   a map of digitized calorimeter hits is generated and put into event as "CalHitMap_All";
-    //   an empty instance of CruxParticleList is created and put into event as "CruxParticles".
-
-    CruxManager cruxManager = CruxManager.defaultInstance();
-    add(cruxManager);
-    
-// -- Tracked paricle reconstruction :  ----------------------------------------
-    
-    TrackedParticleFinderDriver trackedParticleFinderDriver = new TrackedParticleFinderDriver();
-    trackedParticleFinderDriver.set("TRACK_LIST", "CheatedTracks");
-    add(trackedParticleFinderDriver);
-    
-    if (isLogging(Level.FINEST)) {
-      add(new Driver() {
-        public void process(EventHeader event) {
-          CruxParticleList recoList = (CruxParticleList) event.get("CruxParticles");
-          recoList.print();          
-        }
-      });
-    }
-    
-    
-    
-  }
-  
-// -- Event processing :  ------------------------------------------------------
-  
-  public void process(EventHeader event) {
-    super.process(event);
-  }
-  
-// -- Private parts :  ---------------------------------------------------------
-
-}

lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux/tests
TestDriverClustering.java removed after 1.2
diff -N TestDriverClustering.java
--- TestDriverClustering.java	12 Feb 2009 01:32:08 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,110 +0,0 @@
-package org.lcsim.contrib.onoprien.crux.tests;
-
-import java.util.*;
-import java.util.logging.Level;
-import org.lcsim.contrib.onoprien.crux.CruxManager;
-
-import org.lcsim.digisim.DigiSimDriver;
-import org.lcsim.digisim.SimCalorimeterHitsDriver;
-import org.lcsim.event.CalorimeterHit;
-import org.lcsim.event.EventHeader;
-import org.lcsim.recon.cluster.nn.NearestNeighborClusterer;
-import org.lcsim.recon.cluster.util.CalHitMapDriver;
-import org.lcsim.recon.cluster.util.Clusterer;
-
-import org.lcsim.contrib.onoprien.util.job.Driver;
-        
-import org.lcsim.contrib.onoprien.crux.algorithms.ClusteringDriver;
-import org.lcsim.contrib.onoprien.crux.recon.HitMapFilterDriver;
-import org.lcsim.contrib.onoprien.crux.diagnostics.ClusteringTest;
-import org.lcsim.contrib.onoprien.crux.infrastructure.*;
-import org.lcsim.contrib.onoprien.crux.mctruth.MCTruthDriverCrux;
-
-/**
- *
- *
- * @author D. Onoprienko
- * @version $Id: TestDriverClustering.java,v 1.2 2009/02/12 01:32:08 onoprien Exp $
- */
-public class TestDriverClustering extends Driver {
-  
-// -- Constructors :  ----------------------------------------------------------
-  
-  public TestDriverClustering() {
-    
-    set("LOG_LEVEL", Level.FINEST);
-    set("LOG_DEFAULT_LEVEL", Level.FINEST);
-
-    add(new MCTruthDriverCrux());
-    
-    add(CruxManager.defaultInstance());
-    
-    // -- Digitization of hits in calorimeter :  -------------------------------
-    
-    addLog("Starting DigiSim :");
-
-    // Output of DigiSim is hit collections: "EcalBarrDigiHits", "EcalEndcapDigiHits", 
-    // "HcalBarrDigiHits", "HcalEndcapDigiHits" (added to the event).
-    // FIXME: If those collections are all I need, a lot of large maps in CalHitMapMgr
-    //        and LCRelation collections can be discarded to save memory - talk to Guilherme.
-
-    add(new CalHitMapDriver());
-    add(new DigiSimDriver());
-    add(new SimCalorimeterHitsDriver());
-    
-    // -- Create a map of all calorimeter hits :  ------------------------------
-    
-    addLog("Creating hit map...");
-    
-    HitMapFilterDriver hitMapCreator = new HitMapFilterDriver();
-    hitMapCreator.set("INPUT", "EcalBarrDigiHits", "EcalEndcapDigiHits");
-    hitMapCreator.set("INPUT", "EcalBarrDigiHits");
-    hitMapCreator.set("INPUT", "HcalBarrDigiHits", "HcalEndcapDigiHits");
-    hitMapCreator.set("OUTPUT", null, "CalHitMap_All", "MAP");
-    add(hitMapCreator);
-
-//    add(new CruxDriver() {
-//      public void process(EventHeader event) {
-//        int nHits = 0;
-//        List<CalorimeterHit> hits = event.get(CalorimeterHit.class, "EcalBarrDigiHits");
-//        log("EcalBarrDigiHits " + hits.size()); nHits += hits.size();
-//        hits = event.get(CalorimeterHit.class, "EcalEndcapDigiHits");
-//        log("EcalEndcapDigiHits " + hits.size()); nHits += hits.size();
-//        hits = event.get(CalorimeterHit.class, "HcalBarrDigiHits");
-//        log("HcalBarrDigiHits " + hits.size()); nHits += hits.size();
-//        hits = event.get(CalorimeterHit.class, "HcalEndcapDigiHits");
-//        log("HcalEndcapDigiHits " + hits.size()); nHits += hits.size();
-//        log("Total = " + nHits);
-//        CruxHitMap map = (CruxHitMap) event.get("CalHitMap_All");
-//        log("CalHitMap_All " + map.size());
-//      }
-//    });
-
-    // -- Initial clustering :  ------------------------------------------------
-    
-    ClusteringDriver clusteringDriver = new ClusteringDriver();
-    clusteringDriver.set("INPUT_HIT_MAP", "CalHitMap_All");
-    clusteringDriver.set("SPLIT_BY_MODULE");
-    Clusterer clusterer = new NearestNeighborClusterer(1, 1, 1, 1, 0.);
-//    Clusterer clusterer = new org.lcsim.recon.cluster.cheat.CheatClusterer();
-    clusteringDriver.set("OUTPUT", null, clusterer, "FirstPassClusters");
-    add(clusteringDriver);
-    
-    // -- Clustering analysis :  -----------------------------------------------
-    
-    ClusteringTest testClustering = new  ClusteringTest();
-    testClustering.set("CLUSTER_LIST", "FirstPassClusters");
-    testClustering.set("HIT_MAP", "CalHitMap_All");
-    add(testClustering);
-    
-  }
-  
-// -- Event processing :  ------------------------------------------------------
-  
-  public void process(EventHeader event) {
-    super.process(event);
-  }
-  
-// -- Private parts :  ---------------------------------------------------------
-  
-}

lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/crux/tests
TestDriverRosary.java removed after 1.5
diff -N TestDriverRosary.java
--- TestDriverRosary.java	3 Mar 2009 21:25:32 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,141 +0,0 @@
-package org.lcsim.contrib.onoprien.crux.tests;
-
-import java.util.*;
-
-import java.util.logging.Level;
-import org.lcsim.contrib.onoprien.crux.CruxManager;
-import org.lcsim.contrib.onoprien.crux.geom.CalGeometry;
-
-import org.lcsim.digisim.DigiSimDriver;
-import org.lcsim.digisim.SimCalorimeterHitsDriver;
-import org.lcsim.detector.identifier.*;
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.event.EventHeader;
-import org.lcsim.recon.cluster.util.CalHitMapDriver;
-
-import org.lcsim.contrib.onoprien.util.job.Driver;
-import org.lcsim.contrib.onoprien.util.job.JobManager;
-
-import org.lcsim.contrib.onoprien.crux.algorithms.TrackedParticleFinderDriver;
-import org.lcsim.contrib.onoprien.crux.algorithms.rosary.RosaryClusterer;
-import org.lcsim.contrib.onoprien.crux.infrastructure.*;
-import org.lcsim.contrib.onoprien.crux.mctruth.MCTruthDriverCrux;
-import org.lcsim.contrib.onoprien.crux.analysis.CheatTrackFinderDriver;
-import org.lcsim.contrib.onoprien.crux.analysis.CheatVertexFinderDriver;
-import org.lcsim.contrib.onoprien.crux.recon.HitMapFilterDriver;
-
-/**
- *
- *
- * @author D. Onoprienko
- * @version $Id: TestDriverRosary.java,v 1.5 2009/03/03 21:25:32 onoprien Exp $
- */
-public class TestDriverRosary extends Driver {
-  
-// -- Constructors :  ----------------------------------------------------------
-  
-  public TestDriverRosary() {
-    
-    set("LOG_LEVEL", Level.FINEST);
-
-    add(new MCTruthDriverCrux());
-    add(CruxManager.defaultInstance());
-    
-    // -- Digitization of hits in calorimeter :  -------------------------------
-
-    add(new CalHitMapDriver());
-    add(new DigiSimDriver());
-    add(new SimCalorimeterHitsDriver());
-    
-    // -- Create a map of all calorimeter hits :  ------------------------------
-    
-    addLog("Creating hit map...");
-    
-    HitMapFilterDriver hitMapCreator = new HitMapFilterDriver();
-    hitMapCreator.set("INPUT", "EcalBarrDigiHits", "EcalEndcapDigiHits");
-    hitMapCreator.set("INPUT", "EcalBarrDigiHits");
-    hitMapCreator.set("INPUT", "HcalBarrDigiHits", "HcalEndcapDigiHits");
-    hitMapCreator.set("OUTPUT", null, "CalHitMap_All", "MAP");
-    add(hitMapCreator);
-    
-    // -- Track & Vertex finding/fitting :  ------------------------------------
-
-    // The effect is: tracks are created for trackable particles, vertices are created 
-    // and associated with tracks, a list of tracks is added to the event.
-
-    CheatTrackFinderDriver trackingDriver = new CheatTrackFinderDriver();
-    trackingDriver.set("TRACK_LIST", "CheatedTracks");
-    add(trackingDriver);
-    CheatVertexFinderDriver vertexingDriver = new CheatVertexFinderDriver();
-    vertexingDriver.set("TRACK_LIST", "CheatedTracks");
-    add(vertexingDriver);
-    
-    // -- Tracked paricle reconstruction :  ------------------------------------
-
-    TrackedParticleFinderDriver trackedParticleFinderDriver = new TrackedParticleFinderDriver();
-    trackedParticleFinderDriver.set("TRACK_LIST", "CheatedTracks");
-    add(trackedParticleFinderDriver);
-
-    if (isLogging(Level.FINEST)) {
-      add(new Driver() {
-        public void process(EventHeader event) {
-          CruxParticleList recoList = (CruxParticleList) event.get("CruxParticles");
-          recoList.print();
-        }
-      });
-    }
-    
-    // -- Rosary clustering :  -------------------------------------------------
-    
-    RosaryClusterer rosaryDriver = new RosaryClusterer();
-    rosaryDriver.set("LOG_LEVEL", Level.FINEST);
-    rosaryDriver.set("INPUT_HIT_MAP", "CalHitMap_All");
-    add(rosaryDriver);
-    
-  }
-  
-// -- Event processing :  ------------------------------------------------------
-  
-  public void process(EventHeader event) {
-    super.process(event);
-    
-    CalGeometry geom = JobManager.defaultInstance().get(CalGeometry.class);
-    
-//    CruxHitMap hitMap = (CruxHitMap) event.get("CalHitMap_All");
-//    Collection<CalorimeterHit> hitList = hitMap.values();
-//    HashSet<CruxCalModule> moduleSet = new HashSet<CruxCalModule>();
-//    for (CalorimeterHit hit : hitList) {
-//      CruxCalModule mod = geom.getModule(hit);
-//      if (! moduleSet.contains(mod)) {
-//        moduleSet.add(mod);
-//        log(" ");
-//        log("Hit in "+ mod.getName() +" : " + hit.getSubdetector().getDetectorElement() +" decoder layer "+ hit.getIDDecoder().getLayer());
-//        print(hit.getSubdetector().getDetectorElement(), 2);
-//      }
-//    }
-    
-//    List<CruxCalModule> modules = geom.getModules();
-//    for (CruxCalModule mod : modules) {
-//      log("Module " + mod.getName()+ " " + mod.getID());
-//      List<CruxCalLayer> layers = mod.getLayers();
-//      for (CruxCalLayer layer : layers) {
-//        log("  ID "+ layer.getID() +" layer "+ layer.getLayer() +" de "+ layer.getDetectorElement().getName()+" sol "+((Tube) (layer.getDetectorElement().getGeometry().getPhysicalVolume().getLogicalVolume().getSolid())).getInnerRadius());
-//      }
-//    }
-    
-    
-  }
-  
-  private void print(IDetectorElement de, int indent) {
-    for (int i=0; i<indent; i++) System.out.print(" ");
-    IIdentifier id = de.getIdentifier();
-    IIdentifierHelper idHelp = de.getIdentifierHelper();
-    System.out.print(" ID value " + id.getValue());
-    System.out.println(" layer "+idHelp.getValue(id, "layer")+" "+de.getName());
-    for (IDetectorElement d : de.getChildren()) print(d, indent+2);
-  }
-  
-// -- Private parts :  ---------------------------------------------------------
-  
-  
-}
CVSspam 0.2.8