Print

Print


Author: [log in to unmask]
Date: Wed Dec 17 02:18:31 2014
New Revision: 1776

Log:
Remove HPSCalorimeterHit and fix up usage of BaseCalorimeterHit throughout ECAL code.  Make everything compatible with LCSim trunk.  HPSJAVA-347

Added:
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/CalorimeterHitUtilities.java
Removed:
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/HPSCalorimeterHit.java
Modified:
    java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/EventDisplayOutputDriver.java
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SimpleEcalReadoutDriver.java
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TimeEvolutionEcalReadoutDriver.java
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/CTPEcalClusterer.java
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalClusterICBasic.java
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalConverterDriver.java
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalEdepToTriggerConverterDriver.java
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverter.java
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalReadoutToTriggerConverterDriver.java
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalTriggerFilterDriver.java
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/HPSEcalCluster.java
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClasInnerCalClusterDriver.java
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClusterDriver.java
    java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/example/EcalMonitoringTestDriver.java
    java/trunk/recon/src/test/java/org/hps/recon/particle/HpsReconParticleDriverTest.java
    java/trunk/tracking/src/main/java/org/hps/recon/tracking/SVTBadChannelFilterDriver.java
    java/trunk/users/src/main/java/org/hps/users/holly/HPSEcalClusterIC.java
    java/trunk/users/src/main/java/org/hps/users/mgraham/HPSTrackerHit.java
    java/trunk/util/src/main/java/org/hps/util/MergeBunches.java

Modified: java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/EventDisplayOutputDriver.java
 =============================================================================
