Print

Print


Commit in lcsim/src/org/lcsim/util on MAIN
OverlayDriver.java+14-81.16 -> 1.17
Added a check to create a list of signal mc particles only if it does not exist yet.

lcsim/src/org/lcsim/util
OverlayDriver.java 1.16 -> 1.17
diff -u -r1.16 -r1.17
--- OverlayDriver.java	20 Jul 2012 18:34:44 -0000	1.16
+++ OverlayDriver.java	25 Jul 2012 05:54:54 -0000	1.17
@@ -27,7 +27,6 @@
 import org.lcsim.event.SimCalorimeterHit;
 import org.lcsim.event.SimTrackerHit;
 import org.lcsim.event.EventHeader.LCMetaData;
-import org.lcsim.event.base.BaseLCSimEvent;
 import org.lcsim.event.base.BaseMCParticle;
 import org.lcsim.event.base.BaseSimCalorimeterHit;
 import org.lcsim.event.base.BaseSimTrackerHit;
@@ -273,13 +272,20 @@
 		
 		// always keep all mc particles from signal
 		allMcParticles = event.getMCParticles();
-		List<MCParticle> signalMcParticles = new ArrayList<MCParticle>();
-		signalMcParticles.addAll(allMcParticles);
 		
-		// keep a sub collection of only signal mc particles
-		int signalFlags = event.getMetaData(event.getMCParticles()).getFlags();
-		signalFlags = LCIOUtil.bitSet(signalFlags, LCIOConstants.BITSubset, true);
-		event.put(mcSignalName, signalMcParticles, MCParticle.class, signalFlags);
+		// check if we already have a signal mcParticle collection
+		try {
+			event.get(MCParticle.class, mcSignalName);
+			// we already have one, so the some other instance of this driver has taken care of defining the signal mc particles
+		} catch (IllegalArgumentException e) {
+			List<MCParticle> signalMcParticles = new ArrayList<MCParticle>();
+			signalMcParticles.addAll(allMcParticles);
+			
+			// keep a sub collection of only signal mc particles
+			int signalFlags = event.getMetaData(event.getMCParticles()).getFlags();
+			signalFlags = LCIOUtil.bitSet(signalFlags, LCIOConstants.BITSubset, true);
+			event.put(mcSignalName, signalMcParticles, MCParticle.class, signalFlags);
+		}
 		
 		// shift the signal event in time according to its BX
 		if (randomSignal) {
@@ -352,7 +358,7 @@
 		
 		// put the overlay mc particles into the event
 		int overlayFlags = event.getMetaData(event.getMCParticles()).getFlags();
-		overlayFlags = LCIOUtil.bitSet(signalFlags, LCIOConstants.BITSubset, true);
+		overlayFlags = LCIOUtil.bitSet(overlayFlags, LCIOConstants.BITSubset, true);
 		event.put(mcOverlayName, overlayMcParticles, MCParticle.class, overlayFlags);
 		
 		// reset all lists
CVSspam 0.2.12


Use REPLY-ALL to reply to list

To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1