Author: [log in to unmask]
Date: Fri Jan 16 17:40:59 2015
New Revision: 1954
Log:
Add AIDA tuple output to beam conditions test.
Modified:
java/trunk/conditions/src/test/java/org/hps/conditions/beam/BeamConditionsTest.java
Modified: java/trunk/conditions/src/test/java/org/hps/conditions/beam/BeamConditionsTest.java
=============================================================================
--- java/trunk/conditions/src/test/java/org/hps/conditions/beam/BeamConditionsTest.java (original)
+++ java/trunk/conditions/src/test/java/org/hps/conditions/beam/BeamConditionsTest.java Fri Jan 16 17:40:59 2015
@@ -1,5 +1,14 @@
package org.hps.conditions.beam;
+import hep.aida.IAnalysisFactory;
+import hep.aida.ITree;
+import hep.aida.ITuple;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Map.Entry;
import java.util.logging.Level;
import junit.framework.TestCase;
@@ -7,6 +16,7 @@
import org.hps.conditions.beam.BeamConditions.BeamConditionsCollection;
import org.hps.conditions.database.DatabaseConditionsManager;
import org.lcsim.conditions.ConditionsManager.ConditionsNotFoundException;
+import org.lcsim.util.test.TestUtil.TestOutputFile;
/**
* Load beam conditions for every run from the ECAL commissioning.
@@ -38,6 +48,7 @@
DatabaseConditionsManager manager = new DatabaseConditionsManager();
manager.setLogLevel(Level.SEVERE);
System.out.println("run id current position_x position_y energy");
+ Map<Integer, BeamConditions> beamConditions = new LinkedHashMap<Integer, BeamConditions>();
for (int run : runs) {
try {
manager.setDetector("HPS-ECalCommissioning", run);
@@ -54,6 +65,53 @@
System.out.print(beam.getPositionY() + " ");
System.out.print(beam.getEnergy());
System.out.println();
+ beamConditions.put(run, beam);
}
+ writeBeamTuple(beamConditions);
}
+
+ static private void writeBeamTuple(Map<Integer, BeamConditions> beamConditions) {
+
+ File dir = new TestOutputFile(BeamConditionsTest.class.getSimpleName());
+ dir.mkdir();
+
+ IAnalysisFactory analysisFactory = IAnalysisFactory.create();
+ ITree tree = null;
+ try {
+ tree = analysisFactory.createTreeFactory().create(dir.getPath() + File.separator + "BeamTuple.aida", "xml", false, true);
+ } catch (IllegalArgumentException | IOException e) {
+ throw new RuntimeException(e);
+ }
+ ITuple tuple = analysisFactory.createTupleFactory(tree).create("/Beam Tuple", "Beam Tuple", "int run, double current, position_x, position_y, energy");
+ tuple.start();
+ for (Entry<Integer, BeamConditions> entry : beamConditions.entrySet()) {
+ tuple.addRow();
+
+ Double current = entry.getValue().getCurrent();
+ if (current == null)
+ current = 0.;
+ Double positionX = entry.getValue().getPositionX();
+ if (positionX == null)
+ positionX = 0.;
+ Double positionY = entry.getValue().getPositionY();
+ if (positionY == null)
+ positionY = 0.;
+ Double energy = entry.getValue().getEnergy();
+ if (energy == null)
+ energy = 0.;
+
+ tuple.fill(0, (int)entry.getKey());
+ tuple.fill(1, (double)current);
+ tuple.fill(2, (double)positionX);
+ tuple.fill(3, (double)positionY);
+ tuple.fill(4, (double)energy);
+ tuple.next();
+ }
+
+ try {
+ tree.commit();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
}
|