Commit in lcsim/src/org/lcsim/contrib/uiowa on MAIN
FlushReconstructedParticlesDriver.java+11-11.2 -> 1.3
MJC: (contrib) Improve flushing of ReconstructedParticle objects

lcsim/src/org/lcsim/contrib/uiowa
FlushReconstructedParticlesDriver.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- FlushReconstructedParticlesDriver.java	16 Jan 2008 19:30:01 -0000	1.2
+++ FlushReconstructedParticlesDriver.java	8 Mar 2008 20:49:23 -0000	1.3
@@ -37,6 +37,13 @@
     }
 
     public void process(EventHeader event) {
+	// Grab raw hitmaps
+	Map<Long, CalorimeterHit> hitMap = new HashMap<Long, CalorimeterHit>();
+	for (CalorimeterHit hit : event.get(CalorimeterHit.class, "EcalBarrHits")) { hitMap.put(hit.getCellID(), hit); }
+	for (CalorimeterHit hit : event.get(CalorimeterHit.class, "HcalBarrHits")) { hitMap.put(hit.getCellID(), hit); }
+	for (CalorimeterHit hit : event.get(CalorimeterHit.class, "EcalEndcapHits")) { hitMap.put(hit.getCellID(), hit); }
+	for (CalorimeterHit hit : event.get(CalorimeterHit.class, "HcalEndcapHits")) { hitMap.put(hit.getCellID(), hit); }
+
 	List<ReconstructedParticle> inputList = event.get(ReconstructedParticle.class, m_inputParticleListName);
 	Vector<ReconstructedParticle> outputList = new Vector<ReconstructedParticle>();
 	Vector<Cluster> outputClusterList = new Vector<Cluster>();
@@ -55,7 +62,10 @@
 	    // Create the output cluster and particle
 	    BasicCluster outputCluster = new BasicCluster();
 	    for (CalorimeterHit hit : hits) {
-		outputCluster.addHit(hit);
+		long id = hit.getCellID();
+		CalorimeterHit safeHit = hitMap.get(id);
+		outputCluster.addHit(safeHit);
+		//outputCluster.addHit(hit);
 	    }
 	    BaseReconstructedParticle outputPart = new BaseReconstructedParticle();
 	    if (outputCluster.getCalorimeterHits().size() > 0) {
CVSspam 0.2.8