Author: [log in to unmask]
Date: Wed Apr 27 12:24:38 2016
New Revision: 4349
Log:
Add ecal crystal positions to database and provide simple conditions API class for accessing them.
Added:
java/branches/HPSJAVA-409/conditions/src/main/java/org/hps/conditions/ecal/EcalCrystalPosition.java
java/branches/HPSJAVA-409/detector-model/src/test/java/org/hps/detector/ecal/EcalCrystalPositionTest.java
Modified:
java/branches/HPSJAVA-409/detector-model/pom.xml
Added: java/branches/HPSJAVA-409/conditions/src/main/java/org/hps/conditions/ecal/EcalCrystalPosition.java
=============================================================================
--- java/branches/HPSJAVA-409/conditions/src/main/java/org/hps/conditions/ecal/EcalCrystalPosition.java (added)
+++ java/branches/HPSJAVA-409/conditions/src/main/java/org/hps/conditions/ecal/EcalCrystalPosition.java Wed Apr 27 12:24:38 2016
@@ -0,0 +1,53 @@
+package org.hps.conditions.ecal;
+
+import org.hps.conditions.api.BaseConditionsObject;
+import org.hps.conditions.api.BaseConditionsObjectCollection;
+import org.hps.conditions.database.Field;
+import org.hps.conditions.database.Table;
+
+/**
+ * Stores information about front and back ECal crystal positions relative to the target.
+ *
+ * @author jeremym
+ */
+@Table(names = {"ecal_crystal_positions"})
+public class EcalCrystalPosition extends BaseConditionsObject {
+
+ public static class EcalCrystalPositionCollection extends BaseConditionsObjectCollection<EcalCrystalPosition> {
+ }
+
+ @Field(names = {"ecal_channel_id"})
+ public int getChannelId() {
+ return this.getFieldValue("ecal_channel_id");
+ }
+
+ @Field(names = {"front_x"})
+ public double getFrontX() {
+ return this.getFieldValue("front_x");
+ }
+
+ @Field(names = {"front_y"})
+ public double getFrontY() {
+ return this.getFieldValue("front_y");
+ }
+
+ @Field(names = {"front_z"})
+ public double getFrontZ() {
+ return this.getFieldValue("front_z");
+ }
+
+ @Field(names = {"back_x"})
+ public double getBackX() {
+ return this.getFieldValue("back_x");
+ }
+
+ @Field(names = {"back_y"})
+ public double getBackY() {
+ return this.getFieldValue("back_y");
+ }
+
+ @Field(names = {"back_z"})
+ public double getBackZ() {
+ return this.getFieldValue("back_z");
+ }
+}
Modified: java/branches/HPSJAVA-409/detector-model/pom.xml
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/pom.xml (original)
+++ java/branches/HPSJAVA-409/detector-model/pom.xml Wed Apr 27 12:24:38 2016
@@ -46,6 +46,7 @@
<excludes>
<exclude>org/hps/detector/svt/TestRunSvtDetectorSetupTest.java</exclude>
<exclude>org/hps/detector/SvtAlignmentTest.java</exclude>
+ <exclude>org/hps/detector/ecal/EcalCrystalPositionTest.java</exclude>
</excludes>
</configuration>
</plugin>
Added: java/branches/HPSJAVA-409/detector-model/src/test/java/org/hps/detector/ecal/EcalCrystalPositionTest.java
=============================================================================
--- java/branches/HPSJAVA-409/detector-model/src/test/java/org/hps/detector/ecal/EcalCrystalPositionTest.java (added)
+++ java/branches/HPSJAVA-409/detector-model/src/test/java/org/hps/detector/ecal/EcalCrystalPositionTest.java Wed Apr 27 12:24:38 2016
@@ -0,0 +1,40 @@
+package org.hps.detector.ecal;
+
+import junit.framework.TestCase;
+
+import org.hps.conditions.database.DatabaseConditionsManager;
+import org.hps.conditions.ecal.EcalChannel;
+import org.hps.conditions.ecal.EcalCrystalPosition;
+import org.hps.conditions.ecal.EcalChannel.EcalChannelCollection;
+import org.hps.conditions.ecal.EcalCrystalPosition.EcalCrystalPositionCollection;
+
+
+/**
+ * Simplistic test of loading ECal crystal positions from the conditions database
+ * and associating to an ecal channel object.
+ * <p>
+ * This test must go into the <i>detector-model</i> module because the detector
+ * converters are not available in the <i>conditions</i> package.
+ *
+ * @author jeremym
+ */
+public class EcalCrystalPositionTest extends TestCase {
+
+ public void testEcalCrystalPositions() throws Exception {
+ DatabaseConditionsManager mgr = DatabaseConditionsManager.getInstance();
+ mgr.setDetector("HPS-PhysicsRun2016-Nominal-v4-4", 0); /* any run number and detector will work here */
+
+ EcalCrystalPositionCollection positions =
+ mgr.getCachedConditions(EcalCrystalPositionCollection.class, "ecal_crystal_positions").getCachedData();
+ EcalChannelCollection channels =
+ mgr.getCachedConditions(EcalChannelCollection.class, "ecal_channels").getCachedData();
+
+ for (EcalCrystalPosition position : positions) {
+ int channelId = position.getChannelId();
+ EcalChannel channel = channels.findChannel(channelId);
+ System.out.println(channel);
+ System.out.println(position);
+ System.out.println();
+ }
+ }
+}
|