Author: [log in to unmask]
Date: Sun Nov 2 12:26:28 2014
New Revision: 1407
Log:
Update the readers and writers to use the FPGA and hybrid numbers. Add a "run number" argument to TestRunEvioToLcio and use that to obtain the correct conditions from the database. This is only a temporary fix until this file is updated to use the new conditions system correctly.
Modified:
java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/SVTEvioReader.java
java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/SVTHitWriter.java
java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/TestRunEvioToLcio.java
Modified: java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/SVTEvioReader.java
=============================================================================
--- java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/SVTEvioReader.java (original)
+++ java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/SVTEvioReader.java Sun Nov 2 12:26:28 2014
@@ -7,8 +7,8 @@
import org.jlab.coda.jevio.BaseStructure;
import org.jlab.coda.jevio.EvioEvent;
-
import org.lcsim.detector.tracker.silicon.HpsSiSensor;
+import org.lcsim.detector.tracker.silicon.HpsTestRunSiSensor;
import org.lcsim.detector.tracker.silicon.SiSensor;
import org.lcsim.event.EventHeader;
import org.lcsim.event.GenericObject;
@@ -28,6 +28,7 @@
*
* @author Omar Moreno <[log in to unmask]>
*/
+// TODO: Update this class so it works correctly with the database conditions system
public class SVTEvioReader extends EvioReader {
@@ -63,10 +64,8 @@
List<HpsSiSensor> sensors = subdetector.getDetectorElement().findDescendants(HpsSiSensor.class);
for(HpsSiSensor sensor : sensors){
- // FIXME: For now, use the FEB ID and FEB Hybrid ID. This will need to be changed to
- // use the Fpga and hybrid number once HpsTestRunSensor is ready
Pair<Integer, Integer> daqPair
- = new Pair<Integer, Integer>(sensor.getFebID(), sensor.getFebHybridID());
+ = new Pair<Integer, Integer>(((HpsTestRunSiSensor) sensor).getFpgaID(), ((HpsTestRunSiSensor) sensor).getHybridID());
daqPairToSensor.put(daqPair, sensor);
}
isDaqMapSetup = true;
@@ -181,8 +180,10 @@
private RawTrackerHit makeHit(int[] data) {
int hitTime = 0;
+ System.out.println("FPGA: " + SVTData.getFPGAAddress(data) + " Hybrid: " + SVTData.getHybridNumber(data));
Pair<Integer, Integer> daqPair = new Pair<Integer, Integer>(SVTData.getFPGAAddress(data), SVTData.getHybridNumber(data));
HpsSiSensor sensor = daqPairToSensor.get(daqPair);
+ System.out.println(sensor.toString());
//===> SiSensor sensor = SvtUtils.getInstance().getSensor(daqPair);
int sensorChannel = SVTData.getSensorChannel(data);
Modified: java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/SVTHitWriter.java
=============================================================================
--- java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/SVTHitWriter.java (original)
+++ java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/SVTHitWriter.java Sun Nov 2 12:26:28 2014
@@ -9,7 +9,7 @@
import org.jlab.coda.jevio.EventBuilder;
import org.jlab.coda.jevio.EvioBank;
import org.jlab.coda.jevio.EvioException;
-
+import org.lcsim.detector.tracker.silicon.HpsTestRunSiSensor;
import org.lcsim.detector.tracker.silicon.SiSensor;
import org.lcsim.detector.tracker.silicon.HpsSiSensor;
import org.lcsim.event.EventHeader;
@@ -17,7 +17,6 @@
import org.lcsim.event.RawTrackerHit;
import org.lcsim.geometry.Subdetector;
import org.lcsim.lcio.LCIOConstants;
-
import org.hps.conditions.deprecated.HPSSVTConstants;
//===> import org.hps.conditions.deprecated.SvtUtils;
import org.hps.readout.svt.FpgaData;
@@ -30,6 +29,7 @@
*
* @author Sho Uemura <[log in to unmask]>
*/
+// TODO: Update this class so it works correctly with the database conditions system
public class SVTHitWriter implements HitWriter {
boolean debug = false;
@@ -67,11 +67,9 @@
Map<Integer, FpgaData> fpgaData = new HashMap<Integer, FpgaData>();
List<HpsSiSensor> sensors = subdetector.getDetectorElement().findDescendants(HpsSiSensor.class);
- // FIXME: For now, just fill the FPGA numbers list using the sensors.
- // This should be moved to the daqMapping class.
for(HpsSiSensor sensor : sensors){
- if(!fpgaNumbers.contains(sensor.getFebID())){
- fpgaNumbers.add(sensor.getFebID());
+ if(!fpgaNumbers.contains(((HpsTestRunSiSensor) sensor).getFpgaID())){
+ fpgaNumbers.add(((HpsTestRunSiSensor) sensor).getFpgaID());
}
}
//===> for (Integer fpgaNumber : SvtUtils.getInstance().getFpgaNumbers()) {
@@ -100,11 +98,9 @@
for (RawTrackerHit hit : hits) {
//===> int fpgaAddress = SvtUtils.getInstance().getFPGA((SiSensor) hit.getDetectorElement());
- // FIXME: For now use the FEB ID until HpsTestRunSensor is ready
- int fpgaAddress = ((HpsSiSensor) hit.getDetectorElement()).getFebID();
+ int fpgaAddress = ((HpsTestRunSiSensor) hit.getDetectorElement()).getFpgaID();
//int hybridNumber = SvtUtils.getInstance().getHybrid((SiSensor) hit.getDetectorElement());
- // FIXME: For now use the FEB Hybrid ID until HpsTestRunSensor is ready
- int hybridNumber = ((HpsSiSensor) hit.getDetectorElement()).getFebHybridID();
+ int hybridNumber = ((HpsTestRunSiSensor) hit.getDetectorElement()).getFpgaID();
int sensorChannel = hit.getIdentifierFieldValue("strip");
int apvNumber = SVTData.getAPV(sensorChannel);
int channelNumber = SVTData.getAPVChannel(sensorChannel);
Modified: java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/TestRunEvioToLcio.java
=============================================================================
--- java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/TestRunEvioToLcio.java (original)
+++ java/branches/hps_java_trunk_HPSJAVA-255/evio/src/main/java/org/hps/evio/TestRunEvioToLcio.java Sun Nov 2 12:26:28 2014
@@ -35,6 +35,10 @@
*
* @author Jeremy McCormick <[log in to unmask]>
*/
+// TODO: Update this class so it works correctly with the database conditions system
+// FIXME: For now, the run number was added to the command line options so the
+// correct set of conditions can be loaded. This needs to be changed to
+// get the correct run number from the prestart.
public class TestRunEvioToLcio {
private static final String defaultDetectorName = "";
@@ -57,6 +61,7 @@
options.addOption(new Option("c", false, "Show run control window"));
options.addOption(new Option("D", true, "Pass a variable to the steering file"));
options.addOption(new Option("r", false, "Interpret -x argument as a steering resource instead of a file path"));
+ options.addOption(new Option("R", true, "The run number"));
return options;
}
@@ -176,11 +181,15 @@
}
}
- new org.hps.conditions.config.TestRunReadOnlyConfiguration(false).setup().load(detectorName, 0);
+ int runNumber = 0;
+ if(cl.hasOption("R")){
+ runNumber = Integer.valueOf(cl.getOptionValue("R"));
+ }
jobManager.setup(steeringStream);
jobManager.configure();
+ new org.hps.conditions.config.TestRunReadOnlyConfiguration(false).setup().load(detectorName, runNumber);
// LCSim event builder.
LCSimEventBuilder eventBuilder = new LCSimTestRunEventBuilder();
eventBuilder.setDetectorName(detectorName);
@@ -225,7 +234,7 @@
if (EventConstants.isPreStartEvent(evioEvent)) {
int[] data = evioEvent.getIntData();
int seconds = data[0];
- int runNumber = data[1];
+ runNumber = data[1];
// calibListener.prestart(seconds, runNumber);
} else if (EventConstants.isEndEvent(evioEvent)) {
int[] data = evioEvent.getIntData();
|