Commit in lcsim/src/org/lcsim/digisim on MAIN
CalorimeterHitsDriver.java+60added 1.1
MyCalorimeterHit.java+49added 1.1
DigiSimMain.java+6-21.6 -> 1.7
+115-2
2 added + 1 modified, total 3 files
GL: tools for RawCalHit -> CalorimeterHit conversion

lcsim/src/org/lcsim/digisim
CalorimeterHitsDriver.java added at 1.1
diff -N CalorimeterHitsDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ CalorimeterHitsDriver.java	20 Jul 2005 21:14:49 -0000	1.1
@@ -0,0 +1,60 @@
+package org.lcsim.digisim;
+
+import java.util.List;
+import java.util.ArrayList;
+import org.lcsim.util.Driver;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.CalorimeterHit;
+import org.lcsim.event.RawCalorimeterHit;
+import org.lcsim.util.lcio.LCIOConstants;
+
+/**
+ * A driver to build calorimeter hit collections from raw hit collections.
+ *
+ * @author Guilherme Lima
+ * @version $Id: CalorimeterHitsDriver.java,v 1.1 2005/07/20 21:14:49 lima Exp $
+ */
+public class CalorimeterHitsDriver extends Driver {
+
+    /** constructor */
+    public CalorimeterHitsDriver() {
+    }
+
+    /** Called at the begin of job before anything is read.
+     * Used to initialize the driver, e.g. book histograms.
+     */
+    public void init() {
+    }
+
+//     /** Called for every run.
+//      */
+//     public void processRunHeader( LCRunHeader run ) {};
+
+    /** Called for every event - the working horse.
+     */
+    protected void process( EventHeader event ) {
+      // get all raw hits in event
+      List<List<RawCalorimeterHit>> rawHitCollections
+	  = event.get(RawCalorimeterHit.class);
+
+      for( List<RawCalorimeterHit> collection : rawHitCollections ) {
+	List<CalorimeterHit> calhitColl = new ArrayList<CalorimeterHit>();
+	for( RawCalorimeterHit rawhit : collection ) {
+	  CalorimeterHit calhit = new MyCalorimeterHit(rawhit);
+	  calhitColl.add(calhit);
+	}
+
+	// append collection to event
+	String rawName = event.getMetaData(collection).getName();
+	String newName = rawName.replace("Raw", "Digi");
+	int flag = 1 << LCIOConstants.CHBIT_ID1;
+	event.put( newName, calhitColl, CalorimeterHit.class, flag );
+      }
+    }
+
+    /** Called after data processing for clean up.
+     */
+    public void end() { }
+
+    //*** FIELDS ***
+}

lcsim/src/org/lcsim/digisim
MyCalorimeterHit.java added at 1.1
diff -N MyCalorimeterHit.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ MyCalorimeterHit.java	20 Jul 2005 21:14:49 -0000	1.1
@@ -0,0 +1,49 @@
+package org.lcsim.digisim;
+
+import org.lcsim.event.CalorimeterHit;
+import org.lcsim.event.RawCalorimeterHit;
+
+/**
+ * Implements a calorimeter hit, to be created from unpacking DigiSim output.
+ *
+ * @author Guilherme Lima
+ * @version $Id: MyCalorimeterHit.java,v 1.1 2005/07/20 21:14:49 lima Exp $
+ */
+public class MyCalorimeterHit implements CalorimeterHit
+{
+    /** Full constructor */
+    MyCalorimeterHit(RawCalorimeterHit rawhit) {
+	_cellid = rawhit.getCellID();
+	_energy = ((double)rawhit.getAmplitude())/1000000;
+	_timeStamp = (double)rawhit.getTimeStamp()/1000000;
+    }
+
+    /** Channel ID for this raw hit */
+    public long getCellID() {
+	return _cellid;
+    }
+
+    /** Total energy in this raw hit */
+    public double getEnergy() {
+	return _energy;
+    }
+
+    /** Time stamp */
+    public double getTime() {
+	return _timeStamp;
+    }
+
+   public double[] getPosition() {
+       double[] pos = new double[3];
+       return pos;
+   }
+
+    //=== FIELDS ===
+
+    /** Cell ID */
+    private long _cellid;
+    /** Amplitude */
+    private double _energy;
+    /** Time stamp */
+    private double _timeStamp;
+}

lcsim/src/org/lcsim/digisim
DigiSimMain.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- DigiSimMain.java	18 Jul 2005 19:18:25 -0000	1.6
+++ DigiSimMain.java	20 Jul 2005 21:14:48 -0000	1.7
@@ -21,7 +21,7 @@
  * The main driver for digitization simulation.
  *
  * @author Guilherme Lima
- * @version $Id: DigiSimMain.java,v 1.6 2005/07/18 19:18:25 tonyj Exp $
+ * @version $Id: DigiSimMain.java,v 1.7 2005/07/20 21:14:48 lima Exp $
  */
 public class DigiSimMain extends Driver {
 
@@ -31,11 +31,13 @@
     String name = "SDJan03";
     _hitmgr = new CalHitMapDriver();
     _digi = new DigiSimDriver(name);
+    _calhit = new CalorimeterHitsDriver();
     _nevt = 0;
 
     // initialize data provider and digitizers
     _hitmgr.init();
     _digi.init();
+    _calhit.init();
   }
 
   //
@@ -46,6 +48,7 @@
     // subdrivers processing
     _hitmgr.process(event);
     _digi.process(event);
+    _calhit.process(event);
 
     //.. test calhitmapmgr
     CalHitMapMgr hitmgr = CalHitMapMgr.getInstance();
@@ -164,6 +167,7 @@
     // subdrivers
     private CalHitMapDriver _hitmgr;
     private DigiSimDriver _digi;
+    private CalorimeterHitsDriver _calhit;
 
     // static registration globals
     private static boolean _gaindisc = GainDiscrimination.registerMe();
@@ -198,7 +202,7 @@
       digidriver.setDebug();
 
       // event loop
-      loop.loop(-1); // -1 for all
+      loop.loop(10); // -1 for all
       loop.dispose();
 
       org.lcsim.util.aida.AIDA.defaultInstance().saveAs("myhistos.aida");
CVSspam 0.2.8