LISTSERV mailing list manager LISTSERV 16.5

Help for HPS-SVN Archives


HPS-SVN Archives

HPS-SVN Archives


HPS-SVN@LISTSERV.SLAC.STANFORD.EDU


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

HPS-SVN Home

HPS-SVN Home

HPS-SVN  March 2015

HPS-SVN March 2015

Subject:

r2242 - in /java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui: AbstractTablePanel.java AbstractTriggerTablePanel.java ClusterTablePanel.java PairTablePanel.java SinglesTablePanel.java

From:

[log in to unmask]

Reply-To:

Notification of commits to the hps svn repository <[log in to unmask]>

Date:

Wed, 4 Mar 2015 16:25:31 -0000

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (308 lines)

Author: [log in to unmask]
Date: Wed Mar  4 08:25:25 2015
New Revision: 2242

Log:
Added additional GUI components to display basic trigger statistical information. These are all extensions of AbstractTriggerTablePanel (which is itself an extension of AbstractTablePanel) and work identically to the cluster GUI table. One additional component remains and is forthcoming.

Added:
    java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/AbstractTriggerTablePanel.java
    java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/PairTablePanel.java
    java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/SinglesTablePanel.java
Modified:
    java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/AbstractTablePanel.java
    java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/ClusterTablePanel.java

Modified: java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/AbstractTablePanel.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/AbstractTablePanel.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/AbstractTablePanel.java	Wed Mar  4 08:25:25 2015
@@ -82,12 +82,14 @@
 		localTable.setRowSelectionAllowed(false);
 		localTable.setColumnSelectionAllowed(false);
 		localTable.setCellSelectionEnabled(false);
+		localTable.setShowVerticalLines(false);
 		add(localTable);
 		
 		globalTable = new JTable(globalModel);
 		globalTable.setRowSelectionAllowed(false);
 		globalTable.setColumnSelectionAllowed(false);
 		globalTable.setCellSelectionEnabled(false);
+		globalTable.setShowVerticalLines(false);
 		add(globalTable);
 		
 		// Track when the component changes size and reposition the