--- java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/EventDisplayOutputDriver.java	(original)
+++ java/trunk/ecal-event-display/src/main/java/org/hps/monitoring/ecal/eventdisplay/lcsim/EventDisplayOutputDriver.java	Wed Dec 17 02:18:31 2014
@@ -106,7 +106,7 @@
 	                // Process the clusters.
 	                for (HPSEcalCluster cluster : clusters) {
 	                    // Get the seed hit for the cluster.
-	                    HPSCalorimeterHit seedHit = (HPSCalorimeterHit)cluster.getSeedHit();
+	                    CalorimeterHit seedHit = (CalorimeterHit)cluster.getSeedHit();
 	                    int ix = seedHit.getIdentifierFieldValue("ix");
 	                    int iy = seedHit.getIdentifierFieldValue("iy");
 	                    double time = seedHit.getTime();

Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SimpleEcalReadoutDriver.java
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SimpleEcalReadoutDriver.java	(original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SimpleEcalReadoutDriver.java	Wed Dec 17 02:18:31 2014
@@ -4,29 +4,27 @@
 import java.util.List;
 import java.util.Map;
 
-import org.hps.recon.ecal.HPSCalorimeterHit;
 import org.lcsim.event.CalorimeterHit;
+import org.lcsim.event.base.BaseCalorimeterHit;
 
 /**
  * Performs readout of ECal hits. No time evolution - this just integrates all
  * hits in a cycle.
  *
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: SimpleEcalReadoutDriver.java,v 1.1 2013/02/25 22:39:26 meeg Exp
- * $
  */
-public class SimpleEcalReadoutDriver extends EcalReadoutDriver<HPSCalorimeterHit> {
+public class SimpleEcalReadoutDriver extends EcalReadoutDriver<CalorimeterHit> {
 
     //buffer for deposited energy
 
     Map<Long, Double> eDepMap = null;
 
     public SimpleEcalReadoutDriver() {
-        hitClass = HPSCalorimeterHit.class;
+        hitClass = CalorimeterHit.class;
     }
 
     @Override
-    protected void readHits(List<HPSCalorimeterHit> hits) {
+    protected void readHits(List<CalorimeterHit> hits) {
         for (Long cellID : eDepMap.keySet()) {
 //            int ix = dec.getValue("ix");
 //            int iy = dec.getValue("iy");
@@ -35,7 +33,8 @@
 //            if (iy == 1 && ix*side >= -10 && ix*side <= -2)
 //                continue;
             if (eDepMap.get(cellID) > threshold) {
-                HPSCalorimeterHit h = new HPSCalorimeterHit(eDepMap.get(cellID), readoutTime(), cellID, hitType);
+                //HPSCalorimeterHit h = new HPSCalorimeterHit(eDepMap.get(cellID), readoutTime(), cellID, hitType);                
+                CalorimeterHit h = new BaseCalorimeterHit(eDepMap.get(cellID), eDepMap.get(cellID), 0, readoutTime(), cellID, null, hitType, null);                
                 hits.add(h);
             }
         }

Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TimeEvolutionEcalReadoutDriver.java
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TimeEvolutionEcalReadoutDriver.java	(original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TimeEvolutionEcalReadoutDriver.java	Wed Dec 17 02:18:31 2014
@@ -4,6 +4,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.hps.recon.ecal.CalorimeterHitUtilities;
 import org.hps.recon.ecal.HPSCalorimeterHit;
 import org.lcsim.event.CalorimeterHit;
 
@@ -14,7 +15,7 @@
  * @author Sho Uemura <[log in to unmask]>
  * @version $Id: TimeEvolutionEcalReadoutDriver.java,v 1.1 2013/02/25 22:39:26 meeg Exp $
  */
-public class TimeEvolutionEcalReadoutDriver extends EcalReadoutDriver<HPSCalorimeterHit> {
+public class TimeEvolutionEcalReadoutDriver extends EcalReadoutDriver<CalorimeterHit> {
     //buffer for deposited energy
     Map<Long, RingBuffer> eDepMap = null;
     //length of ring buffer (in readout cycles)
@@ -23,7 +24,7 @@
     double t0 = 18.0;
     
     public TimeEvolutionEcalReadoutDriver() {
-		hitClass = HPSCalorimeterHit.class;
+		hitClass = CalorimeterHit.class;
     }
 
     public void setT0(double t0) {
@@ -36,12 +37,11 @@
     }
 
     @Override
-    protected void readHits(List<HPSCalorimeterHit> hits) {
+    protected void readHits(List<CalorimeterHit> hits) {
         for (Long cellID : eDepMap.keySet()) {
             RingBuffer eDepBuffer = eDepMap.get(cellID);
-            if (eDepBuffer.currentValue() > threshold) {
-            	HPSCalorimeterHit h = new HPSCalorimeterHit(eDepBuffer.currentValue(), readoutTime(), cellID, hitType);
-            	hits.add(h);
+            if (eDepBuffer.currentValue() > threshold) {            	            	            	
+            	hits.add(CalorimeterHitUtilities.create(eDepBuffer.currentValue(), readoutTime(), cellID, hitType));
             }
             eDepBuffer.step();
         }

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/CTPEcalClusterer.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/CTPEcalClusterer.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/CTPEcalClusterer.java	Wed Dec 17 02:18:31 2014
@@ -12,12 +12,13 @@
 
 import org.lcsim.event.CalorimeterHit;
 import org.lcsim.event.EventHeader;
+import org.lcsim.event.base.BaseCalorimeterHit;
 import org.lcsim.geometry.Detector;
 import org.lcsim.geometry.IDDecoder;
+import org.lcsim.geometry.subdetector.HPSEcal3;
 import org.lcsim.geometry.subdetector.HPSEcal3.NeighborMap;
-import org.lcsim.geometry.subdetector.HPSEcal3;
+import org.lcsim.lcio.LCIOConstants;
 import org.lcsim.util.Driver;
-import org.lcsim.lcio.LCIOConstants;
 
 /**
  * Creates clusters from CalorimeterHits in the HPSEcal detector.
@@ -351,9 +352,8 @@
                 }
                 
                 // Generate a new cluster seed hit from the above results.
-                HPSCalorimeterHit seedHit = new HPSCalorimeterHit(0.0, clusterTime, possibleCluster, hits.get(0).getType());               
-                seedHit.setMetaData(hits.get(0).getMetaData());
-                
+                CalorimeterHit seedHit = (BaseCalorimeterHit)CalorimeterHitUtilities.create(0.0, clusterTime, possibleCluster, hits.get(0).getMetaData());
+                                
                 // Generate a new cluster from the seed hit.
                 HPSEcalCluster cluster = new HPSEcalCluster();
                 cluster.setSeedHit(seedHit);

Added: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/CalorimeterHitUtilities.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/CalorimeterHitUtilities.java	(added)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/CalorimeterHitUtilities.java	Wed Dec 17 02:18:31 2014
@@ -0,0 +1,34 @@
+package org.hps.recon.ecal;
+
+import org.lcsim.event.CalorimeterHit;
+import org.lcsim.event.base.BaseCalorimeterHit;
+import org.lcsim.event.EventHeader.LCMetaData;
+
+/**
+ * This is a simple set of utility methods for creating CalorimeterHit objects. 
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
+public final class CalorimeterHitUtilities {
+
+    /**
+     * This class is purely static.
+     */
+    private CalorimeterHitUtilities() {        
+    }
+    
+    public static final CalorimeterHit create(double energy, double time, long id, int type) {
+        return create(energy, time, id, type, null);
+    }
+    
+    public static final CalorimeterHit create(double energy, double time, long id) {
+        return create(energy, time, id, 0, null);
+    }    
+    
+    public static final CalorimeterHit create(double energy, double time, long id, LCMetaData meta) {
+        return create(energy, time, id, 0, meta);
+    }    
+    
+    public static final CalorimeterHit create(double energy, double time, long id, int type, LCMetaData metaData) {
+        return new BaseCalorimeterHit(energy, energy, 0, time, id, null, type, metaData);
+    }    
+}

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalClusterICBasic.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalClusterICBasic.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalClusterICBasic.java	Wed Dec 17 02:18:31 2014
@@ -151,7 +151,7 @@
         }
         
         //sort the list, highest energy first
-        Collections.sort(sortedHitList, Collections.reverseOrder(new EnergyComparator()));
+        Collections.sort(sortedHitList, Collections.reverseOrder(new CalorimeterHit.CorrectedEnergyComparator()));
 
         //map from seed hit to cluster
         Map<CalorimeterHit, HPSEcalCluster> seedToCluster = new HashMap<CalorimeterHit, HPSEcalCluster>();

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalConverterDriver.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalConverterDriver.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalConverterDriver.java	Wed Dec 17 02:18:31 2014
@@ -6,9 +6,10 @@
 import org.lcsim.event.CalorimeterHit;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawCalorimeterHit;
+import org.lcsim.event.base.BaseCalorimeterHit;
 import org.lcsim.geometry.Detector;
+import org.lcsim.lcio.LCIOConstants;
 import org.lcsim.util.Driver;
-import org.lcsim.lcio.LCIOConstants;
 
 /**
  *
@@ -86,8 +87,8 @@
     }
 
     private CalorimeterHit HitDtoA(RawCalorimeterHit hit) {
-    	HPSCalorimeterHit h = new HPSCalorimeterHit(DtoA(hit.getAmplitude(), hit.getCellID()), period * hit.getTimeStamp() + dt, hit.getCellID(), 0);
-    	return h;
+    	double energy = DtoA(hit.getAmplitude(), hit.getCellID());
+    	return CalorimeterHitUtilities.create(energy, period * hit.getTimeStamp() + dt, hit.getCellID());
     }
 
 //    private RawCalorimeterHit HitAtoD(CalorimeterHit hit) {

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalEdepToTriggerConverterDriver.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalEdepToTriggerConverterDriver.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalEdepToTriggerConverterDriver.java	Wed Dec 17 02:18:31 2014
@@ -3,18 +3,17 @@
 import java.util.ArrayList;
 import java.util.List;
 
-
-//import org.hps.conditions.deprecated.EcalConditions;
-
-import org.hps.conditions.database.TableConstants;
 import org.hps.conditions.ecal.EcalChannelConstants;
 import org.hps.conditions.ecal.EcalConditions;
+import org.hps.util.RandomGaussian;
 import org.lcsim.conditions.ConditionsManager;
-import org.hps.util.RandomGaussian;
 import org.lcsim.event.CalorimeterHit;
 import org.lcsim.event.EventHeader;
+import org.lcsim.event.base.BaseCalorimeterHit;
 import org.lcsim.geometry.Detector;
 import org.lcsim.util.Driver;
+//import org.hps.conditions.deprecated.EcalConditions;
+import org.hps.conditions.database.TableConstants;
 
 
 /**
@@ -160,9 +159,8 @@
 //        System.out.format("trigger: %f %f\n", amplitude, triggerIntegral);
 
         int truncatedIntegral = (int) Math.floor(triggerIntegral / truncateScale);
-        if (truncatedIntegral > 0) {
-        	HPSCalorimeterHit h = new HPSCalorimeterHit(truncatedIntegral, hit.getTime(), hit.getCellID(), 0);
-            return h ;
+        if (truncatedIntegral > 0) {        	
+        	return CalorimeterHitUtilities.create(truncatedIntegral, hit.getTime(), hit.getCellID());
         }
         return null;
     }
@@ -201,8 +199,7 @@
 //        System.out.format("dumb: %f, full: %f\n",hit.getRawEnergy() * 1000.0,readoutIntegral * HPSEcalConditions.physicalToGain(id));
 
 //        System.out.format("readout: %f %f\n", amplitude, integral);
-        HPSCalorimeterHit h = new HPSCalorimeterHit(integral, hit.getTime(), hit.getCellID(), 0);
-        return h;
+        return CalorimeterHitUtilities.create(integral, hit.getTime(), hit.getCellID());
     }
 
     private double hitAmplitude(CalorimeterHit hit) {

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverter.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverter.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverter.java	Wed Dec 17 02:18:31 2014
@@ -3,12 +3,12 @@
 import org.hps.conditions.database.TableConstants;
 import org.hps.conditions.ecal.EcalChannelConstants;
 import org.hps.conditions.ecal.EcalConditions;
-import org.hps.recon.ecal.HitExtraData.Mode7Data;
 import org.lcsim.conditions.ConditionsManager;
 import org.lcsim.event.CalorimeterHit;
 import org.lcsim.event.GenericObject;
 import org.lcsim.event.RawCalorimeterHit;
 import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.base.BaseCalorimeterHit;
 import org.lcsim.event.base.BaseRawCalorimeterHit;
 import org.lcsim.geometry.Detector;
 
@@ -57,8 +57,7 @@
         double time = hit.getTime();
         long id = hit.getCellID();
         double rawEnergy = adcToEnergy(sumADC(hit), id);
-        HPSCalorimeterHit h1 = new HPSCalorimeterHit(rawEnergy, time, id, 0);
-        return h1;
+        return CalorimeterHitUtilities.create(rawEnergy, time, id);
     }
 
     public CalorimeterHit HitDtoA(RawCalorimeterHit hit, int window, double timeOffset) {
@@ -71,8 +70,8 @@
         EcalChannelConstants channelData = findChannel(id);
         double adcSum = hit.getAmplitude() - window * channelData.getCalibration().getPedestal();
         double rawEnergy = adcToEnergy(adcSum, id);
-        HPSCalorimeterHit h2 = new HPSCalorimeterHit(rawEnergy, time + timeOffset, id, 0);
-        return h2;
+        return CalorimeterHitUtilities.create(rawEnergy, time + timeOffset, id);
+        //return h2;
     }
 
     public CalorimeterHit HitDtoA(RawCalorimeterHit hit, GenericObject mode7Data, int window, double timeOffset) {
@@ -83,9 +82,10 @@
         double adcSum = hit.getAmplitude() - window * channelData.getCalibration().getPedestal();
 //        double adcSum = hit.getAmplitude() - window * Mode7Data.getAmplLow(mode7Data);                              //A.C. is this the proper way to pedestal subtract in mode 7?
 
-        double rawEnergy = adcToEnergy(adcSum, id);
-        HPSCalorimeterHit h2 = new HPSCalorimeterHit(rawEnergy, time + timeOffset, id, 0);
-        return h2;
+        double rawEnergy = adcToEnergy(adcSum, id);        
+        return CalorimeterHitUtilities.create(rawEnergy, time + timeOffset, id);
+                       
+        //return h2;
     }
 
     public RawCalorimeterHit HitAtoD(CalorimeterHit hit, int window) {
@@ -145,5 +145,5 @@
      */
     public EcalChannelConstants findChannel(long cellID) {
         return ecalConditions.getChannelConstants(ecalConditions.getChannelCollection().findGeometric(cellID));
-    }
+    }    
 }

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalReadoutToTriggerConverterDriver.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalReadoutToTriggerConverterDriver.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalReadoutToTriggerConverterDriver.java	Wed Dec 17 02:18:31 2014
@@ -185,10 +185,7 @@
         if (truncatedIntegral <= 0) {
             truncatedIntegral = 0;
         }
-        HPSCalorimeterHit h = new HPSCalorimeterHit(truncatedIntegral, hitTime, id, 0);
-//        CalorimeterHit h = new HPSRawCalorimeterHit(triggerIntegral + 0.0000001, hit.getPosition(), hitTime, id, 0);
-        //+0.0000001 is a horrible hack to ensure rawEnergy!=BaseCalorimeterHit.UNSET_CORRECTED_ENERGY
-        return h;
+        return CalorimeterHitUtilities.create(truncatedIntegral, hitTime, id);
     }
 
     private double pulseAmplitude(double time) {

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalTriggerFilterDriver.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalTriggerFilterDriver.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalTriggerFilterDriver.java	Wed Dec 17 02:18:31 2014
@@ -90,7 +90,6 @@
             for (CalorimeterHit hit : hits) {
                 CalorimeterHit newHit = filterHit(hit);
                 if (newHit != null) {
-                    newHit.setMetaData(hit.getMetaData());
                     if (newHit.getIdentifierFieldValue("iy") > 0) {
                         topHits.add(newHit);
                     } else {
@@ -136,9 +135,8 @@
         // Creating the new channel from cell id, ix and iy, then reading its ID       
         long newID = geomId.encode();
 
-        //make new hit; set position to null so it gets recalculated
-        HPSCalorimeterHit h = new HPSCalorimeterHit(hit.getRawEnergy(), hit.getTime() + delay * 4, newID, hit.getType());
-        return h;
+        //make new hit; set position to null so it gets recalculated                       
+        return CalorimeterHitUtilities.create(hit.getRawEnergy(), hit.getTime() + delay * 4, newID, hit.getType(), hit.getMetaData());
     }
 
     /**

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/HPSEcalCluster.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/HPSEcalCluster.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/HPSEcalCluster.java	Wed Dec 17 02:18:31 2014
@@ -63,9 +63,7 @@
             if (hit == null) {
                 throw new RuntimeException("HPSEcalCluster has no hits");
             }
-            seedHit = new HPSCalorimeterHit(0.0, 0.0, cellID, hit.getType());
-//            seedHit.setDetector(detector);
-            seedHit.setMetaData(hit.getMetaData());
+            seedHit = CalorimeterHitUtilities.create(0.0, 0.0, cellID, hit.getType(), hit.getMetaData());
         }
         return seedHit;
     }

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClasInnerCalClusterDriver.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClasInnerCalClusterDriver.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClasInnerCalClusterDriver.java	Wed Dec 17 02:18:31 2014
@@ -87,7 +87,7 @@
             }
             int flag = 1 << LCIOConstants.CLBIT_HITS;
             this.getLogger().finer("writing rejected hit list " + rejectedHitCollectionName + " with " + rejectedHitList.size() + " hits");
-            event.put(rejectedHitCollectionName, rejectedHitList, CalorimeterHit.class, flag);
+            event.put(rejectedHitCollectionName, rejectedHitList, CalorimeterHit.class, flag, ecal.getReadout().getName());
             // Flag the collection as a subset, because other collection's objects are being used.
             event.getMetaData(rejectedHitList).setSubset(true);
             // Are we writing this collection to the output LCIO file?

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClusterDriver.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClusterDriver.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClusterDriver.java	Wed Dec 17 02:18:31 2014
@@ -3,6 +3,7 @@
 import java.util.List;
 import java.util.logging.Logger;
 
+import org.lcsim.detector.identifier.IIdentifierHelper;
 import org.lcsim.event.CalorimeterHit;
 import org.lcsim.event.Cluster;
 import org.lcsim.event.EventHeader;
@@ -27,8 +28,9 @@
  */
 public class ClusterDriver extends Driver {
     
-    protected String ecalName = "Ecal";
+    protected String ecalName = "Ecal";    
     protected HPSEcal3 ecal;
+    protected IIdentifierHelper helper;
     protected String outputClusterCollectionName = "EcalClusters";
     protected String inputHitCollectionName = "EcalCalHits";
     protected Clusterer clusterer;
@@ -159,6 +161,7 @@
             throw new RuntimeException("Ther subdetector " + ecalName + " does not have the right type.");
         }
         ecal = (HPSEcal3) subdetector;
+        helper = ecal.getDetectorElement().getIdentifierHelper();
     }
     
     /**

Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/example/EcalMonitoringTestDriver.java
 =============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/example/EcalMonitoringTestDriver.java	(original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/example/EcalMonitoringTestDriver.java	Wed Dec 17 02:18:31 2014
@@ -34,7 +34,7 @@
     public void process(EventHeader event) {               
         if (event.hasCollection(RawTrackerHit.class, "EcalReadoutHits")) {
             List<RawTrackerHit> hits = event.get(RawTrackerHit.class, "EcalReadoutHits");
-            System.out.println("EcalReadoutHits has " + hits.size() + " hits");
+            //System.out.println("EcalReadoutHits has " + hits.size() + " hits");
             nHitsH1D.fill(hits.size());
             for (RawTrackerHit hit : hits) {
                 for (short adcValue : hit.getADCValues()) {

Modified: java/trunk/recon/src/test/java/org/hps/recon/particle/HpsReconParticleDriverTest.java
 =============================================================================
--- java/trunk/recon/src/test/java/org/hps/recon/particle/HpsReconParticleDriverTest.java	(original)
+++ java/trunk/recon/src/test/java/org/hps/recon/particle/HpsReconParticleDriverTest.java	Wed Dec 17 02:18:31 2014
@@ -71,11 +71,11 @@
    		// above.  Since the properties of a cluster cannot be modified 
    		// directly via setter methods, first create a CalorimeterHit and
    		// then use that to create a cluster.
-   		Hep3Vector topHitPosition = new BasicHep3Vector(190.27, 69.729, 1422.8);
-   		BaseCalorimeterHit topHit 
-   			= new BaseCalorimeterHit(.4600, .4600, 0, 0, 0, topHitPosition, 0);
+   		//Hep3Vector topHitPosition = new BasicHep3Vector(190.27, 69.729, 1422.8);
+   		//BaseCalorimeterHit topHit 
+   		//	= new BaseCalorimeterHit(.4600, .4600, 0, 0, 0, topHitPosition, 0);
    		
-   		System.out.println("\n[ Calorimeter Hit ] Top: \n" + topHit.toString());
+   		//System.out.println("\n[ Calorimeter Hit ] Top: \n" + topHit.toString());
    		
    		Cluster topCluster = new BaseCluster();
    		//((BaseCluster) topCluster).addHit(topHit);
@@ -86,11 +86,11 @@
    											   + topCluster.getPosition()[1] + ", " 
    											   + topCluster.getPosition()[2] + " ]");
    		
-   		Hep3Vector bottomHitPosition = new BasicHep3Vector(-148.46, -39.27, 1430.5);
-   		BaseCalorimeterHit bottomHit 
-   			= new BaseCalorimeterHit(1.1420, 1.1420, 0, 0, 0, bottomHitPosition, 0);
+   		//Hep3Vector bottomHitPosition = new BasicHep3Vector(-148.46, -39.27, 1430.5);
+   		//BaseCalorimeterHit bottomHit 
+   		//	= new BaseCalorimeterHit(1.1420, 1.1420, 0, 0, 0, bottomHitPosition, 0);
 
-   		System.out.println("\n[ Calorimeter Hit ] Bottom:\n " + bottomHit.toString());
+   		//System.out.println("\n[ Calorimeter Hit ] Bottom:\n " + bottomHit.toString());
    		
    		Cluster bottomCluster = new BaseCluster();
    		//((BaseCluster) bottomCluster).addHit(bottomHit);

Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/SVTBadChannelFilterDriver.java
 =============================================================================
--- java/trunk/tracking/src/main/java/org/hps/recon/tracking/SVTBadChannelFilterDriver.java	(original)
+++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/SVTBadChannelFilterDriver.java	Wed Dec 17 02:18:31 2014
@@ -40,7 +40,7 @@
             while (hitsIterator.hasNext()) {
                 
             	RawTrackerHit hit = hitsIterator.next();
-                hit.setMetaData(meta);
+                //hit.setMetaData(meta);
                 int strip = hit.getIdentifierFieldValue("strip");
                 HpsSiSensor sensor = (HpsSiSensor) hit.getDetectorElement();
 

Modified: java/trunk/users/src/main/java/org/hps/users/holly/HPSEcalClusterIC.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/holly/HPSEcalClusterIC.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/holly/HPSEcalClusterIC.java	Wed Dec 17 02:18:31 2014
@@ -7,8 +7,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.hps.recon.ecal.CalorimeterHitUtilities;
 import org.hps.recon.ecal.ECalUtils;
-import org.hps.recon.ecal.HPSCalorimeterHit;
 import org.lcsim.detector.IGeometryInfo;
 import org.lcsim.detector.solids.Trd;
 import org.lcsim.event.CalorimeterHit;
@@ -49,8 +49,7 @@
             if (hit == null) {
                 throw new RuntimeException("HPSEcalCluster has no hits");
             }
-            seedHit = new HPSCalorimeterHit(0.0, 0.0, cellID, hit.getType());
-            seedHit.setMetaData(hit.getMetaData());
+            seedHit = CalorimeterHitUtilities.create(0.0, 0.0, cellID, hit.getType(), hit.getMetaData());           
         }
         return seedHit;
     }

Modified: java/trunk/users/src/main/java/org/hps/users/mgraham/HPSTrackerHit.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/mgraham/HPSTrackerHit.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/mgraham/HPSTrackerHit.java	Wed Dec 17 02:18:31 2014
@@ -20,7 +20,7 @@
     		int time,
     		short[] adcValues, double t0, double Amp) {
     	this.cellId = id;
-    	this.compactId = new Identifier(id);
+    	this.packedID = new Identifier(id);
     	this.time = time;
     	this.adcValues = adcValues;
         this.t0=t0;
@@ -30,7 +30,7 @@
       public HPSTrackerHit(
     		RawTrackerHit rth, double t0, double Amp) {
     	this.cellId = rth.getCellID();
-    	this.compactId = new Identifier(rth.getCellID());
+    	this.packedID = new Identifier(rth.getCellID());
     	this.time = rth.getTime();
     	this.adcValues = rth.getADCValues();
         this.t0=t0;

Modified: java/trunk/util/src/main/java/org/hps/util/MergeBunches.java
 =============================================================================
--- java/trunk/util/src/main/java/org/hps/util/MergeBunches.java	(original)
+++ java/trunk/util/src/main/java/org/hps/util/MergeBunches.java	Wed Dec 17 02:18:31 2014
@@ -332,8 +332,7 @@
                     }
                     // need to set time to 0 so it is recalculated from the timeList
                     SimCalorimeterHit mergedHit = new BaseSimCalorimeterHit(oldHit.getCellID(),
-                            rawEnergy, 0., mcpList, eneList, timeList, pdgList);
-                    mergedHit.setMetaData(collection);
+                            rawEnergy, 0., mcpList, eneList, timeList, pdgList, collection);
                     // replace old hit with merged hit
                     signalCaloHits.remove(oldHit);
                     signalCaloHits.add(mergedHit);
@@ -393,9 +392,7 @@
                 pdgs[i] = hit.getPDG(i);
         }
 
-        BaseSimCalorimeterHit copyHit = new BaseSimCalorimeterHit(id, rawEnergy, time, mcparts, energies, times, pdgs);
-
-        copyHit.setMetaData(meta);
+        BaseSimCalorimeterHit copyHit = new BaseSimCalorimeterHit(id, rawEnergy, time, mcparts, energies, times, pdgs, meta);
 
         return copyHit;
     }