Print

Print


Author: omoreno
Date: Wed Oct 22 18:36:21 2014
New Revision: 1274

Log:
TestRunSvtDaqMapping and the nested class not longer extend SvtDaqMapping and instead extend AbstractConditionsObject directly.  The loading of the test run SVT DAQ map was tested with the test TestRunSvtDaqMappingTest.  A converter for TestRunSvtDaqMapping was added to the SvtConverterRegistry.  

Modified:
    java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/SvtConverterRegistry.java
    java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/TestRunSvtDaqMapping.java
    java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/test/java/org/hps/conditions/svt/TestRunSvtDaqMappingTest.java

Modified: java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/SvtConverterRegistry.java
 =============================================================================
--- java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/SvtConverterRegistry.java	(original)
+++ java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/SvtConverterRegistry.java	Wed Oct 22 18:36:21 2014
@@ -10,6 +10,7 @@
 import org.hps.conditions.svt.SvtGain.SvtGainCollection;
 import org.hps.conditions.svt.SvtShapeFitParameters.SvtShapeFitParametersCollection;
 import org.hps.conditions.svt.SvtT0Shift.SvtT0ShiftCollection;
+import org.hps.conditions.svt.TestRunSvtDaqMapping.TestRunSvtDaqMappingCollection;
 
 /**
  * Definitions of converters from the database to SVT specific conditions classes.
@@ -71,4 +72,12 @@
             return SvtT0ShiftCollection.class;
         }
     }
+    
+    public static class TestRunSvtDaqMappingConverter extends ConditionsObjectConverter<TestRunSvtDaqMappingCollection> {
+        public Class getType() {
+            return TestRunSvtDaqMappingCollection.class;
+        }
+    }
+    
+    
 }

Modified: java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/TestRunSvtDaqMapping.java
 =============================================================================
--- java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/TestRunSvtDaqMapping.java	(original)
+++ java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/TestRunSvtDaqMapping.java	Wed Oct 22 18:36:21 2014
@@ -2,6 +2,8 @@
 
 import org.lcsim.detector.tracker.silicon.HpsSiSensor;
 import org.lcsim.detector.tracker.silicon.HpsTestRunSiSensor;
+import org.hps.conditions.AbstractConditionsObject;
+import org.hps.conditions.ConditionsObjectCollection;
 import org.hps.util.Pair;
 
 /**
@@ -9,28 +11,39 @@
  * 
  * @author Omar Moreno <[log in to unmask]>
  */