Added: java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/AbstractTriggerTablePanel.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/AbstractTriggerTablePanel.java	(added)
+++ java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/AbstractTriggerTablePanel.java	Wed Mar  4 08:25:25 2015
@@ -0,0 +1,175 @@
+package org.hps.users.kmccarty.triggerdiagnostics.ui;
+
+import org.hps.users.kmccarty.triggerdiagnostics.DiagSnapshot;
+import org.hps.users.kmccarty.triggerdiagnostics.event.TriggerStatModule;
+
+/**
+ * Abstract class <code>AbstractTriggerTablePanel</code> creates the
+ * basic framework to display trigger statistics. It is also able to
+ * update itself from the diagnostic snapshot given certain information,
+ * which is obtained through the implementation of its abstract methods
+ * by subclasses.
+ * 
+ * @author Kyle McCarty <[log in to unmask]>
+ */
+public abstract class AbstractTriggerTablePanel extends AbstractTablePanel {
+	// Static variables.
+	private static final long serialVersionUID = 0L;
+	
+	// Internal variables.
+	private final int numCuts;
+	
+	// Reference variables to the default table rows.
+	protected static final int ROW_RECON_COUNT        = 0;
+	protected static final int ROW_SSP_SIM_COUNT      = 1;
+	protected static final int ROW_SSP_BANK_COUNT     = 2;
+	protected static final int ROW_SSP_EFFICIENCY     = 3;
+	protected static final int ROW_TRIGGER_EFFICIENCY = 4;
+	protected static final int ROW_EMPTY_SPACE        = 5;
+	protected static final int ROW_CUT_FAILS_TITLE    = 6;
+	protected static final int ROW_FIRST_TRIGGER_CUT  = 7;
+	
+	/**
+	 * Instantiates an <code>AbstractTriggerTablePanel</code> with the
+	 * indicated cut names.
+	 * @param cutNames
+	 */
+	public AbstractTriggerTablePanel(String[] cutNames) {
+		// Instantiate the superclass.
+		super(makeTitle(cutNames));
+		
+		// Store the number of cuts.
+		numCuts = cutNames.length;
+		updatePanel(null);
+	}
+	
+	@Override
+	public void updatePanel(DiagSnapshot snapshot) {
+		// If the snapshot is null, all values should be "N/A."
+		if(snapshot == null) {
+			// Output cluster count data.
+			String scalerNullValue = "---";
+			setLocalRowValue(ROW_RECON_COUNT,     scalerNullValue);
+			setLocalRowValue(ROW_SSP_SIM_COUNT,   scalerNullValue);
+			setLocalRowValue(ROW_SSP_BANK_COUNT,  scalerNullValue);
+			setGlobalRowValue(ROW_RECON_COUNT,    scalerNullValue);
+			setGlobalRowValue(ROW_SSP_SIM_COUNT,  scalerNullValue);
+			setGlobalRowValue(ROW_SSP_BANK_COUNT, scalerNullValue);
+			
+			// Output the tracked statistical data.
+			String percentNullValue = "--- / --- (---%)";
+			setLocalRowValue(ROW_SSP_EFFICIENCY,      percentNullValue);
+			setLocalRowValue(ROW_TRIGGER_EFFICIENCY,  percentNullValue);
+			setGlobalRowValue(ROW_SSP_EFFICIENCY,     percentNullValue);
+			setGlobalRowValue(ROW_TRIGGER_EFFICIENCY, percentNullValue);
+			
+			int ROW_SECOND_TRIGGER_CUT = ROW_FIRST_TRIGGER_CUT + numCuts + 2;
+			for(int cutRow = 0; cutRow < numCuts; cutRow++) {
+				setLocalRowValue(cutRow + ROW_FIRST_TRIGGER_CUT,   percentNullValue);
+				setLocalRowValue(cutRow + ROW_SECOND_TRIGGER_CUT,  percentNullValue);
+				setGlobalRowValue(cutRow + ROW_FIRST_TRIGGER_CUT,  percentNullValue);
+				setGlobalRowValue(cutRow + ROW_SECOND_TRIGGER_CUT, percentNullValue);
+			}
+		} else {
+			// Get the local and run trigger statistics from the snapshot.
+			TriggerStatModule lstat = getLocalModule(snapshot);
+			TriggerStatModule rstat = getRunModule(snapshot);
+			
+			// Determine the most spaces needed to display the values.
+			// Get the largest number of digits in any of the values.
+			int mostDigits = ComponentUtils.max(lstat.getReconTriggerCount(), lstat.getSSPBankTriggerCount(),
+					lstat.getSSPSimTriggerCount(), rstat.getReconTriggerCount(), rstat.getSSPBankTriggerCount(),
+					rstat.getSSPSimTriggerCount());
+			
+			// Update the single-value counters.
+			String countFormat = "%" + mostDigits + "d";
+			setLocalRowValue(ROW_RECON_COUNT,     String.format(countFormat, lstat.getReconTriggerCount()));
+			setLocalRowValue(ROW_SSP_SIM_COUNT,   String.format(countFormat, lstat.getSSPSimTriggerCount()));
+			setLocalRowValue(ROW_SSP_BANK_COUNT,  String.format(countFormat, lstat.getSSPBankTriggerCount()));
+			setGlobalRowValue(ROW_RECON_COUNT,    String.format(countFormat, rstat.getReconTriggerCount()));
+			setGlobalRowValue(ROW_SSP_SIM_COUNT,  String.format(countFormat, rstat.getSSPSimTriggerCount()));
+			setGlobalRowValue(ROW_SSP_BANK_COUNT, String.format(countFormat, rstat.getSSPBankTriggerCount()));
+			
+			// Update the percentage counters.
+			String percentFormat = "%" + mostDigits + "d / %" + mostDigits + "d (%7.3f)";
+			
+			setLocalRowValue(ROW_SSP_EFFICIENCY, String.format(percentFormat, lstat.getMatchedSSPTriggers(),
+					lstat.getSSPSimTriggerCount(), (100.0 * lstat.getMatchedSSPTriggers() / lstat.getSSPSimTriggerCount())));
+			setLocalRowValue(ROW_TRIGGER_EFFICIENCY, String.format(percentFormat, lstat.getMatchedReconTriggers(),
+					lstat.getReconTriggerCount(), (100.0 * lstat.getMatchedReconTriggers() / lstat.getReconTriggerCount())));
+			setGlobalRowValue(ROW_SSP_EFFICIENCY, String.format(percentFormat, rstat.getMatchedSSPTriggers(),
+					rstat.getSSPSimTriggerCount(), (100.0 * rstat.getMatchedSSPTriggers() / rstat.getSSPSimTriggerCount())));
+			setGlobalRowValue(ROW_TRIGGER_EFFICIENCY, String.format(percentFormat, lstat.getMatchedReconTriggers(),
+					rstat.getReconTriggerCount(), (100.0 * rstat.getMatchedReconTriggers() / rstat.getReconTriggerCount())));
+			
+			int ROW_SECOND_TRIGGER_CUT = ROW_FIRST_TRIGGER_CUT + numCuts + 2;
+			int[] total = { lstat.getSSPSimTriggerCount() / 2, rstat.getSSPSimTriggerCount() / 2 };
+			for(int cutRow = 0; cutRow < numCuts; cutRow++) {
+				setLocalRowValue(cutRow + ROW_FIRST_TRIGGER_CUT, String.format(percentFormat, lstat.getCutFailures(0, cutRow),
+						total[0], (100.0 * lstat.getCutFailures(0, cutRow) / total[0])));
+				setLocalRowValue(cutRow + ROW_SECOND_TRIGGER_CUT, String.format(percentFormat, lstat.getCutFailures(1, cutRow),
+						total[0], (100.0 * lstat.getCutFailures(1, cutRow) / total[0])));
+				setGlobalRowValue(cutRow + ROW_FIRST_TRIGGER_CUT, String.format(percentFormat, lstat.getCutFailures(0, cutRow),
+						total[1], (100.0 * lstat.getCutFailures(0, cutRow) / total[1])));
+				setGlobalRowValue(cutRow + ROW_SECOND_TRIGGER_CUT, String.format(percentFormat, lstat.getCutFailures(1, cutRow),
+						total[1], (100.0 * lstat.getCutFailures(1, cutRow) / total[1])));
+			}
+		}
+	}
+	
+	/**
+	 * Gets the statistical module from which local statistics should
+	 * be drawn.
+	 * @param snapshot - The snapshot containing the modules.
+	 * @return Returns the module containing local statistical data.
+	 */
+	protected abstract TriggerStatModule getLocalModule(DiagSnapshot snapshot);
+	
+	/**
+	 * Gets the statistical module from which run statistics should
+	 * be drawn.
+	 * @param snapshot - The snapshot containing the modules.
+	 * @return Returns the module containing run statistical data.
+	 */
+	protected abstract TriggerStatModule getRunModule(DiagSnapshot snapshot);
+	
+	/**
+	 * Creates the table appropriate table rows from the argument cut
+	 * names.
+	 * @param cutNames - An array containing the names of the cuts to
+	 * display.
+	 * @return Returns an array with the default table rows merged in
+	 * with the provided cut names.
+	 */
+	private static final String[] makeTitle(String[] cutNames) {
+		// Make a new array to hold all the text.
+		String[] mergedArray = new String[cutNames.length + cutNames.length + 9];
+		
+		// Define the default trigger headers.
+		mergedArray[0] = "Recon Triggers:";
+		mergedArray[1] = "SSP Sim Triggers:";
+		mergedArray[2] = "SSP Bank Triggers:";
+		mergedArray[3] = "SSP Efficiency:";
+		mergedArray[4] = "Trigger Efficiency:";
+		mergedArray[5] = "";
+		mergedArray[6] = "First Trigger Cut Failures";
+		
+		// Insert the cut names for the first trigger.
+		for(int cutIndex = 0; cutIndex < cutNames.length; cutIndex++) {
+			mergedArray[7 + cutIndex] = cutNames[cutIndex];
+		}
+		
+		// Insert the header for the second trigger cut names.
+		int startIndex = 7 + cutNames.length;
+		mergedArray[startIndex]     = "";
+		mergedArray[startIndex + 1] = "Second Trigger Cut Failures";
+		
+		// Insert the next set of cut names.
+		for(int cutIndex = 0; cutIndex < cutNames.length; cutIndex++) {
+			mergedArray[startIndex + 2 + cutIndex] = cutNames[cutIndex];
+		}
+		
+		// Return the resultant array.
+		return mergedArray;
+	}
+}

