Print

Print


Commit in lcsim/src/org/lcsim/util on MAIN
OverlayDriver.java+5-221.3 -> 1.4
Fixed broken link between mcparticle and sim hits

lcsim/src/org/lcsim/util
OverlayDriver.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- OverlayDriver.java	28 Feb 2011 23:49:24 -0000	1.3
+++ OverlayDriver.java	12 Mar 2011 12:13:18 -0000	1.4
@@ -1,7 +1,5 @@
 package org.lcsim.util;
 
-import hep.physics.particle.properties.ParticlePropertyManager;
-import hep.physics.particle.properties.ParticleType;
 import hep.physics.vec.SpacePoint;
 
 import java.io.File;
@@ -23,13 +21,13 @@
 import org.lcsim.event.SimCalorimeterHit;
 import org.lcsim.event.SimTrackerHit;
 import org.lcsim.event.EventHeader.LCMetaData;
-import org.lcsim.event.base.BaseMCParticle;
 import org.lcsim.event.base.BaseSimCalorimeterHit;
 import org.lcsim.event.base.BaseSimTrackerHit;
 import org.lcsim.geometry.Detector;
 import org.lcsim.util.Driver;
 import org.lcsim.util.lcio.LCIOConstants;
 import org.lcsim.util.lcio.LCIOUtil;
+import org.lcsim.util.lcio.SIOMCParticle;
 import org.lcsim.util.loop.LCIOEventSource;
 
 /**
@@ -388,25 +386,10 @@
 		List movedCollection;
 		if (collectionType.isAssignableFrom(MCParticle.class)) {
 			// MCParticles
-			movedCollection = new ArrayList<MCParticle>();
-			
-			// need a mep to store relations between old and new mc particles to resolve parent daughter relations
-			Map<MCParticle,BaseMCParticle> oldToNewMcMap = new HashMap<MCParticle, BaseMCParticle>();
-			
-			for (MCParticle mcP : event.get(MCParticle.class, collectionName)) {
-				ParticleType mcpType = ParticlePropertyManager.getParticlePropertyProvider().get(mcP.getPDGID());
-				BaseMCParticle movedMcP = new BaseMCParticle(mcP.getOrigin(), mcP.asFourVector(),
-						mcpType, mcP.getGeneratorStatus(), mcP.getProductionTime() + time);
-				movedMcP.setSimulatorStatus(mcP.getSimulatorStatus());
-				movedMcP.setMass(mcP.getMass());
-				movedMcP.setEndPoint(mcP.getEndPoint());
-				oldToNewMcMap.put(mcP, movedMcP);
-				movedCollection.add(movedMcP);
-			}
-			for (MCParticle oldMc : oldToNewMcMap.keySet()) {
-				for (MCParticle daughter : oldMc.getDaughters()) {
-					oldToNewMcMap.get(oldMc).addDaughter(oldToNewMcMap.get(daughter));
-				}
+			// don't create new list, just move existing particles
+			movedCollection = event.get(MCParticle.class, collectionName);
+			for (MCParticle mcP : (List<MCParticle>)movedCollection) {
+				((SIOMCParticle) mcP).setTime(mcP.getProductionTime()+time);
 			}
 		} else if (collectionType.isAssignableFrom(SimTrackerHit.class)) {
 			// SimTrackerHits
CVSspam 0.2.8