Commit in lcsim/src/org/lcsim/recon/util on MAIN | |||
RemoveUnusedTrackerHits.java | +63 | added 1.1 |
Driver to remove all tracker hits that are not associated with a track
diff -N RemoveUnusedTrackerHits.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ RemoveUnusedTrackerHits.java 26 Jul 2012 17:31:01 -0000 1.1 @@ -0,0 +1,63 @@
+package org.lcsim.recon.util; + +import java.util.ArrayList; +import java.util.List; + +import org.lcsim.event.EventHeader; +import org.lcsim.event.Track; +import org.lcsim.event.TrackerHit; +import org.lcsim.util.Driver; + +/** + * Driver to filter and remove all tracker hits from a given track collection that + * did not contribute to any track. In addition, allows to clear the RawTrackerHit + * lists to allow writing out events without those collections. + * + * @author <a href="mailto:[log in to unmask]">Christian Grefe</a> + * + */ +public class RemoveUnusedTrackerHits extends Driver { + + protected String trackHitCollection; + protected String trackCollection; + protected boolean clearRawTrackerHits; + + public RemoveUnusedTrackerHits() { + trackHitCollection = "HelicalTrackHits"; + trackCollection = EventHeader.TRACKS; + clearRawTrackerHits = true; + } + + public void setTrackCollection(String trackCollection) { + this.trackCollection = trackCollection; + } + + public void setTrackHitCollection(String trackHitCollection) { + this.trackHitCollection = trackHitCollection; + } + + public void setClearRawTrackerHits(boolean clearRawTrackerHits) { + this.clearRawTrackerHits = clearRawTrackerHits; + } + + @Override + protected void process(EventHeader event) { + List<TrackerHit> trackerHits = event.get(TrackerHit.class, trackHitCollection); + List<Track> tracks = event.get(Track.class, trackCollection); + List<TrackerHit> unusedTrackerHits = new ArrayList<TrackerHit>(); + unusedTrackerHits.addAll(trackerHits); + + for (Track track : tracks) { + unusedTrackerHits.removeAll(track.getTrackerHits()); + } + + trackerHits.removeAll(unusedTrackerHits); + + if (clearRawTrackerHits) { + for (TrackerHit hit : trackerHits) { + hit.getRawHits().clear(); + } + } + } + +}
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