hps-java/src/main/java/org/lcsim/hps/recon/tracking
diff -N ReReconstructionDriver.java
--- ReReconstructionDriver.java 1 Jun 2011 17:05:31 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,100 +0,0 @@
-/*
- * TrackReconstructionDriver class
- */
-package org.lcsim.hps.recon.tracking;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.LCRelation;
-import org.lcsim.event.RawTrackerHit;
-import org.lcsim.event.RelationalTable;
-import org.lcsim.event.Track;
-import org.lcsim.event.TrackerHit;
-import org.lcsim.event.base.BaseRelationalTable;
-import org.lcsim.fit.helicaltrack.HelicalTrackHit;
-import org.lcsim.recon.tracking.seedtracker.SeedTrack;
-import org.lcsim.util.Driver;
-import org.lcsim.util.aida.AIDA;
-
-/**
- * Driver to perform hit digitization and track reconstruction for the sATLAS detector
- *
- * @author M. Graham and R. Partridge
- */
-public class ReReconstructionDriver extends Driver {
-
- private AIDA aida = AIDA.defaultInstance();
- List<Integer> passLayers = new ArrayList();
-// double pcut=5.2;
- double pcut=0.95*2.2;
- public ReReconstructionDriver() {
- }
-
-
- public void process(
- EventHeader event) {
-
- List<Track> tracklist = event.get(Track.class, "AxialTracks");
- List<HelicalTrackHit> hthits = event.get(HelicalTrackHit.class, "HelicalTrackHits");
- List<HelicalTrackHit> axhits = event.get(HelicalTrackHit.class, "AxialTrackHits");
- List<LCRelation> mcrelations = event.get(LCRelation.class, "HelicalTrackMCRelations");
- List<LCRelation> hitrelations = new ArrayList<LCRelation>();
- List<LCRelation> matchedmcrelations = new ArrayList<LCRelation>();
- List<HelicalTrackHit> matchedhits = new ArrayList<HelicalTrackHit>();
- List<RawTrackerHit> axhitsontrack = new ArrayList<RawTrackerHit>();
-
- RelationalTable hittomc = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
-
- for (LCRelation relation : mcrelations)
- if (relation != null&&relation.getFrom()!=null&&relation.getTo()!=null)
- hittomc.add(relation.getFrom(), relation.getTo());
- int totax = axhits.size();
- int totaxontrack = 0;
- int tothth = hthits.size();
- int toththontrack = 0;
- for (Track track : tracklist) {
- double trMom=track.getPX();
- SeedTrack st = (SeedTrack) track;
- List<TrackerHit> trackhits = st.getTrackerHits();
- for (TrackerHit th : trackhits) {
- HelicalTrackHit hth = (HelicalTrackHit) th;
- List<RawTrackerHit> rawhits = hth.getRawHits();
- totaxontrack += rawhits.size();
- if(trMom<pcut)axhitsontrack.addAll(rawhits);
- }
- }
- for (HelicalTrackHit hit : hthits) {
- List<RawTrackerHit> rawhits = hit.getRawHits();
- for (RawTrackerHit rh : rawhits)
- if (axhitsontrack.contains(rh) || keepHit(rh))// see if there is an overlap of raw hits in the helical track hit...
- if (!matchedhits.contains(hit)) { //only add if it's not already in the collection
- for (LCRelation relation : mcrelations) {
- if (relation.getFrom() == hit)
- matchedmcrelations.add(relation);
- if (relation.getTo() == hit)
- matchedmcrelations.add(relation);
- }
- matchedhits.add(hit);
- }
- }
-
-// System.out.println("Total axial hits = " + totax + "; total associated axial hits = " + totaxontrack);
-// System.out.println("Total HelicalTrackHits = " + tothth+ "; total associated HelicalTrackHits = " + matchedhits.size());
-
- event.put("MatchedHTHits", matchedhits, HelicalTrackHit.class, 0);
- //event.put("MatchedHTRelations", hitrelations, LCRelation.class, 0);
- event.put("MatchedHTMCRelations", matchedmcrelations, LCRelation.class, 0);
- }
-
- public void setLayersToKeep(Integer layer) {
- passLayers.add(layer);
- }
-
- private boolean keepHit(RawTrackerHit raw) {
- for (Integer keep : passLayers)
- if (raw.getLayerNumber() == keep) return true;
- return false;
- }
-}
hps-java/sandbox
diff -N ReReconstructionDriver.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ReReconstructionDriver.java 29 Apr 2012 23:05:47 -0000 1.1
@@ -0,0 +1,100 @@
+/*
+ * TrackReconstructionDriver class
+ */
+package org.lcsim.hps.recon.tracking;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.LCRelation;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.RelationalTable;
+import org.lcsim.event.Track;
+import org.lcsim.event.TrackerHit;
+import org.lcsim.event.base.BaseRelationalTable;
+import org.lcsim.fit.helicaltrack.HelicalTrackHit;
+import org.lcsim.recon.tracking.seedtracker.SeedTrack;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+/**
+ * Driver to perform hit digitization and track reconstruction for the sATLAS detector
+ *
+ * @author M. Graham and R. Partridge
+ */
+public class ReReconstructionDriver extends Driver {
+
+ private AIDA aida = AIDA.defaultInstance();
+ List<Integer> passLayers = new ArrayList();
+// double pcut=5.2;
+ double pcut=0.95*2.2;
+ public ReReconstructionDriver() {
+ }
+
+
+ public void process(
+ EventHeader event) {
+
+ List<Track> tracklist = event.get(Track.class, "AxialTracks");
+ List<HelicalTrackHit> hthits = event.get(HelicalTrackHit.class, "HelicalTrackHits");
+ List<HelicalTrackHit> axhits = event.get(HelicalTrackHit.class, "AxialTrackHits");
+ List<LCRelation> mcrelations = event.get(LCRelation.class, "HelicalTrackMCRelations");
+ List<LCRelation> hitrelations = new ArrayList<LCRelation>();
+ List<LCRelation> matchedmcrelations = new ArrayList<LCRelation>();
+ List<HelicalTrackHit> matchedhits = new ArrayList<HelicalTrackHit>();
+ List<RawTrackerHit> axhitsontrack = new ArrayList<RawTrackerHit>();
+
+ RelationalTable hittomc = new BaseRelationalTable(RelationalTable.Mode.MANY_TO_MANY, RelationalTable.Weighting.UNWEIGHTED);
+
+ for (LCRelation relation : mcrelations)
+ if (relation != null&&relation.getFrom()!=null&&relation.getTo()!=null)
+ hittomc.add(relation.getFrom(), relation.getTo());
+ int totax = axhits.size();
+ int totaxontrack = 0;
+ int tothth = hthits.size();
+ int toththontrack = 0;
+ for (Track track : tracklist) {
+ double trMom=track.getPX();
+ SeedTrack st = (SeedTrack) track;
+ List<TrackerHit> trackhits = st.getTrackerHits();
+ for (TrackerHit th : trackhits) {
+ HelicalTrackHit hth = (HelicalTrackHit) th;
+ List<RawTrackerHit> rawhits = hth.getRawHits();
+ totaxontrack += rawhits.size();
+ if(trMom<pcut)axhitsontrack.addAll(rawhits);
+ }
+ }
+ for (HelicalTrackHit hit : hthits) {
+ List<RawTrackerHit> rawhits = hit.getRawHits();
+ for (RawTrackerHit rh : rawhits)
+ if (axhitsontrack.contains(rh) || keepHit(rh))// see if there is an overlap of raw hits in the helical track hit...
+ if (!matchedhits.contains(hit)) { //only add if it's not already in the collection
+ for (LCRelation relation : mcrelations) {
+ if (relation.getFrom() == hit)
+ matchedmcrelations.add(relation);
+ if (relation.getTo() == hit)
+ matchedmcrelations.add(relation);
+ }
+ matchedhits.add(hit);
+ }
+ }
+
+// System.out.println("Total axial hits = " + totax + "; total associated axial hits = " + totaxontrack);
+// System.out.println("Total HelicalTrackHits = " + tothth+ "; total associated HelicalTrackHits = " + matchedhits.size());
+
+ event.put("MatchedHTHits", matchedhits, HelicalTrackHit.class, 0);
+ //event.put("MatchedHTRelations", hitrelations, LCRelation.class, 0);
+ event.put("MatchedHTMCRelations", matchedmcrelations, LCRelation.class, 0);
+ }
+
+ public void setLayersToKeep(Integer layer) {
+ passLayers.add(layer);
+ }
+
+ private boolean keepHit(RawTrackerHit raw) {
+ for (Integer keep : passLayers)
+ if (raw.getLayerNumber() == keep) return true;
+ return false;
+ }
+}