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++; }