Print

Print


Author: [log in to unmask]
Date: Mon Mar 23 08:59:48 2015
New Revision: 2503

Log:
Fixed bug in trigger diagnostics and added time-tracking to the software, such that the diagnostic end-of-event readout includes the total run-time of the file. Note that the 'Event Triggering Type Verification' section of the end-of-event readout is under construction and not yet accurate.

Modified:
    java/trunk/analysis/src/main/java/org/hps/analysis/trigger/TriggerDiagnosticDriver.java
    java/trunk/analysis/src/main/java/org/hps/analysis/trigger/event/TriggerMatchStatus.java
    java/trunk/analysis/src/main/java/org/hps/analysis/trigger/util/PairTrigger.java

Modified: java/trunk/analysis/src/main/java/org/hps/analysis/trigger/TriggerDiagnosticDriver.java
 =============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/trigger/TriggerDiagnosticDriver.java	(original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/trigger/TriggerDiagnosticDriver.java	Mon Mar 23 08:59:48 2015
@@ -126,6 +126,10 @@
 	private static final int ENERGY_SLOPE = TriggerDiagnosticUtil.PAIR_ENERGY_SLOPE;
 	private static final int COPLANARITY  = TriggerDiagnosticUtil.PAIR_COPLANARITY;
     
+	// Track the total run time.
+	private long startTime = -1;
+	private long endTime = -1;
+	
 	// Cut names for logging.
 	private static final String[][] cutNames = {
 			{ "E_min", "E_max", "hit count", "null" },
@@ -347,39 +351,44 @@
 		System.out.println("======================================================================");
 		
 		// Print the general event failure rate.
-		System.out.println("Event Failure Rate:");
-		System.out.printf("\tNoise Events          :: %d / %d (%7.3f%%)%n",
+		int headSpaces = getPrintSpaces(totalEvents, triggerRunStats[0].getEventsOfTypeSeen(0), triggerRunStats[0].getEventsOfTypeSeen(1),
+				triggerRunStats[1].getEventsOfTypeSeen(0), triggerRunStats[1].getEventsOfTypeSeen(1));
+		System.out.println("General Event Statistics:");
+		System.out.printf("\tEvent Start Time      :: %.3f s%n", (startTime / Math.pow(10, 9)));
+		System.out.printf("\tEvent End Time        :: %.3f%n", (endTime / Math.pow(10, 9)));
+		System.out.printf("\tEvent Run Time        :: %.3f%n", ((endTime - startTime) / Math.pow(10, 9)));
+		System.out.printf("\tNoise Events          :: %" + headSpaces + "d / %" + headSpaces + "d (%7.3f%%)%n",
 				noiseEvents, totalEvents, (100.0 * noiseEvents / totalEvents));
-		System.out.printf("\tCluster Events Failed :: %d / %d (%7.3f%%)%n",
+		System.out.printf("\tCluster Events Failed :: %" + headSpaces + "d / %" + headSpaces + "d (%7.3f%%)%n",
 				failedClusterEvents, totalEvents, (100.0 * failedClusterEvents / totalEvents));
-		System.out.printf("\tSingles Events Failed :: %d / %d (%7.3f%%)%n",
+		System.out.printf("\tSingles Events Failed :: %" + headSpaces + "d / %" + headSpaces + "d (%7.3f%%)%n",
 				failedSinglesEvents, totalEvents, (100.0 * failedSinglesEvents / totalEvents));
-		System.out.printf("\tPair Events Failed    :: %d / %d (%7.3f%%)%n",
+		System.out.printf("\tPair Events Failed    :: %" + headSpaces + "d / %" + headSpaces + "d (%7.3f%%)%n",
 				failedPairEvents, totalEvents, (100.0 * failedPairEvents / totalEvents));
 		
 		// Print out how many events were triggered by a type along
 		// with how many were verified.
 		System.out.println();
-		System.out.println("Event Failure Rate:");
-		System.out.printf("\tSingles Trigger 1     :: %d / %d",
+		System.out.println("Event Triggering Type Verification:");
+		System.out.printf("\tSingles Trigger 1     :: %" + headSpaces + "d / %" + headSpaces + "d",
 				triggerRunStats[0].getEventsOfTypeSeen(0), triggerRunStats[0].getEventsOfType(0));
 		if(triggerRunStats[0].getEventsOfType(0) != 0) {
-			System.out.printf(" %d / %d (%7.3f%%)%n", (100.0 * triggerRunStats[0].getEventsOfTypeSeen(0) / triggerRunStats[0].getEventsOfTypeSeen(0)));
+			System.out.printf(" (%7.3f%%)%n", (100.0 * triggerRunStats[0].getEventsOfTypeSeen(0) / triggerRunStats[0].getEventsOfType(0)));
 		} else { System.out.println(); }
-		System.out.printf("\tSingles Trigger 2     :: %d / %d",
+		System.out.printf("\tSingles Trigger 2     :: %" + headSpaces + "d / %" + headSpaces + "d",
 				triggerRunStats[0].getEventsOfTypeSeen(1), triggerRunStats[0].getEventsOfType(1));
 		if(triggerRunStats[0].getEventsOfType(0) != 0) {
-			System.out.printf(" %d / %d (%7.3f%%)%n", (100.0 * triggerRunStats[0].getEventsOfTypeSeen(1) / triggerRunStats[0].getEventsOfTypeSeen(1)));
+			System.out.printf(" (%7.3f%%)%n", (100.0 * triggerRunStats[0].getEventsOfTypeSeen(1) / triggerRunStats[0].getEventsOfType(1)));
 		} else { System.out.println(); }
-		System.out.printf("\tPair Trigger 1        :: %d / %d",
+		System.out.printf("\tPair Trigger 1        :: %" + headSpaces + "d / %" + headSpaces + "d",
 				triggerRunStats[1].getEventsOfTypeSeen(0), triggerRunStats[0].getEventsOfType(0));
 		if(triggerRunStats[1].getEventsOfType(0) != 0) {
-			System.out.printf(" %d / %d (%7.3f%%)%n", (100.0 * triggerRunStats[1].getEventsOfTypeSeen(0) / triggerRunStats[1].getEventsOfTypeSeen(0)));
+			System.out.printf(" (%7.3f%%)%n", (100.0 * triggerRunStats[1].getEventsOfTypeSeen(0) / triggerRunStats[1].getEventsOfType(0)));
 		} else { System.out.println(); }
-		System.out.printf("\tPair Trigger 2        :: %d / %d",
+		System.out.printf("\tPair Trigger 2        :: %" + headSpaces + "d / %" + headSpaces + "d",
 				triggerRunStats[1].getEventsOfTypeSeen(1), triggerRunStats[0].getEventsOfType(1));
 		if(triggerRunStats[1].getEventsOfType(0) != 0) {
-			System.out.printf(" %d / %d (%7.3f%%)%n", (100.0 * triggerRunStats[1].getEventsOfTypeSeen(1) / triggerRunStats[1].getEventsOfTypeSeen(1)));
+			System.out.printf(" (%7.3f%%)%n", (100.0 * triggerRunStats[1].getEventsOfTypeSeen(1) / triggerRunStats[1].getEventsOfType(1)));
 		} else { System.out.println(); }
 		
 		// Print the cluster verification data.
@@ -392,7 +401,7 @@
 		System.out.printf("\tFailed (Energy)       :: %d%n", clusterRunStats.getEnergyFailures());
 		System.out.printf("\tFailed (Hit Count)    :: %d%n", clusterRunStats.getHitCountFailures());
 		if(clusterRunStats.getReconClusterCount() == 0) { System.out.printf("\tCluster Efficiency    :: N/A%n"); }
-		else { System.out.printf("\tCluster Efficiency :: %7.3f%%%n", 100.0 * clusterRunStats.getMatches() / clusterRunStats.getReconClusterCount()); }
+		else { System.out.printf("\tCluster Efficiency    :: %7.3f%%%n", 100.0 * clusterRunStats.getMatches() / clusterRunStats.getReconClusterCount()); }
 		
 		// Print the trigger verification data.
 		for(int triggerType = 0; triggerType < 2; triggerType++) {
@@ -511,6 +520,10 @@
 		pairInternalFail = false;
 		pairEfficiencyFail = false;
 		OutputLogger.clearLog();
+		
+		// Track the times.
+		if(startTime == -1) { startTime = event.getTimeStamp(); }
+		else { endTime = event.getTimeStamp(); }
 		
 		
 		

Modified: java/trunk/analysis/src/main/java/org/hps/analysis/trigger/event/TriggerMatchStatus.java
 =============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/trigger/event/TriggerMatchStatus.java	(original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/trigger/event/TriggerMatchStatus.java	Mon Mar 23 08:59:48 2015
@@ -70,7 +70,11 @@
 		// Check if a trigger of the right time was found.
 		// Get the trigger number and type.
 		if(event.sawEventType()) {
-			triggerTypesFound[eventType]++;
+			if(eventType == TriggerDiagnosticUtil.TRIGGER_SINGLES_1 || eventType == TriggerDiagnosticUtil.TRIGGER_PAIR_1) {
+				triggerTypesFound[0]++;
+			} else if(eventType == TriggerDiagnosticUtil.TRIGGER_SINGLES_2 || eventType == TriggerDiagnosticUtil.TRIGGER_PAIR_2) {
+				triggerTypesFound[1]++;
+			}
 		}
 	}
 	

Modified: java/trunk/analysis/src/main/java/org/hps/analysis/trigger/util/PairTrigger.java
 =============================================================================
--- java/trunk/analysis/src/main/java/org/hps/analysis/trigger/util/PairTrigger.java	(original)
+++ java/trunk/analysis/src/main/java/org/hps/analysis/trigger/util/PairTrigger.java	Mon Mar 23 08:59:48 2015
@@ -65,7 +65,7 @@
 	 * <code>false</code> otherwise.
 	 */
 	public boolean getStateEnergyDifference() {
-		return getCutState(PAIR_ENERGY_SUM_HIGH);
+		return getCutState(PAIR_ENERGY_DIFFERENCE_HIGH);
 	}
 	
 	/**