View Javadoc

1   package org.lcsim.recon.tracking.digitization.sisim;
2   
3   import java.util.ArrayList;
4   import java.util.HashMap;
5   import java.util.List;
6   
7   import org.lcsim.detector.IDetectorElement;
8   import org.lcsim.event.SimTrackerHit;
9   
10  /**
11   * Map of sensors to list of hits.
12   * @author Jeremy McCormick <jeremym@slac.stanford.edu>
13   */
14  public class SensorHitMap extends HashMap<IDetectorElement, List<SimTrackerHit>> {
15  
16      static SensorHitMap create(List<SimTrackerHit> hits) {
17          SensorHitMap hitMap = new SensorHitMap();
18          for (SimTrackerHit hit : hits) {
19              hitMap.getHits(hit.getDetectorElement()).add(hit);
20          }
21          return hitMap;
22      }
23  
24      void addHits(List<SimTrackerHit> hits) {
25          for (SimTrackerHit hit : hits) {
26              getHits(hit.getDetectorElement()).add(hit);
27          }
28      }
29      
30      List<SimTrackerHit> getHits(IDetectorElement sensor) {
31          if (get(sensor) == null) {
32              put(sensor, new ArrayList<SimTrackerHit>());
33          }
34          return get(sensor);
35      }    
36  }