Author: [log in to unmask] Date: Fri Aug 21 16:55:55 2015 New Revision: 3395 Log: Modify TrackDataDriver so it's able to process multiple <a href="http://www.lcsim.org/sites/lcsim/apidocs/org/lcsim/event/Track.html">Track</a> collections. Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackDataDriver.java Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackDataDriver.java ============================================================================= --- java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackDataDriver.java (original) +++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/TrackDataDriver.java Fri Aug 21 16:55:55 2015 @@ -35,6 +35,7 @@ String rotatedHthCollectionName = "RotatedHelicalTrackHits"; String trackResidualsRelationsColName = "TrackResidualsRelations"; + /** Default constructor */ public TrackDataDriver() { } @@ -44,13 +45,22 @@ protected void process(EventHeader event) { + // Check if the event contains a collection of the type Track. If it + // doesn't skip the event. + if (!event.hasCollection(Track.class)) return; + // If the event doesn't contain a collection of tracks, skip it. - if (!event.hasCollection(Track.class, trackCollectionName)) { - return; - } - + //if (!event.hasCollection(Track.class, trackCollectionName)) { + // return; + //} + + // Get all collections of the type Track from the event. This is + // required since the event contains a track collection for each of the + // different tracking strategies. + List<List<Track>> trackCollections = event.get(Track.class); + // Get the collection of tracks from the event - List<Track> tracks = event.get(Track.class, trackCollectionName); + //List<Track> tracks = event.get(Track.class, trackCollectionName); // Get the collection of LCRelations relating RotatedHelicalTrackHits to // HelicalTrackHits @@ -98,6 +108,9 @@ List<Integer> sensorLayers = new ArrayList<Integer>(); List<Integer> stereoLayers = new ArrayList<Integer>(); + // Loop over each of the track collections retrieved from the event + for (List<Track> tracks : trackCollections) { + // Loop over all the tracks in the event for (Track track : tracks) { @@ -187,7 +200,7 @@ trackResidualsCollection.add(trackResiduals); trackToTrackResidualsRelations.add(new BaseLCRelation(trackResiduals, track)); } - + } event.put(TrackData.TRACK_DATA_COLLECTION, trackDataCollection, TrackTimeData.class, 0); event.put(TrackData.TRACK_DATA_RELATION_COLLECTION, trackDataRelations, LCRelation.class, 0); event.put(trackResidualsCollectionName, trackResidualsCollection, TrackResidualsData.class, 0);