1 package org.lcsim.recon.util;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.lcsim.event.EventHeader;
7 import org.lcsim.event.Track;
8 import org.lcsim.event.TrackerHit;
9 import org.lcsim.util.Driver;
10
11
12
13
14
15
16
17
18
19 public class RemoveUnusedTrackerHits extends Driver {
20
21 protected String trackHitCollection;
22 protected String trackCollection;
23 protected boolean clearRawTrackerHits;
24
25 public RemoveUnusedTrackerHits() {
26 trackHitCollection = "HelicalTrackHits";
27 trackCollection = "Tracks";
28 clearRawTrackerHits = true;
29 }
30
31 public void setTrackCollection(String trackCollection) {
32 this.trackCollection = trackCollection;
33 }
34
35 public void setTrackHitCollection(String trackHitCollection) {
36 this.trackHitCollection = trackHitCollection;
37 }
38
39 public void setClearRawTrackerHits(boolean clearRawTrackerHits) {
40 this.clearRawTrackerHits = clearRawTrackerHits;
41 }
42
43 @Override
44 protected void process(EventHeader event) {
45 List<TrackerHit> trackerHits = event.get(TrackerHit.class, trackHitCollection);
46 List<Track> tracks = event.get(Track.class, trackCollection);
47 List<TrackerHit> unusedTrackerHits = new ArrayList<TrackerHit>();
48 unusedTrackerHits.addAll(trackerHits);
49
50 for (Track track : tracks) {
51 unusedTrackerHits.removeAll(track.getTrackerHits());
52 }
53
54 trackerHits.removeAll(unusedTrackerHits);
55
56 if (clearRawTrackerHits) {
57 for (TrackerHit hit : trackerHits) {
58 hit.getRawHits().clear();
59 }
60 }
61 }
62
63 }