-public class TestRunSvtDaqMapping extends SvtDaqMapping {
+public class TestRunSvtDaqMapping extends AbstractConditionsObject {
 
-	public static class SvtDaqMappingCollection extends SvtDaqMapping.SvtDaqMappingCollection {
+	public static class TestRunSvtDaqMappingCollection extends ConditionsObjectCollection<TestRunSvtDaqMapping> {
 	
-		/**
+        /**
+         * Flag values for top or bottom half.
+         */
+        public static final String TOP_HALF = "T";
+        public static final String BOTTOM_HALF = "B";
+        
+        /**
+         * Flag values for axial or stereo sensors 
+         */
+        public static final String AXIAL = "A";
+        public static final String STEREO = "S";
+
+        /**
 		 * Get a test run DAQ pair (FPGA and Hybrid ID) for the given 
 		 * {@linkplain HpsTestRunSiSensor}
 		 * 
 		 * @param  sensor A sensor of type {@link HpsTestRunSiSensor}
 		 * @return The DAQ pair associated with the sensor 
 		 */
-		@Override
 		Pair<Integer, Integer> getDaqPair(HpsSiSensor sensor){
 			
 			String svtHalf = sensor.isTopLayer() ? TOP_HALF : BOTTOM_HALF; 
-			for(SvtDaqMapping daqMapping : this.getObjects()){
+			for(TestRunSvtDaqMapping daqMapping : this.getObjects()){
 				
 				if(svtHalf.equals(daqMapping.getSvtHalf())
 						&& daqMapping.getLayerNumber() == sensor.getLayerNumber()){
 					
-					return new Pair<Integer, Integer>(((TestRunSvtDaqMapping) daqMapping).getFpgaID(), 
-													  ((TestRunSvtDaqMapping) daqMapping).getHybridID());
+					return new Pair<Integer, Integer>(daqMapping.getFpgaID(), 
+													  daqMapping.getHybridID());
 				}
 			}
 			return null;
@@ -45,10 +58,9 @@
          * 		   orientation is Axial, an "S" if the orientation is Stereo or
          * 		   null if the daqPair doesn't exist.
          */
-		@Override
         public String getOrientation(Pair<Integer, Integer> daqPair){
         	
-        	for(SvtDaqMapping daqMapping : this.getObjects()){
+        	for(TestRunSvtDaqMapping daqMapping : this.getObjects()){
         		
         		if(daqPair.getFirstElement() == ((TestRunSvtDaqMapping) daqMapping).getFpgaID()
         				&& daqPair.getSecondElement() == ((TestRunSvtDaqMapping) daqMapping).getHybridID()){
@@ -78,7 +90,7 @@
             buffer.append('\n');
             buffer.append("----------------------");
             buffer.append('\n');
-            for (SvtDaqMapping daqMapping : getObjects()){
+            for (TestRunSvtDaqMapping daqMapping : getObjects()){
             	TestRunSvtDaqMapping testRunDaqMapping = (TestRunSvtDaqMapping) daqMapping; 
             	buffer.append(testRunDaqMapping.getFpgaID());
                 buffer.append("    ");
@@ -104,18 +116,15 @@
 		return getFieldValue("hybrid");
 	}
 
-	// TODO: Instead of throwing an exception, these classes should be pulled out to
-	//		 a subclass.
-    public int getFebID() { 
-    	throw new UnsupportedOperationException("The test run DAQ map doesn't use FEB ID's.");
+	public String getSvtHalf() {
+        return getFieldValue("svt_half");
+    }
+
+    public int getLayerNumber() {
+        return getFieldValue("layer");
     }
     
-    public int getFebHybridID() { 
-    	throw new UnsupportedOperationException("The test run DAQ map doesn't use FEB Hybrid ID's.");
+    public String getOrientation() { 
+    	return getFieldValue("orientation");
     }
-    
-    public String getSide(){
-    	throw new UnsupportedOperationException("The test run DAQ map doesn't use a side.");
-    }
-	
 }

Modified: java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/test/java/org/hps/conditions/svt/TestRunSvtDaqMappingTest.java
 =============================================================================
--- java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/test/java/org/hps/conditions/svt/TestRunSvtDaqMappingTest.java	(original)
+++ java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/test/java/org/hps/conditions/svt/TestRunSvtDaqMappingTest.java	Wed Oct 22 18:36:21 2014
@@ -5,7 +5,7 @@
 import org.hps.conditions.DatabaseConditionsManager;
 import org.hps.conditions.TableMetaData;
 import org.hps.conditions.config.TestRunReadOnlyConfiguration;
-import org.hps.conditions.svt.TestRunSvtDaqMapping.SvtDaqMappingCollection;
+import org.hps.conditions.svt.TestRunSvtDaqMapping.TestRunSvtDaqMappingCollection;
 
 /**
  * This test checks if the test run SVT DAQ map was loaded with reasonable 
@@ -23,35 +23,50 @@
 	
 	// Total number of SVT sensors
 	public static final int TOTAL_NUMBER_OF_SENSORS = 20;
-	// Min and max values of front end boad (FEB) hybrid ID's
+	// Min and max values of the FPGA ID's
+	public static final int MIN_FPGA_ID = 0; 
+	public static final int MAX_FPGA_ID = 6; 
+	// Min and max values of Hybrid ID's
 	public static final int MIN_HYBRID_ID = 0; 
 	public static final int MAX_HYBRID_ID = 2; 
+	// Min and max layer number values 
+	public static final int MIN_LAYER_NUMBER = 1; 
+	public static final int MAX_LAYER_NUMBER = 10; 
 	
 	
 	
 	public void setUp(){
-        new TestRunReadOnlyConfiguration().setup().load("HPS-TestRun-v5", 0);
+        new TestRunReadOnlyConfiguration().setup().load("HPS-TestRun-v5", 1351);
         conditionsManager = DatabaseConditionsManager.getInstance();
 	}
 	
 	public void test(){
 		
-		metaData = conditionsManager.findTableMetaData(SvtDaqMappingCollection.class);
-		SvtDaqMappingCollection daqMappingCollection 
-			= conditionsManager.getConditionsData(SvtDaqMappingCollection.class, metaData.getTableName());
+		metaData = conditionsManager.findTableMetaData(TestRunSvtDaqMappingCollection.class);
+		TestRunSvtDaqMappingCollection daqMappingCollection 
+			= conditionsManager.getConditionsData(TestRunSvtDaqMappingCollection.class, metaData.getTableName());
 
 	
 		int totalSensors = 0; 
-		int fpgaID;
-		int hybridID; 
 		this.printDebug("");
-		for(SvtDaqMapping daqMapping : daqMappingCollection){
+		for(TestRunSvtDaqMapping daqMapping : daqMappingCollection){
 			
-			this.printDebug("Sensor: \n" + ((TestRunSvtDaqMapping) daqMapping).toString());
+			this.printDebug("Sensor: \n" + daqMapping.toString());
+		
+			// Check that the FPGA ID is within the allowable limits
+			int fpgaID = daqMapping.getFpgaID();
+			assertTrue("FPGA ID " + fpgaID + " is out of range!",
+						fpgaID >= MIN_FPGA_ID && fpgaID <= MAX_FPGA_ID);
 			
 			// Check that the Hybrid ID is within the allowable limits
-			hybridID = ((TestRunSvtDaqMapping) daqMapping).getHybridID();
-			assertTrue("Hybrid ID is out of range!.", hybridID >= MIN_HYBRID_ID && hybridID <= MAX_HYBRID_ID);
+			int hybridID = daqMapping.getHybridID();
+			assertTrue("Hybrid ID " + hybridID + " is out of range!",
+						hybridID >= MIN_HYBRID_ID && hybridID <= MAX_HYBRID_ID);
+			
+			// Check that the layer number is within the allowable limits
+			int layerNumber = daqMapping.getLayerNumber();
+			assertTrue("The layer number " + layerNumber + " is out of range!", 
+					layerNumber >= MIN_LAYER_NUMBER && layerNumber <= MAX_LAYER_NUMBER);
 			
 			totalSensors++;
 		}