Author: [log in to unmask] Date: Mon Jan 12 16:55:21 2015 New Revision: 3492 Log: Add data structure for mapping sensors to lists of hits. Added: projects/lcsim/trunk/tracking/src/main/java/org/lcsim/recon/tracking/digitization/sisim/SensorHitMap.java Added: projects/lcsim/trunk/tracking/src/main/java/org/lcsim/recon/tracking/digitization/sisim/SensorHitMap.java ============================================================================= --- projects/lcsim/trunk/tracking/src/main/java/org/lcsim/recon/tracking/digitization/sisim/SensorHitMap.java (added) +++ projects/lcsim/trunk/tracking/src/main/java/org/lcsim/recon/tracking/digitization/sisim/SensorHitMap.java Mon Jan 12 16:55:21 2015 @@ -0,0 +1,36 @@ +package org.lcsim.recon.tracking.digitization.sisim; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import org.lcsim.detector.IDetectorElement; +import org.lcsim.event.SimTrackerHit; + +/** + * Map of sensors to list of hits. + * @author Jeremy McCormick <[log in to unmask]> + */ +public class SensorHitMap extends HashMap<IDetectorElement, List<SimTrackerHit>> { + + static SensorHitMap create(List<SimTrackerHit> hits) { + SensorHitMap hitMap = new SensorHitMap(); + for (SimTrackerHit hit : hits) { + hitMap.getHits(hit.getDetectorElement()).add(hit); + } + return hitMap; + } + + void addHits(List<SimTrackerHit> hits) { + for (SimTrackerHit hit : hits) { + getHits(hit.getDetectorElement()).add(hit); + } + } + + List<SimTrackerHit> getHits(IDetectorElement sensor) { + if (get(sensor) == null) { + put(sensor, new ArrayList<SimTrackerHit>()); + } + return get(sensor); + } +} ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the LCDET-SVN list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCDET-SVN&A=1