Print

Print


Author: [log in to unmask]
Date: Fri May  8 13:58:44 2015
New Revision: 2928

Log:
Add test of different SVT opening angles read from database.

Modified:
    java/branches/HPSJAVA-499/detector-model/src/test/java/org/hps/detector/SvtAlignmentTest.java

Modified: java/branches/HPSJAVA-499/detector-model/src/test/java/org/hps/detector/SvtAlignmentTest.java
 =============================================================================
--- java/branches/HPSJAVA-499/detector-model/src/test/java/org/hps/detector/SvtAlignmentTest.java	(original)
+++ java/branches/HPSJAVA-499/detector-model/src/test/java/org/hps/detector/SvtAlignmentTest.java	Fri May  8 13:58:44 2015
@@ -1,8 +1,12 @@
 package org.hps.detector;
+
+import java.util.logging.Level;
 
 import junit.framework.TestCase;
 
 import org.hps.conditions.database.DatabaseConditionsManager;
+import org.hps.conditions.svt.SvtAlignmentConstant;
+import org.hps.conditions.svt.SvtAlignmentConstant.SvtAlignmentConstantCollection;
 
 /**
  * Test loading SVT alignment constants into the Java detector model.
@@ -11,9 +15,56 @@
  */
 public class SvtAlignmentTest extends TestCase {
 
+    private static final String DETECTOR_NAME = "HPS-EngRun2015-Nominal-v1";
+    
+    private static final int[] RUNS = {
+        /* nominal alignment settings */
+        0,
+        /* 4mm */
+        4847,
+        /* 3mm */
+        5037,
+        /* 2mm */
+        5066,
+        /* 1.5mm */
+        5259,
+        /* open */
+        5222 };
+    
+    private static double ANGLES[][] = {
+        {0, 0},
+        {0.0107, -0.0116},
+        {0.0077, -0.0086},
+        {0.0046, -0.005},
+        {0.0031, -0.0033},
+        {0.0216, -0.0217}        
+    };
+
     public void testSvtAlignment() throws Exception {
         final DatabaseConditionsManager manager = DatabaseConditionsManager.getInstance();
-        // manager.setDetector("HPS-EngRun2015-1_5mm-v1", 5259);
-        manager.setDetector("HPS-EngRun2015-1_5mm-v1", 0);
+        manager.setLogLevel(Level.WARNING);
+        int runIndex = 0;
+        for (int run : RUNS) {       
+            
+            System.out.println();
+            
+            System.out.println("loading SVT alignments for detector " + DETECTOR_NAME + " and run " + run);
+            
+            manager.setDetector(DETECTOR_NAME, run);
+            
+            SvtAlignmentConstantCollection collection = 
+                    manager.getCachedConditions(SvtAlignmentConstantCollection.class, "svt_alignments").getCachedData();
+            System.out.println("got collection " + collection.getCollectionId() + " of size " + collection.size());
+            
+            SvtAlignmentConstant top = collection.find(13100);
+            SvtAlignmentConstant bottom = collection.find(23100);
+            
+            System.out.println("param " + top.getParameter() + " = " + top.getValue());
+            System.out.println("param " + bottom.getParameter() + " = " + bottom.getValue());
+            
+            assertEquals("Top angle wrong.", ANGLES[runIndex][0], top.getValue());
+            assertEquals("Bottom angle wrong.", ANGLES[runIndex][1], bottom.getValue());
+            ++runIndex;
+        }
     }
 }