Author: [log in to unmask] Date: Thu Mar 5 13:35:36 2015 New Revision: 2272 Log: Example Driver to select events. Work in progress. Added: java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripEventDriver.java Added: java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripEventDriver.java ============================================================================= --- java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripEventDriver.java (added) +++ java/trunk/analysis/src/main/java/org/hps/analysis/examples/StripEventDriver.java Thu Mar 5 13:35:36 2015 @@ -0,0 +1,64 @@ +package org.hps.analysis.examples; + +import java.util.List; +import org.lcsim.event.EventHeader; +import org.lcsim.event.Track; +import org.lcsim.util.Driver; + +/** + * + * @author Norman A Graf + * + * @version $Id: + */ +public class StripEventDriver extends Driver +{ + + private int _minNumberOfTracks = 0; + private int _minNumberOfHitsOnTrack = 0; + private int _numberOfEventsWritten = 0; + + @Override + protected void process(EventHeader event) + { + boolean skipEvent = false; + int nTracks = 0; + + if (event.hasCollection(Track.class, "MatchedTracks")) { + nTracks = event.get(Track.class, "MatchedTracks").size(); + if (nTracks >= _minNumberOfTracks) { + List<Track> tracks = event.get(Track.class, "MatchedTracks"); + for (Track t : tracks) { + int nhits = t.getTrackerHits().size(); + if (nhits < _minNumberOfHitsOnTrack) { + skipEvent = true; + } + } + } else { + skipEvent = true; + } + } + if (skipEvent) { + throw new Driver.NextEventException(); + } else { + _numberOfEventsWritten++; + } + } + + @Override + protected void endOfData() + { + System.out.println("Wrote " + _numberOfEventsWritten + " events"); + } + + public void setMinNumberOfTracks(int nTracks) + { + _minNumberOfTracks = nTracks; + } + + public void setMinNumberOfHitsOnTrack(int nHits) + { + _minNumberOfHitsOnTrack = nHits; + } + +}