Modified: java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/ClusterTablePanel.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/ClusterTablePanel.java	(original)
+++ java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/ClusterTablePanel.java	Wed Mar  4 08:25:25 2015
@@ -15,7 +15,7 @@
 public class ClusterTablePanel extends AbstractTablePanel {
 	// Static variables.
 	private static final long serialVersionUID = 0L;
-	private static final String[] TABLE_TITLES = { "Recon Clusters:", "SSP Clusters", "Matched Clusters",
+	private static final String[] TABLE_TITLES = { "Recon Clusters", "SSP Clusters", "Matched Clusters",
 			"Failed (Position)", "Failed (Energy)", "Failed (Hit Count)" };
 	
 	// Table model mappings.

Added: java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/PairTablePanel.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/PairTablePanel.java	(added)
+++ java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/PairTablePanel.java	Wed Mar  4 08:25:25 2015
@@ -0,0 +1,33 @@
+package org.hps.users.kmccarty.triggerdiagnostics.ui;
+
+import org.hps.users.kmccarty.triggerdiagnostics.DiagSnapshot;
+import org.hps.users.kmccarty.triggerdiagnostics.event.TriggerStatModule;
+
+/**
+ * Class <code>PairTablePanel</code> displays statistical information
+ * for trigger pair cuts.
+ * 
+ * @author Kyle McCarty
+ */
+public class PairTablePanel extends AbstractTriggerTablePanel {
+	// Static variables.
+	private static final long serialVersionUID = 0L;
+	private static final String[] CUT_NAMES = { "        Energy Sum:",
+		"        Energy Difference:", "        Energy Slope:", "        Coplanarity:" };
+	
+	/**
+	 * Instantiates a <code>PairTablePanel</code>.
+	 */
+	public PairTablePanel() { super(CUT_NAMES); }
+
+	@Override
+	protected TriggerStatModule getLocalModule(DiagSnapshot snapshot) {
+		return snapshot.pairLocalStatistics;
+	}
+
+	@Override
+	protected TriggerStatModule getRunModule(DiagSnapshot snapshot) {
+		return snapshot.pairRunStatistics;
+	}
+	
+}

Added: java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/SinglesTablePanel.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/SinglesTablePanel.java	(added)
+++ java/trunk/users/src/main/java/org/hps/users/kmccarty/triggerdiagnostics/ui/SinglesTablePanel.java	Wed Mar  4 08:25:25 2015
@@ -0,0 +1,33 @@
+package org.hps.users.kmccarty.triggerdiagnostics.ui;
+
+import org.hps.users.kmccarty.triggerdiagnostics.DiagSnapshot;
+import org.hps.users.kmccarty.triggerdiagnostics.event.TriggerStatModule;
+
+/**
+ * Class <code>SinglesTablePanel</code> displays statistical information
+ * for trigger singles cuts.
+ * 
+ * @author Kyle McCarty
+ */
+public class SinglesTablePanel extends AbstractTriggerTablePanel {
+	// Static variables.
+	private static final long serialVersionUID = 0L;
+	private static final String[] CUT_NAMES = { "        Cluster Energy (Low):",
+		"        Cluster Energy (High):", "        Hit Count:"  };
+	
+	/**
+	 * Instantiates a <code>SinglesTablePanel</code>.
+	 */
+	public SinglesTablePanel() { super(CUT_NAMES); }
+	
+	@Override
+	protected TriggerStatModule getLocalModule(DiagSnapshot snapshot) {
+		return snapshot.singlesLocalStatistics;
+	}
+	
+	@Override
+	protected TriggerStatModule getRunModule(DiagSnapshot snapshot) {
+		return snapshot.singlesRunStatistics;
+	}
+	
+}

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search Archives

Search Archives


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Archives

November 2017
August 2017
July 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013

ATOM RSS1 RSS2



LISTSERV.SLAC.STANFORD.EDU

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager

Privacy Notice, Security Notice and Terms of Use