lcsim/src/org/lcsim/contrib/RobKutschke/TKNHits
diff -N TKNClusterMakerDriverV1.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ TKNClusterMakerDriverV1.java 21 Nov 2007 22:55:46 -0000 1.1
@@ -0,0 +1,83 @@
+package org.lcsim.contrib.RobKutschke.TKNHits;
+
+import java.util.List;
+
+import org.lcsim.util.Driver;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.TrackerHit;
+
+import org.lcsim.contrib.SiStripSim.ClusterMaker;
+import org.lcsim.contrib.SiStripSim.Kpix;
+import org.lcsim.contrib.SiStripSim.ReadoutChip;
+import org.lcsim.contrib.SiStripSim.StripClusterMaker;
+
+/**
+ *
+ * Driver to run Tim's cluster maker code and add clusters (as TrackerHits)
+ * to the event.
+ *
+ *@author $Author: kutschke $
+ *@version $Id: TKNClusterMakerDriverV1.java,v 1.1 2007/11/21 22:55:46 kutschke Exp $
+ *
+ * Date $Date: 2007/11/21 22:55:46 $
+ *
+ */
+
+public class TKNClusterMakerDriverV1 extends Driver
+{
+
+ // Names of input and output collections.
+ private String[] input = null;
+ private String[] output = null;
+
+ // Object that can interpret raw data to return charge, noise etc.
+ // Someday this will be (sub)detector dependent.
+ ReadoutChip readout = new Kpix();
+
+ // Code to make clusters from Raw hits.
+ ClusterMaker cluster_maker = new StripClusterMaker(readout);
+
+ /**
+ * Constructor:
+ *
+ */
+ public TKNClusterMakerDriverV1( String[] in, String[] out ){
+
+ input = in;
+ output = out;
+
+ // If lengths of arrays are not equal, abort.
+ if ( in.length != out.length ){
+ System.out.println ("Fatal error from TKNClusterMakerDriverV1. Different length lists for input and outputs!");
+ System.out.println ("Number of inputs/outputs: " + input.length + "/" + output.length );
+ System.out.println ("Inputs: " + input );
+ System.out.println ("Outputs: " + output );
+ System.exit(-1);
+ }
+
+ }
+
+
+ /**
+ * Make the clusters and add them to the event.
+ *
+ */
+ protected void process(EventHeader header){
+
+ // Loop over all of the collections to process.
+ for ( int i=0; i<input.length; ++i ){
+
+ // Get the list of RawTrackerHits from the event.
+ List<RawTrackerHit> rawhits = header.get(RawTrackerHit.class, input[i] );
+
+ // Make clusters.
+ List<TrackerHit> trkhits = cluster_maker.makeClusters(rawhits);
+
+ // Add the clusters to the event.
+ header.put(output[i], trkhits, TrackerHit.class, 0, "Kpix");
+
+ }
+ }
+}