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);
|