Commit in hps-java/src/main/java/org/lcsim/hps/users/omoreno on MAIN
SvtTrackingPerformance.java+95added 1.1
Work in progress ...

hps-java/src/main/java/org/lcsim/hps/users/omoreno
SvtTrackingPerformance.java added at 1.1
diff -N SvtTrackingPerformance.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SvtTrackingPerformance.java	12 Jun 2012 03:03:00 -0000	1.1
@@ -0,0 +1,95 @@
+package org.lcsim.hps.users.omoreno;
+
+//--- java ---//
+import java.util.ArrayList;
+import java.util.List;
+
+//--- org.lcsim ---//
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.Track;
+import org.lcsim.fit.helicaltrack.HelicalTrackHit;
+import org.lcsim.geometry.Detector;
+import org.lcsim.recon.tracking.seedtracker.SeedTrack;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+//--- hps-java ---//
+import org.lcsim.hps.monitoring.Resettable;
+
+/**
+ * 
+ * @author Omar Moreno <[log in to unmask]>
+ * @version $Id: SvtTrackingPerformance.java,v 1.1 2012/06/12 03:03:00 omoreno Exp $
+ */
+public class SvtTrackingPerformance extends Driver implements Resettable {
+
+	boolean debug;
+	int[] topLayer = new int[5];
+	int[] bottomLayer = new int[5];
+	
+	// Collection names
+	String stereoHitCollectionName = "RotatedHelicalTrackHits";
+	
+	public void reset() {
+		// TODO Auto-generated method stub
+	}
+
+	
+		protected void detectorChanged(Detector detector){
+			
+		}
+		
+		public void process(EventHeader event){
+			
+			// Check if the event has stereo hits
+			if(!event.hasCollection(HelicalTrackHit.class, stereoHitCollectionName)){
+				System.out.println(
+						this.getClass().getSimpleName() + " Stereo Hit Collection: " 
+						+ stereoHitCollectionName + " was not found! Skipping event ..." );
+			}
+			
+			// Get the list of HelicalTrackHits
+			List<HelicalTrackHit> stereoHits = new ArrayList<HelicalTrackHit>();
+			
+			for(HelicalTrackHit stereoHit : stereoHits){
+				
+				// Loop over all stereo hits and arrange them by layer and by detector
+				// volume
+				int layer = this.getLayerNumber(stereoHit);
+				
+				// 
+				if(stereoHit.y() > 0) topLayer[layer - 1]++;
+				else if(stereoHit.y() < 0) bottomLayer[layer - 1]++;
+				else throw new RuntimeException("Invalid hit position - y = " + stereoHit.y());
+			}
+			
+			// Check if there are four consecutive layers hit on either volume
+			
+			
+		}
+		
+		private int getLayerNumber(HelicalTrackHit stereoHit){
+			
+			if(debug) 
+				System.out.println(this.getClass().getSimpleName() + " : Stereo Hit z position = " + stereoHit.z());
+			
+			// Get the position along z
+			int z = Math.round((float) stereoHit.z());
+		
+			switch(z){
+				case 100: return 1;
+				case 200: return 2;
+				case 300: return 3;
+				case 500: return 4;
+				case 700: return 5;
+				default: throw new RuntimeException("Invalid value of z: " + z);
+			}
+		}
+		
+		private boolean consecutiveHits(int[] layer){
+			for(int index = 0; index < 2; index++){
+				if(layer[index] > 0 && layer[index + 1] > 0 && layer[index + 2] > 0 && layer[index +4] > 0) return true;
+			}
+			return false;
+		}
+}
CVSspam 0.2.12


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