Commit in lcsim/src/org/lcsim/util on MAIN | |||
OverlayDriver.java | +14 | -8 | 1.16 -> 1.17 |
Added a check to create a list of signal mc particles only if it does not exist yet.
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
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