Author: [log in to unmask] Date: Fri Nov 7 13:10:05 2014 New Revision: 1450 Log: Fix up event builder setup so it works with monitoring app. Modified: java/trunk/evio/src/main/java/org/hps/evio/ECalEvioReader.java java/trunk/evio/src/main/java/org/hps/evio/LCSimEventBuilder.java java/trunk/evio/src/main/java/org/hps/evio/LCSimTestRunEventBuilder.java java/trunk/monitoring-app/src/main/java/org/hps/monitoring/gui/MonitoringApplication.java Modified: java/trunk/evio/src/main/java/org/hps/evio/ECalEvioReader.java ============================================================================= --- java/trunk/evio/src/main/java/org/hps/evio/ECalEvioReader.java (original) +++ java/trunk/evio/src/main/java/org/hps/evio/ECalEvioReader.java Fri Nov 7 13:10:05 2014 @@ -41,7 +41,7 @@ private static final String readoutName = "EcalHits"; private static final String subdetectorName = "Ecal"; // private Detector detector; - private final Subdetector subDetector; + private Subdetector subDetector; private static EcalConditions ecalConditions = null; private static IIdentifierHelper helper = null; @@ -53,22 +53,13 @@ this.botBankTag = botBankTag; hitCollectionName = "EcalReadoutHits"; - subDetector = DatabaseConditionsManager.getInstance().getDetectorObject().getSubdetector(subdetectorName); - - // ECAL combined conditions object. - ecalConditions = ConditionsManager.defaultInstance() - .getCachedConditions(EcalConditions.class, TableConstants.ECAL_CONDITIONS).getCachedData(); - - helper = subDetector.getDetectorElement().getIdentifierHelper(); - - System.out.println("You are now using the database conditions for ECalEvioReader.java"); + //System.out.println("You are now using the database conditions for ECalEvioReader.java"); // ID helper. // helper = detector.getSubdetector("Ecal").getDetectorElement().getIdentifierHelper(); } public void setTopBankTag(int topBankTag) { this.topBankTag = topBankTag; - } public void setBotBankTag(int botBankTag) { @@ -307,4 +298,14 @@ } return hits; } + + void initialize() { + subDetector = DatabaseConditionsManager.getInstance().getDetectorObject().getSubdetector(subdetectorName); + + // ECAL combined conditions object. + ecalConditions = ConditionsManager.defaultInstance() + .getCachedConditions(EcalConditions.class, TableConstants.ECAL_CONDITIONS).getCachedData(); + + helper = subDetector.getDetectorElement().getIdentifierHelper(); + } } Modified: java/trunk/evio/src/main/java/org/hps/evio/LCSimEventBuilder.java ============================================================================= --- java/trunk/evio/src/main/java/org/hps/evio/LCSimEventBuilder.java (original) +++ java/trunk/evio/src/main/java/org/hps/evio/LCSimEventBuilder.java Fri Nov 7 13:10:05 2014 @@ -1,9 +1,10 @@ package org.hps.evio; import org.jlab.coda.jevio.EvioEvent; +import org.lcsim.conditions.ConditionsListener; import org.lcsim.event.EventHeader; -public interface LCSimEventBuilder { +public interface LCSimEventBuilder extends ConditionsListener { /** * Read any run information out of an EVIO event (not necessarily a physics event). @@ -18,8 +19,10 @@ */ EventHeader makeLCSimEvent(EvioEvent evioEvent); + // FIXME: Why is this needed here when checking the header tag is a static operation on the EvioEvent? boolean isPhysicsEvent(EvioEvent evioEvent); + // FIXME: This should not be a method on the API. It should come from the conditions system. void setDetectorName(String detectorName); void setDebug(boolean debug); Modified: java/trunk/evio/src/main/java/org/hps/evio/LCSimTestRunEventBuilder.java ============================================================================= --- java/trunk/evio/src/main/java/org/hps/evio/LCSimTestRunEventBuilder.java (original) +++ java/trunk/evio/src/main/java/org/hps/evio/LCSimTestRunEventBuilder.java Fri Nov 7 13:10:05 2014 @@ -5,12 +5,15 @@ import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; + import org.hps.readout.ecal.TriggerData; import org.jlab.coda.jevio.BaseStructure; import org.jlab.coda.jevio.EvioEvent; +import org.lcsim.conditions.ConditionsEvent; +import org.lcsim.conditions.ConditionsListener; +import org.lcsim.conditions.ConditionsManager; import org.lcsim.event.EventHeader; import org.lcsim.event.base.BaseLCSimEvent; -import org.lcsim.geometry.Detector; /** * Build LCSim events from EVIO data. @@ -20,13 +23,14 @@ * @version $Id: LCSimTestRunEventBuilder.java,v 1.24 2013/03/01 01:30:25 meeg * Exp $ */ -public class LCSimTestRunEventBuilder implements LCSimEventBuilder { +public class LCSimTestRunEventBuilder implements LCSimEventBuilder, ConditionsListener { // Names of subdetectors. // private String trackerName; // Detector conditions object. - protected Detector detector; + //protected Detector detector; // Debug flag. + String detectorName = null; protected boolean debug = false; ECalEvioReader ecalReader = null; SVTEvioReader svtReader = null; @@ -42,10 +46,7 @@ @Override public void setDetectorName(String detectorName) { - // Make a dummy event to setup the conditions system. - EventHeader dummyEvent = new BaseLCSimEvent(0, 0, detectorName); - detector = dummyEvent.getDetector(); -// EcalConditions.loadDaqMap(detector, "Ecal"); + this.detectorName = detectorName; } @Override @@ -156,8 +157,9 @@ } // Create a new LCSimEvent. - EventHeader lcsimEvent = new BaseLCSimEvent(run, eventID[0], detector.getDetectorName(), time); - + //EventHeader lcsimEvent = new BaseLCSimEvent(run, eventID[0], detector.getDetectorName(), time); + EventHeader lcsimEvent = new BaseLCSimEvent(run, eventID[0], detectorName, time); + lcsimEvent.put("TriggerBank", triggerList, TriggerData.class, 0); return lcsimEvent; } @@ -187,4 +189,9 @@ time = ((long) triggerData.getTime()) * 1000000000; return triggerData; } + + @Override + public void conditionsChanged(ConditionsEvent conditionsEvent) { + ecalReader.initialize(); + } } Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/gui/MonitoringApplication.java ============================================================================= --- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/gui/MonitoringApplication.java (original) +++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/gui/MonitoringApplication.java Fri Nov 7 13:10:05 2014 @@ -95,6 +95,7 @@ import org.hps.record.et.EtConnection; import org.jlab.coda.jevio.EvioException; import org.jlab.coda.jevio.EvioReader; +import org.lcsim.conditions.ConditionsManager; import org.lcsim.job.JobControlManager; import org.lcsim.lcio.LCIOReader; import org.lcsim.util.Driver; @@ -1191,6 +1192,8 @@ // Set the detector name on the event builder so it can find conditions data. eventBuilder.setDetectorName(configurationModel.getDetectorName()); + + ConditionsManager.defaultInstance().addConditionsListener(eventBuilder); log(Level.CONFIG, "Successfully initialized event builder <" + eventBuilderClassName + ">"); }