Author: [log in to unmask] Date: Tue Jan 26 18:16:25 2016 New Revision: 4139 Log: Updates to dev branch. Added: java/branches/jeremy-dev/analysis/src/main/java/org/hps/analysis/plots/ java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/daqconfig/TriggerConfigEvioProcessor.java - copied, changed from r4065, java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/daqconfig/DAQConfigEvioProcessor.java java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/triggerbank/TriggerConfigData.java - copied, changed from r4065, java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/TriggerConfig.java Removed: java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/daqconfig/DAQConfigEvioProcessor.java java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/TriggerConfig.java Modified: java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/run/RunSpreadsheet.java java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/DatacatCrawler.java java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/EvioMetadataReader.java java/branches/jeremy-dev/logging/src/main/resources/org/hps/logging/config/test_logging.properties java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/scalers/ScalerUtilities.java java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/svt/SvtConfigEvioProcessor.java java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/EpicsDataDaoImpl.java java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunDatabaseBuilder.java java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunManager.java java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunSummaryDaoImpl.java java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/ScalerDataDaoImpl.java java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/TriggerConfigDao.java java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/TriggerConfigDaoImpl.java java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon_Pass2.lcsim Modified: java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/run/RunSpreadsheet.java ============================================================================= --- java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/run/RunSpreadsheet.java (original) +++ java/branches/jeremy-dev/conditions/src/main/java/org/hps/conditions/run/RunSpreadsheet.java Tue Jan 26 18:16:25 2016 @@ -264,7 +264,7 @@ try { addRunData(new RunData(record)); } catch (NumberFormatException e) { - e.printStackTrace(); + //e.printStackTrace(); } } } Modified: java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/DatacatCrawler.java ============================================================================= --- java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/DatacatCrawler.java (original) +++ java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/DatacatCrawler.java Tue Jan 26 18:16:25 2016 @@ -243,7 +243,7 @@ // Check that there is at least one file format enabled for filtering. if (this.config.getFileFormats().isEmpty()) { - throw new IllegalStateException("At least one file format must be provided with the -f switch."); + throw new IllegalStateException("At least one file format must be provided with the -o switch."); } LOGGER.info("Done parsing command line options."); Modified: java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/EvioMetadataReader.java ============================================================================= --- java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/EvioMetadataReader.java (original) +++ java/branches/jeremy-dev/crawler/src/main/java/org/hps/crawler/EvioMetadataReader.java Tue Jan 26 18:16:25 2016 @@ -29,6 +29,8 @@ * * @author Jeremy McCormick, SLAC */ +// TODO: add physics events count +// TODO: remove trigger rate and TI time offset final class EvioMetadataReader implements FileMetadataReader { /** @@ -56,6 +58,7 @@ public Map<String, Object> getMetadata(final File file) throws IOException { long events = 0; + int physicsEvents = 0; int badEvents = 0; int blinded = 0; Long run = null; @@ -63,7 +66,7 @@ Integer lastHeadTimestamp = null; Integer lastPhysicsEvent = null; Integer firstPhysicsEvent = null; - double triggerRate = 0; + Double triggerRate = null; long lastTI = 0; long minTIDelta = 0; long maxTIDelta = 0; @@ -188,6 +191,8 @@ LOGGER.finer("set first physics event " + firstPhysicsEvent); } } + + ++physicsEvents; } // Count trigger types for this event. @@ -201,7 +206,8 @@ // Activate TI time offset processor. tiProcessor.process(evioEvent); - } catch (IOException | EvioException e) { + //} catch (IOException | NegativeArraySizeException | EvioException e) { + } catch (Exception e) { // Trap event processing errors. badEvents++; LOGGER.warning("error processing EVIO event " + evioEvent.getEventNumber()); @@ -237,6 +243,14 @@ // Create and fill the metadata map. final Map<String, Object> metadataMap = new LinkedHashMap<String, Object>(); + try { + if (run == null) { + run = new Long(EvioFileUtilities.getRunFromName(file)); + } + } catch (Exception e) { + throw new RuntimeException("Unable to determine run number from data or file name.", e); + } + // Set built-in system metadata. metadataMap.put("runMin", run); metadataMap.put("runMax", run); @@ -251,28 +265,56 @@ metadataMap.put("BLINDED", blinded); // First and last timestamps which may come from control or physics events. - metadataMap.put("FIRST_HEAD_TIMESTAMP", firstHeadTimestamp); - metadataMap.put("LAST_HEAD_TIMESTAMP", lastHeadTimestamp); + if (firstHeadTimestamp != null) { + metadataMap.put("FIRST_HEAD_TIMESTAMP", firstHeadTimestamp); + } else { + metadataMap.put("FIRST_HEAD_TIMESTAMP", 0L); + } + + if (lastHeadTimestamp != null) { + metadataMap.put("LAST_HEAD_TIMESTAMP", lastHeadTimestamp); + } else { + metadataMap.put("LAST_HEAD_TIMESTAMP", 0L); + } // First and last physics event numbers. - metadataMap.put("FIRST_PHYSICS_EVENT", firstPhysicsEvent); - metadataMap.put("LAST_PHYSICS_EVENT", lastPhysicsEvent); + if (firstPhysicsEvent != null) { + metadataMap.put("FIRST_PHYSICS_EVENT", firstPhysicsEvent); + } else { + metadataMap.put("FIRST_PHYSICS_EVENT", 0L); + } + + if (lastPhysicsEvent != null) { + metadataMap.put("LAST_PHYSICS_EVENT", lastPhysicsEvent); + } else { + metadataMap.put("LAST_PHYSICS_EVENT", 0L); + } // TI times and offset. metadataMap.put("FIRST_TI_TIME", firstTI); metadataMap.put("LAST_TI_TIME", lastTI); metadataMap.put("TI_TIME_DELTA", maxTIDelta - minTIDelta); - // TI time offset (stored as string because of bug in MySQL datacat backend). - metadataMap.put("TI_TIME_OFFSET", tiProcessor.getTiTimeOffset()); + // TI time offset. + //metadataMap.put("TI_TIME_OFFSET", tiProcessor.getTiTimeOffset()); // Event counts. metadataMap.put("BAD_EVENTS", badEvents); - // Trigger rate in KHz. - DecimalFormat df = new DecimalFormat("#.##"); - df.setRoundingMode(RoundingMode.CEILING); - metadataMap.put("TRIGGER_RATE", Double.parseDouble(df.format(triggerRate))); + // Physics event count. + metadataMap.put("PHYSICS_EVENTS", physicsEvents); + + // Trigger rate in Hz to 2 decimal places. + /* + if (triggerRate != null && !Double.isInfinite(triggerRate) && !Double.isNaN(triggerRate)) { + DecimalFormat df = new DecimalFormat("#.##"); + df.setRoundingMode(RoundingMode.CEILING); + LOGGER.info("setting trigger rate " + triggerRate); + metadataMap.put("TRIGGER_RATE", Double.parseDouble(df.format(triggerRate))); + } else { + metadataMap.put("TRIGGER_RATE", 0); + } + */ // Trigger type counts. for (Entry<TriggerType, Integer> entry : triggerCounts.entrySet()) { Modified: java/branches/jeremy-dev/logging/src/main/resources/org/hps/logging/config/test_logging.properties ============================================================================= --- java/branches/jeremy-dev/logging/src/main/resources/org/hps/logging/config/test_logging.properties (original) +++ java/branches/jeremy-dev/logging/src/main/resources/org/hps/logging/config/test_logging.properties Tue Jan 26 18:16:25 2016 @@ -59,7 +59,7 @@ org.hps.record.evio.level = WARNING org.hps.record.scalers.level = WARNING org.hps.record.triggerbank.level = WARNING -org.hps.record.svt.level = WARNING +org.hps.record.svt.level = INFO # tracking org.hps.recon.tracking.level = WARNING Copied: java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/daqconfig/TriggerConfigEvioProcessor.java (from r4065, java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/daqconfig/DAQConfigEvioProcessor.java) ============================================================================= --- java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/daqconfig/DAQConfigEvioProcessor.java (original) +++ java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/daqconfig/TriggerConfigEvioProcessor.java Tue Jan 26 18:16:25 2016 @@ -8,6 +8,8 @@ import org.hps.record.evio.EvioBankTag; import org.hps.record.evio.EvioEventProcessor; import org.hps.record.evio.EvioEventUtilities; +import org.hps.record.triggerbank.TriggerConfigData; +import org.hps.record.triggerbank.TriggerConfigData.Crate; import org.jlab.coda.jevio.BaseStructure; import org.jlab.coda.jevio.EvioEvent; @@ -19,19 +21,13 @@ * * @author Jeremy McCormick, SLAC */ -public class DAQConfigEvioProcessor extends EvioEventProcessor { +public class TriggerConfigEvioProcessor extends EvioEventProcessor { - private Logger LOGGER = Logger.getLogger(DAQConfigEvioProcessor.class.getPackage().getName()); - - private DAQConfig daqConfig = null; - - private Map<Integer, String> stringData = new HashMap<Integer, String>(); - + private Logger LOGGER = Logger.getLogger(TriggerConfigEvioProcessor.class.getPackage().getName()); + + private TriggerConfigData triggerConfig = null; private Integer run = null; - - private int timestamp; - - private int currentTimestamp; + private int timestamp = 0; /** * Process EVIO events to extract DAQ config data. @@ -55,22 +51,13 @@ BaseStructure headBank = EvioEventUtilities.getHeadBank(evioEvent); if (headBank != null) { if (headBank.getIntData()[3] != 0) { - currentTimestamp = headBank.getIntData()[3]; - LOGGER.finest("set timestamp " + currentTimestamp + " from head bank"); + timestamp = headBank.getIntData()[3]; + LOGGER.finest("set timestamp " + timestamp + " from head bank"); } } - + // Parse config data from the EVIO banks. - EvioDAQParser evioParser = parseEvioData(evioEvent); - - // Was there a valid config created from the EVIO event? - if (evioParser != null) { - // Set the current DAQ config object. - ConfigurationManager.updateConfiguration(evioParser); - daqConfig = ConfigurationManager.getInstance(); - timestamp = currentTimestamp; - } - + parseEvioData(evioEvent); } } catch (Exception e) { LOGGER.log(Level.WARNING, "Error parsing DAQ config from EVIO.", e); @@ -83,9 +70,8 @@ * @param evioEvent the EVIO event * @return a parser object if the event has valid config data; otherwise <code>null</code> */ - private EvioDAQParser parseEvioData(EvioEvent evioEvent) { - EvioDAQParser parser = null; - int configBanks = 0; + private void parseEvioData(EvioEvent evioEvent) { + Map<Crate, String> stringData = null; for (BaseStructure bank : evioEvent.getChildrenList()) { if (bank.getChildCount() <= 0) { continue; @@ -97,57 +83,35 @@ LOGGER.warning("Trigger config bank is missing string data."); } else { try { - if (parser == null) { - parser = new EvioDAQParser(); - stringData.clear(); + if (stringData == null) { + stringData = new HashMap<Crate, String>(); } - LOGGER.fine("raw string data" + subBank.getStringData()[0]); - stringData.put(crate, subBank.getStringData()[0]); - LOGGER.info("Parsing DAQ config from crate " + crate + "."); - parser.parse(crate, run, subBank.getStringData()); - ++configBanks; + //LOGGER.fine("got raw trigger config string data ..." + '\n' + subBank.getStringData()[0]); + stringData.put(TriggerConfigData.Crate.fromCrateNumber(crate), subBank.getStringData()[0]); } catch (Exception e) { - LOGGER.log(Level.WARNING, "Failed to parse DAQ config.", e); + LOGGER.log(Level.WARNING, "Failed to parse crate " + crate + " config.", e); } } } } } - if (configBanks >= 4 || parser == null) { - if (parser != null) { - LOGGER.info("DAQ config was created from event " + evioEvent.getEventNumber() + " with " + configBanks + " banks."); + if (stringData != null) { + TriggerConfigData currentConfig = new TriggerConfigData(stringData, timestamp); + if (currentConfig.isValid()) { + triggerConfig = currentConfig; + LOGGER.warning("Found valid config in event num " + evioEvent.getEventNumber()); + } else { + LOGGER.warning("Skipping invalid config from event num " + evioEvent.getEventNumber()); } - return parser; - } else { - LOGGER.warning("Not enough banks were found to build DAQ config."); - return null; } } - - /** - * Get the DAQ config. - * - * @return the DAQ config - */ - public DAQConfig getDAQConfig() { - return this.daqConfig; - } - + /** * Get a map of bank number to string data for the current config. * * @return a map of bank to trigger config data */ - public Map<Integer, String> getTriggerConfigData() { - return this.stringData; - } - - /** - * Get the timestamp associated with the config. - * - * @return the timestamp - */ - public int getTimestamp() { - return timestamp; + public TriggerConfigData getTriggerConfigData() { + return this.triggerConfig; } } Modified: java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/scalers/ScalerUtilities.java ============================================================================= --- java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/scalers/ScalerUtilities.java (original) +++ java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/scalers/ScalerUtilities.java Tue Jan 26 18:16:25 2016 @@ -74,7 +74,6 @@ // [67]/[68] = CLOCK final double clock = (double) clockGated / (double) clockUngated; - // Compute the live times. final double[] liveTimes = new double[3]; liveTimes[LiveTimeIndex.FCUP_TDC.ordinal()] = fcupTdc; liveTimes[LiveTimeIndex.FCUP_TRG.ordinal()] = fcupTrg; Modified: java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/svt/SvtConfigEvioProcessor.java ============================================================================= --- java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/svt/SvtConfigEvioProcessor.java (original) +++ java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/svt/SvtConfigEvioProcessor.java Tue Jan 26 18:16:25 2016 @@ -58,12 +58,18 @@ config = new SvtConfigData(timestamp); } if (stringData.length > 0) { + System.out.println("found string data with length " + stringData.length); + for (int i = 0; i < stringData.length; i++) { + System.out.println("Printing raw string data " + i + " ..."); + System.out.println(stringData[i]); + System.out.println("End print raw string data"); + } if (!stringData[0].trim().isEmpty()) { - LOGGER.info("Adding SVT config data with len " + stringData[0].length() + " ..." + '\n' + stringData[0]); + LOGGER.info("Adding SVT config data with len " + stringData[0].length() + " ..." + '\n' + stringData[0]); config.setData(RocTag.fromTag(bank.getHeader().getTag()), stringData[0]); ++configBanks; } else { - LOGGER.warning("String data has no XML content."); + LOGGER.warning("String data has no content."); } } else { LOGGER.warning("String data has zero len."); @@ -73,7 +79,7 @@ } } } - } + } if (config != null) { LOGGER.info("Adding SVT config " + evioEvent.getEventNumber() + " with " + configBanks + " banks and timestamp " + timestamp + " from event " + evioEvent.getEventNumber()); Copied: java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/triggerbank/TriggerConfigData.java (from r4065, java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/TriggerConfig.java) ============================================================================= --- java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/TriggerConfig.java (original) +++ java/branches/jeremy-dev/record-util/src/main/java/org/hps/record/triggerbank/TriggerConfigData.java Tue Jan 26 18:16:25 2016 @@ -1,4 +1,4 @@ -package org.hps.run.database; +package org.hps.record.triggerbank; import java.util.Map; import java.util.Map.Entry; @@ -12,27 +12,40 @@ * * @author Jeremy McCormick, SLAC */ -final class TriggerConfig { +public final class TriggerConfigData { + + public enum Crate { + CONFIG1(37), + CONFIG2(39), + CONFIG3(46), + CONFIG4(58); + + private int crate; + + private Crate(int crate) { + this.crate = crate; + } + + public int crate() { + return crate; + } + + public static Crate fromCrateNumber(int crateNumber) { + for (Crate crate : Crate.values()) { + if (crate.crate() == crateNumber) { + return crate; + } + } + return null; + } + } + + private int timestamp; + private Map<Crate, String> data; - /** - * Expected number of string banks in trigger config. - */ - static final int DATA_LENGTH = 4; - - /* - * Mapping of trigger config database fields to their crate numbers. - */ - static final int CONFIG1 = 37; - static final int CONFIG2 = 39; - static final int CONFIG3 = 46; - static final int CONFIG4 = 58; - - private int timestamp; - private Map<Integer, String> data; - - TriggerConfig(Map<Integer, String> data, int timestamp) { + public TriggerConfigData(Map<Crate, String> data, int timestamp) { if (data == null) { - throw new RuntimeException("The data is null."); + throw new RuntimeException("The data map is null."); } this.data = data; this.timestamp = timestamp; @@ -43,28 +56,38 @@ * * @return the config's timestamp */ - int getTimestamp() { + public int getTimestamp() { return timestamp; } /** - * Get the config data as a map from bank numbers to strings. + * Get the config data as a map from crates to strings. * * @return the config data */ - Map<Integer, String> getData() { + public Map<Crate, String> getData() { return data; } /** - * Return <code>true</code> if the config is valid which means it has - * four, non-null string data banks. + * Return <code>true</code> if the config is valid which means it has four string banks with the correct crate + * numbers and non-null data strings. * * @return <code>true</code> if config is valid */ - boolean isValid() { - return data.size() == DATA_LENGTH && data.get(CONFIG1) != null && data.get(CONFIG2) != null - && data.get(CONFIG3) != null && data.get(CONFIG4) != null; + public boolean isValid() { + if (data.size() != Crate.values().length) { + return false; + } + for (Crate crate : Crate.values()) { + if (!data.containsKey(crate)) { + return false; + } + if (data.get(crate) == null) { + return false; + } + } + return true; } /** @@ -73,10 +96,10 @@ * @param the run number (needed by configuration manager) * @return the DAQ config object */ - DAQConfig loadDAQConfig(int run) { + public DAQConfig loadDAQConfig(int run) { EvioDAQParser parser = new EvioDAQParser(); - for (Entry<Integer, String> entry : data.entrySet()) { - parser.parse(entry.getKey(), run, new String[] {entry.getValue()}); + for (Entry<Crate, String> entry : data.entrySet()) { + parser.parse(entry.getKey().crate(), run, new String[] {entry.getValue()}); } ConfigurationManager.updateConfiguration(parser); return ConfigurationManager.getInstance(); Modified: java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/EpicsDataDaoImpl.java ============================================================================= --- java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/EpicsDataDaoImpl.java (original) +++ java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/EpicsDataDaoImpl.java Tue Jan 26 18:16:25 2016 @@ -152,7 +152,7 @@ final List<EpicsVariable> variables = epicsVariableDao.getEpicsVariables(epicsType); selectEpicsData = connection.prepareStatement("SELECT * FROM " + epicsType.getTableName() + " LEFT JOIN epics_headers ON " + epicsType.getTableName() + ".epics_header_id = epics_headers.id" - + " WHERE epics_headers.run = ?"); + + " WHERE epics_headers.run = ? ORDER BY epics_headers.sequence"); selectEpicsData.setInt(1, run); ResultSet resultSet = selectEpicsData.executeQuery(); while (resultSet.next()) { Modified: java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunDatabaseBuilder.java ============================================================================= --- java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunDatabaseBuilder.java (original) +++ java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunDatabaseBuilder.java Tue Jan 26 18:16:25 2016 @@ -11,12 +11,11 @@ import java.util.logging.Logger; import org.hps.conditions.database.ConnectionParameters; -import org.hps.conditions.database.DatabaseConditionsManager; import org.hps.conditions.run.RunSpreadsheet; import org.hps.conditions.run.RunSpreadsheet.RunData; import org.hps.record.AbstractRecordProcessor; import org.hps.record.daqconfig.DAQConfig; -import org.hps.record.daqconfig.DAQConfigEvioProcessor; +import org.hps.record.daqconfig.TriggerConfigEvioProcessor; import org.hps.record.epics.EpicsData; import org.hps.record.epics.EpicsRunProcessor; import org.hps.record.evio.EventTagConstant; @@ -28,16 +27,15 @@ import org.hps.record.scalers.ScalerUtilities; import org.hps.record.scalers.ScalerUtilities.LiveTimeIndex; import org.hps.record.scalers.ScalersEvioProcessor; -import org.hps.record.svt.SvtConfigData; -import org.hps.record.svt.SvtConfigEvioProcessor; import org.hps.record.triggerbank.AbstractIntData.IntBankDefinition; import org.hps.record.triggerbank.HeadBankData; import org.hps.record.triggerbank.TiTimeOffsetEvioProcessor; +import org.hps.record.triggerbank.TriggerConfigData; +import org.hps.record.triggerbank.TriggerConfigData.Crate; import org.jlab.coda.jevio.BaseStructure; import org.jlab.coda.jevio.EvioEvent; import org.jlab.coda.jevio.EvioException; import org.jlab.coda.jevio.EvioReader; -import org.lcsim.conditions.ConditionsManager.ConditionsNotFoundException; import org.srs.datacat.client.Client; import org.srs.datacat.model.DatasetModel; import org.srs.datacat.model.DatasetResultSetModel; @@ -119,12 +117,12 @@ /** * List of SVT configuration bank data. */ - private List<SvtConfigData> svtConfigs; + //private List<SvtConfigData> svtConfigs; /** * The trigger config object. */ - private TriggerConfig config; + private TriggerConfigData config; /** * Reload run data after insert for debugging. @@ -164,8 +162,8 @@ List<ScalerData> scalerData = runManager.getScalerData(); LOGGER.info("loaded " + scalerData.size() + " scaler records"); - List<SvtConfigData> svtConfigs = runManager.getSvtConfigData(); - LOGGER.info("loaded " + svtConfigs.size() + " SVT configurations"); + //List<SvtConfigData> svtConfigs = runManager.getSvtConfigData(); + //LOGGER.info("loaded " + svtConfigs.size() + " SVT configurations"); LOGGER.info("printing DAQ config ..."); DAQConfig daqConfig = runManager.getDAQConfig(); @@ -262,7 +260,7 @@ runFactory.getRunSummaryDao().insertRunSummary(runSummary); // Insert the EPICS data. - if (epicsData != null) { + if (epicsData != null && !epicsData.isEmpty()) { LOGGER.info("inserting EPICS data"); runFactory.getEpicsDataDao().insertEpicsData(epicsData); } else { @@ -278,19 +276,19 @@ } // Insert SVT config data. - if (this.svtConfigs != null) { - LOGGER.info("inserting SVT config"); - runFactory.getSvtConfigDao().insertSvtConfigs(svtConfigs, getRun()); - } else { - LOGGER.warning("no SVT config to insert"); - } + //if (this.svtConfigs != null) { + // LOGGER.info("inserting SVT config"); + // runFactory.getSvtConfigDao().insertSvtConfigs(svtConfigs, getRun()); + //} else { + // LOGGER.warning("no SVT config to insert"); + //} // Insert trigger config data. if (this.config != null) { LOGGER.info("inserting trigger config"); runFactory.getTriggerConfigDao().insertTriggerConfig(config, getRun()); } else { - LOGGER.warning("no trigger config to inesrt"); + LOGGER.warning("no trigger config to insert"); } LOGGER.info("done inserting run " + getRun()); @@ -311,6 +309,7 @@ } else { LOGGER.info("no scaler data"); } + /* if (svtConfigs != null) { for (SvtConfigData config : svtConfigs) { try { @@ -322,8 +321,9 @@ } else { LOGGER.info("no SVT config"); } + */ if (config != null) { - for (Entry<Integer, String> entry : config.getData().entrySet()) { + for (Entry<Crate, String> entry : config.getData().entrySet()) { LOGGER.info("trigger config data " + entry.getKey() + " with timestamp " + config.getTimestamp() + " ..." + entry.getValue()); } } else { @@ -343,6 +343,7 @@ } // Initialize the conditions system because the DAQ config processor needs it. + /* try { DatabaseConditionsManager dbManager = DatabaseConditionsManager.getInstance(); DatabaseConditionsManager.getInstance().setDetector(detectorName, runSummary.getRun()); @@ -350,6 +351,7 @@ } catch (ConditionsNotFoundException e) { throw new RuntimeException(e); } + */ // List of processors to execute in the job. ArrayList<AbstractRecordProcessor<EvioEvent>> processors = new ArrayList<AbstractRecordProcessor<EvioEvent>>(); @@ -368,12 +370,12 @@ processors.add(tiProcessor); // Processor for getting DAQ config. - DAQConfigEvioProcessor daqProcessor = new DAQConfigEvioProcessor(); + TriggerConfigEvioProcessor daqProcessor = new TriggerConfigEvioProcessor(); processors.add(daqProcessor); // Processor for getting the SVT XML config. - SvtConfigEvioProcessor svtProcessor = new SvtConfigEvioProcessor(); - processors.add(svtProcessor); + //SvtConfigEvioProcessor svtProcessor = new SvtConfigEvioProcessor(); + //processors.add(svtProcessor); // Run the job using the EVIO loop. EvioLoop loop = new EvioLoop(); @@ -398,12 +400,10 @@ scalerData = scalersProcessor.getScalerData(); // Set SVT config data strings. - svtConfigs = svtProcessor.getSvtConfigs(); + //svtConfigs = svtProcessor.getSvtConfigs(); // Set trigger config object. - if (!daqProcessor.getTriggerConfigData().isEmpty()) { - config = new TriggerConfig(daqProcessor.getTriggerConfigData(), daqProcessor.getTimestamp()); - } + config = daqProcessor.getTriggerConfigData(); LOGGER.info("done processing EVIO files"); } @@ -558,6 +558,12 @@ return this; } + /** + * Set the datacat site. + * + * @param site the datacat site + * @return this object + */ RunDatabaseBuilder setSite(String site) { this.site = site; return this; @@ -734,16 +740,17 @@ private void updateLivetimes(ScalersEvioProcessor scalersProcessor) { LOGGER.fine("updating livetime calculations"); ScalerData scalers = scalersProcessor.getCurrentScalerData(); - if (scalers == null) { - throw new IllegalStateException("No scaler data was found by the EVIO processor."); - } - double[] livetimes = ScalerUtilities.getLiveTimes(scalers); - runSummary.setLivetimeClock(livetimes[LiveTimeIndex.CLOCK.ordinal()]); - runSummary.setLivetimeFcupTdc(livetimes[LiveTimeIndex.FCUP_TDC.ordinal()]); - runSummary.setLivetimeFcupTrg(livetimes[LiveTimeIndex.FCUP_TRG.ordinal()]); - LOGGER.info("clock livetime = " + runSummary.getLivetimeClock()); - LOGGER.info("fcup tdc livetime = " + runSummary.getLivetimeFcupTdc()); - LOGGER.info("fcup trg livetime = " + runSummary.getLivetimeFcupTrg()); + if (scalers != null) { + double[] livetimes = ScalerUtilities.getLiveTimes(scalers); + runSummary.setLivetimeClock(livetimes[LiveTimeIndex.CLOCK.ordinal()]); + runSummary.setLivetimeFcupTdc(livetimes[LiveTimeIndex.FCUP_TDC.ordinal()]); + runSummary.setLivetimeFcupTrg(livetimes[LiveTimeIndex.FCUP_TRG.ordinal()]); + LOGGER.info("clock livetime = " + runSummary.getLivetimeClock()); + LOGGER.info("fcup tdc livetime = " + runSummary.getLivetimeFcupTdc()); + LOGGER.info("fcup trg livetime = " + runSummary.getLivetimeFcupTrg()); + } else { + LOGGER.warning("Could not calculate livetimes; no scaler data was found by the EVIO processor."); + } } /** Modified: java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunManager.java ============================================================================= --- java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunManager.java (original) +++ java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunManager.java Tue Jan 26 18:16:25 2016 @@ -10,6 +10,7 @@ import org.hps.record.epics.EpicsData; import org.hps.record.scalers.ScalerData; import org.hps.record.svt.SvtConfigData; +import org.hps.record.triggerbank.TriggerConfigData; import org.lcsim.conditions.ConditionsEvent; import org.lcsim.conditions.ConditionsListener; @@ -220,7 +221,7 @@ */ public DAQConfig getDAQConfig() { this.checkRunNumber(); - TriggerConfig config = factory.getTriggerConfigDao().getTriggerConfig(run); + TriggerConfigData config = factory.getTriggerConfigDao().getTriggerConfig(run); return config.loadDAQConfig(run); } Modified: java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunSummaryDaoImpl.java ============================================================================= --- java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunSummaryDaoImpl.java (original) +++ java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/RunSummaryDaoImpl.java Tue Jan 26 18:16:25 2016 @@ -51,13 +51,6 @@ RunSummaryDaoImpl(final Connection connection) { if (connection == null) { throw new IllegalArgumentException("The connection is null."); - } - try { - if (connection.isClosed()) { - throw new IllegalArgumentException("The connection is closed."); - } - } catch (SQLException e) { - throw new RuntimeException(e); } this.connection = connection; } Modified: java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/ScalerDataDaoImpl.java ============================================================================= --- java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/ScalerDataDaoImpl.java (original) +++ java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/ScalerDataDaoImpl.java Tue Jan 26 18:16:25 2016 @@ -96,7 +96,8 @@ PreparedStatement selectScalers = null; final List<ScalerData> scalerDataList = new ArrayList<ScalerData>(); try { - selectScalers = this.connection.prepareStatement("SELECT * FROM scalers WHERE run = ? ORDER BY event"); + selectScalers = this.connection.prepareStatement("SELECT * FROM sc" + + "alers WHERE run = ? ORDER BY event"); selectScalers.setInt(1, run); final ResultSet resultSet = selectScalers.executeQuery(); while (resultSet.next()) { Modified: java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/TriggerConfigDao.java ============================================================================= --- java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/TriggerConfigDao.java (original) +++ java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/TriggerConfigDao.java Tue Jan 26 18:16:25 2016 @@ -1,7 +1,9 @@ package org.hps.run.database; +import org.hps.record.triggerbank.TriggerConfigData; + /** - * Database interface for getting raw trigger config data. + * Database interface for getting raw trigger config data and inserting into run db. * * @author Jeremy McCormick, SLAC */ @@ -13,7 +15,7 @@ * @param run the run number * @return the trigger config */ - TriggerConfig getTriggerConfig(int run); + TriggerConfigData getTriggerConfig(int run); /** * Insert a trigger config. @@ -21,7 +23,7 @@ * @param config the trigger config * @param run the run number */ - void insertTriggerConfig(TriggerConfig config, int run); + void insertTriggerConfig(TriggerConfigData config, int run); /** * Delete a trigger config by run. Modified: java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/TriggerConfigDaoImpl.java ============================================================================= --- java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/TriggerConfigDaoImpl.java (original) +++ java/branches/jeremy-dev/run-database/src/main/java/org/hps/run/database/TriggerConfigDaoImpl.java Tue Jan 26 18:16:25 2016 @@ -7,6 +7,9 @@ import java.sql.SQLException; import java.util.LinkedHashMap; import java.util.Map; + +import org.hps.record.triggerbank.TriggerConfigData; +import org.hps.record.triggerbank.TriggerConfigData.Crate; final class TriggerConfigDaoImpl implements TriggerConfigDao { @@ -37,7 +40,7 @@ @Override - public void insertTriggerConfig(TriggerConfig config, int run) { + public void insertTriggerConfig(TriggerConfigData config, int run) { if (!config.isValid()) { throw new RuntimeException("The trigger config is not valid."); } @@ -46,14 +49,14 @@ preparedStatement = connection.prepareStatement(INSERT); preparedStatement.setInt(1, run); preparedStatement.setInt(2, config.getTimestamp()); - Map<Integer, String> data = config.getData(); - if (data.size() != TriggerConfig.DATA_LENGTH) { + Map<Crate, String> data = config.getData(); + if (data.size() != TriggerConfigData.Crate.values().length) { throw new IllegalArgumentException("The trigger config data has the wrong length."); } - preparedStatement.setBytes(3, data.get(TriggerConfig.CONFIG1).getBytes()); - preparedStatement.setBytes(4, data.get(TriggerConfig.CONFIG2).getBytes()); - preparedStatement.setBytes(5, data.get(TriggerConfig.CONFIG3).getBytes()); - preparedStatement.setBytes(6, data.get(TriggerConfig.CONFIG4).getBytes()); + preparedStatement.setBytes(3, data.get(TriggerConfigData.Crate.CONFIG1).getBytes()); + preparedStatement.setBytes(4, data.get(TriggerConfigData.Crate.CONFIG2).getBytes()); + preparedStatement.setBytes(5, data.get(TriggerConfigData.Crate.CONFIG3).getBytes()); + preparedStatement.setBytes(6, data.get(TriggerConfigData.Crate.CONFIG4).getBytes()); preparedStatement.executeUpdate(); } catch (SQLException e) { throw new RuntimeException(e); @@ -87,33 +90,33 @@ } @Override - public TriggerConfig getTriggerConfig(int run) { + public TriggerConfigData getTriggerConfig(int run) { PreparedStatement preparedStatement = null; - TriggerConfig config = null; + TriggerConfigData config = null; try { preparedStatement = connection.prepareStatement(SELECT); preparedStatement.setInt(1, run); ResultSet resultSet = preparedStatement.executeQuery(); if (resultSet.next()) { - Map<Integer, String> data = new LinkedHashMap<Integer, String>(); + Map<Crate, String> data = new LinkedHashMap<Crate, String>(); int timestamp = resultSet.getInt("timestamp"); Clob clob = resultSet.getClob("config1"); if (clob != null) { - data.put(TriggerConfig.CONFIG1, clob.getSubString(1, (int) clob.length())); + data.put(TriggerConfigData.Crate.CONFIG1, clob.getSubString(1, (int) clob.length())); } clob = resultSet.getClob("config2"); if (clob != null) { - data.put(TriggerConfig.CONFIG2, clob.getSubString(1, (int) clob.length())); + data.put(TriggerConfigData.Crate.CONFIG2, clob.getSubString(1, (int) clob.length())); } clob = resultSet.getClob("config3"); if (clob != null) { - data.put(TriggerConfig.CONFIG3, clob.getSubString(1, (int) clob.length())); + data.put(TriggerConfigData.Crate.CONFIG3, clob.getSubString(1, (int) clob.length())); } clob = resultSet.getClob("config4"); if (clob != null) { - data.put(TriggerConfig.CONFIG4, clob.getSubString(1, (int) clob.length())); + data.put(TriggerConfigData.Crate.CONFIG4, clob.getSubString(1, (int) clob.length())); } - config = new TriggerConfig(data, timestamp); + config = new TriggerConfigData(data, timestamp); } } catch (SQLException e) { throw new RuntimeException(e); Modified: java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim ============================================================================= --- java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim (original) +++ java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon.lcsim Tue Jan 26 18:16:25 2016 @@ -15,43 +15,53 @@ <driver name="FinalStateMonitoring"/> <driver name="V0Monitoring"/> <driver name="TridentMonitoring"/> -<!-- Singles0 --> + <driver name="TrackingMonitoringGBL"/> + <driver name="FinalStateMonitoringGBL"/> + <driver name="V0MonitoringGBL"/> + <driver name="TridentMonitoringGBL"/> + <!-- Singles0 --> <driver name="EcalMonitoringSingles0"/> -<!-- <driver name="SVTMonitoringSingles0"/> --> <driver name="TrackingMonitoringSingles0"/> + <driver name="TrackingMonitoringGBLSingles0"/> <driver name="TrackingResidualsSingles0"/> <driver name="FinalStateMonitoringSingles0"/> <driver name="V0MonitoringSingles0"/> <driver name="TridentMonitoringSingles0"/> -<!-- Singles1 --> + <!-- Singles1 --> <driver name="EcalMonitoringSingles1"/> - <!-- <driver name="SVTMonitoringSingles1"/> --> <driver name="TrackingMonitoringSingles1"/> + <driver name="TrackingMonitoringGBLSingles1"/> <driver name="TrackingResidualsSingles1"/> <driver name="FinalStateMonitoringSingles1"/> <driver name="V0MonitoringSingles1"/> <driver name="TridentMonitoringSingles1"/> -<!-- Pairs0 --> + <driver name="FinalStateMonitoringGBLSingles1"/> + <driver name="V0MonitoringGBLSingles1"/> + <driver name="TridentMonitoringGBLSingles1"/> + <!-- Pairs0 --> <driver name="EcalMonitoringPairs0"/> - <!-- <driver name="SVTMonitoringPairs0"/> --> <driver name="TrackingMonitoringPairs0"/> + <driver name="TrackingMonitoringGBLPairs0"/> <driver name="TrackingResidualsPairs0"/> <driver name="FinalStateMonitoringPairs0"/> <driver name="V0MonitoringPairs0"/> <driver name="TridentMonitoringPairs0"/> -<!-- Pairs1 --> + <!-- Pairs1 --> <driver name="EcalMonitoringPairs1"/> - <!-- <driver name="SVTMonitoringPairs1"/> --> <driver name="TrackingMonitoringPairs1"/> + <driver name="TrackingMonitoringGBLPairs1"/> <driver name="TrackingResidualsPairs1"/> - <driver name="FinalStateMonitoringPairs1"/> + <driver name="FinalStateMonitoringPairs1"/> <driver name="V0MonitoringPairs1"/> - <driver name="TridentMonitoringPairs1"/> + <driver name="TridentMonitoringPairs1"/> + <driver name="FinalStateMonitoringGBLPairs1"/> + <driver name="V0MonitoringGBLPairs1"/> + <driver name="TridentMonitoringGBLPairs1"/> + <!-- --> <driver name="AidaSaveDriver"/> <driver name="CleanupDriver"/> </execute> <drivers> - <!-- <driver name="DQMDatabaseDriver" type="org.hps.analysis.dataquality.DQMDatabaseDriver"/> --> <driver name="EventMarkerDriver" type="org.lcsim.job.EventMarkerDriver"> <eventInterval>1000</eventInterval> </driver> @@ -59,10 +69,10 @@ <readoutCollections>SVTRawTrackerHits</readoutCollections> </driver> <driver name="AidaSaveDriver" type="org.lcsim.job.AidaSaveDriver"> - <outputFileName>${outputFile}.root</outputFileName> - </driver> - -<!-- all triggers --> + <outputFileName>${outputFile}</outputFileName> + </driver> + + <!-- all triggers --> <driver name="EcalMonitoring" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>all</triggerType> </driver> @@ -70,9 +80,9 @@ <triggerType>all</triggerType> </driver> <driver name="TrackingMonitoring" type="org.hps.analysis.dataquality.TrackingMonitoring"> - <overwriteDB>false</overwriteDB> - <triggerType>all</triggerType> - </driver> + <triggerType>all</triggerType> + </driver> + <driver name="TrackingResiduals" type="org.hps.analysis.dataquality.TrackingResiduals"> <triggerType>all</triggerType> </driver> @@ -80,21 +90,40 @@ <triggerType>all</triggerType> </driver> <driver name="V0Monitoring" type="org.hps.analysis.dataquality.V0Monitoring"> - <triggerType>all</triggerType> + <triggerType>all</triggerType> </driver> <driver name="TridentMonitoring" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>all</triggerType> </driver> - -<!-- singles0 triggers --> + <driver name="TrackingMonitoringGBL" type="org.hps.analysis.dataquality.TrackingMonitoring"> + <trackCollectionName>GBLTracks</trackCollectionName> + <triggerType>all</triggerType> + </driver> + <driver name="FinalStateMonitoringGBL" type="org.hps.analysis.dataquality.FinalStateMonitoring"> + <triggerType>all</triggerType> + <isGBL>true</isGBL> + </driver> + <driver name="V0MonitoringGBL" type="org.hps.analysis.dataquality.V0Monitoring"> + <triggerType>all</triggerType> + <isGBL>true</isGBL> + </driver> + <driver name="TridentMonitoringGBL" type="org.hps.analysis.dataquality.TridentMonitoring"> + <triggerType>all</triggerType> + <isGBL>true</isGBL> + </driver> + + <!-- singles0 triggers --> <driver name="EcalMonitoringSingles0" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>singles0</triggerType> </driver> <driver name="SVTMonitoringSingles0" type="org.hps.analysis.dataquality.SvtMonitoring"> <triggerType>singles0</triggerType> </driver> + <driver name="TrackingMonitoringGBLSingles0" type="org.hps.analysis.dataquality.TrackingMonitoring"> + <trackCollectionName>GBLTracks</trackCollectionName> + <triggerType>singles0</triggerType> + </driver> <driver name="TrackingMonitoringSingles0" type="org.hps.analysis.dataquality.TrackingMonitoring"> - <overwriteDB>false</overwriteDB> <triggerType>singles0</triggerType> </driver> <driver name="TrackingResidualsSingles0" type="org.hps.analysis.dataquality.TrackingResiduals"> @@ -104,21 +133,24 @@ <triggerType>singles0</triggerType> </driver> <driver name="V0MonitoringSingles0" type="org.hps.analysis.dataquality.V0Monitoring"> - <triggerType>singles0</triggerType> + <triggerType>singles0</triggerType> </driver> <driver name="TridentMonitoringSingles0" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>singles0</triggerType> </driver> -<!-- singles1 triggers --> + <!-- singles1 triggers --> <driver name="EcalMonitoringSingles1" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>singles1</triggerType> </driver> <driver name="SVTMonitoringSingles1" type="org.hps.analysis.dataquality.SvtMonitoring"> <triggerType>singles1</triggerType> - </driver> - <driver name="TrackingMonitoringSingles1" type="org.hps.analysis.dataquality.TrackingMonitoring"> - <overwriteDB>false</overwriteDB> + </driver> + <driver name="TrackingMonitoringSingles1" type="org.hps.analysis.dataquality.TrackingMonitoring"> + <triggerType>singles1</triggerType> + </driver> + <driver name="TrackingMonitoringGBLSingles1" type="org.hps.analysis.dataquality.TrackingMonitoring"> + <trackCollectionName>GBLTracks</trackCollectionName> <triggerType>singles1</triggerType> </driver> <driver name="TrackingResidualsSingles1" type="org.hps.analysis.dataquality.TrackingResiduals"> @@ -127,22 +159,37 @@ <driver name="FinalStateMonitoringSingles1" type="org.hps.analysis.dataquality.FinalStateMonitoring"> <triggerType>singles1</triggerType> </driver> - <driver name="V0MonitoringSingles1" type="org.hps.analysis.dataquality.V0Monitoring"> - <triggerType>singles1</triggerType> + <driver name="V0MonitoringSingles1" type="org.hps.analysis.dataquality.V0Monitoring"> + <triggerType>singles1</triggerType> </driver> <driver name="TridentMonitoringSingles1" type="org.hps.analysis.dataquality.TridentMonitoring"> - <triggerType>singles1</triggerType> - </driver> - -<!-- pairs0 triggers --> + <triggerType>singles1</triggerType> + </driver> + <driver name="FinalStateMonitoringGBLSingles1" type="org.hps.analysis.dataquality.FinalStateMonitoring"> + <triggerType>singles1</triggerType> + <isGBL>true</isGBL> + </driver> + <driver name="V0MonitoringGBLSingles1" type="org.hps.analysis.dataquality.V0Monitoring"> + <triggerType>singles1</triggerType> + <isGBL>true</isGBL> + </driver> + <driver name="TridentMonitoringGBLSingles1" type="org.hps.analysis.dataquality.TridentMonitoring"> + <triggerType>singles1</triggerType> + <isGBL>true</isGBL> + </driver> + + <!-- pairs0 triggers --> <driver name="EcalMonitoringPairs0" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>pairs0</triggerType> </driver> <driver name="SVTMonitoringPairs0" type="org.hps.analysis.dataquality.SvtMonitoring"> <triggerType>pairs0</triggerType> </driver> - <driver name="TrackingMonitoringPairs0" type="org.hps.analysis.dataquality.TrackingMonitoring"> - <overwriteDB>false</overwriteDB> + <driver name="TrackingMonitoringPairs0" type="org.hps.analysis.dataquality.TrackingMonitoring"> + <triggerType>pairs0</triggerType> + </driver> + <driver name="TrackingMonitoringGBLPairs0" type="org.hps.analysis.dataquality.TrackingMonitoring"> + <trackCollectionName>GBLTracks</trackCollectionName> <triggerType>pairs0</triggerType> </driver> <driver name="TrackingResidualsPairs0" type="org.hps.analysis.dataquality.TrackingResiduals"> @@ -152,23 +199,25 @@ <triggerType>pairs0</triggerType> </driver> <driver name="V0MonitoringPairs0" type="org.hps.analysis.dataquality.V0Monitoring"> - <triggerType>pairs0</triggerType> + <triggerType>pairs0</triggerType> </driver> <driver name="TridentMonitoringPairs0" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>pairs0</triggerType> </driver> - -<!-- pairs1 triggers --> + <!-- pairs1 triggers --> <driver name="EcalMonitoringPairs1" type="org.hps.analysis.dataquality.EcalMonitoring"> <triggerType>pairs1</triggerType> </driver> <driver name="SVTMonitoringPairs1" type="org.hps.analysis.dataquality.SvtMonitoring"> <triggerType>pairs1</triggerType> </driver> - <driver name="TrackingMonitoringPairs1" type="org.hps.analysis.dataquality.TrackingMonitoring"> - <overwriteDB>false</overwriteDB> + <driver name="TrackingMonitoringPairs1" type="org.hps.analysis.dataquality.TrackingMonitoring"> + <triggerType>pairs1</triggerType> + </driver> + <driver name="TrackingMonitoringGBLPairs1" type="org.hps.analysis.dataquality.TrackingMonitoring"> + <trackCollectionName>GBLTracks</trackCollectionName> <triggerType>pairs1</triggerType> </driver> <driver name="TrackingResidualsPairs1" type="org.hps.analysis.dataquality.TrackingResiduals"> @@ -178,11 +227,24 @@ <triggerType>pairs1</triggerType> </driver> <driver name="V0MonitoringPairs1" type="org.hps.analysis.dataquality.V0Monitoring"> - <triggerType>pairs1</triggerType> + <triggerType>pairs1</triggerType> </driver> <driver name="TridentMonitoringPairs1" type="org.hps.analysis.dataquality.TridentMonitoring"> <triggerType>pairs1</triggerType> </driver> + <driver name="FinalStateMonitoringGBLPairs1" type="org.hps.analysis.dataquality.FinalStateMonitoring"> + <triggerType>pairs1</triggerType> + <isGBL>true</isGBL> + </driver> + <driver name="V0MonitoringGBLPairs1" type="org.hps.analysis.dataquality.V0Monitoring"> + <triggerType>pairs1</triggerType> + <isGBL>true</isGBL> + </driver> + <driver name="TridentMonitoringGBLPairs1" type="org.hps.analysis.dataquality.TridentMonitoring"> + <triggerType>pairs1</triggerType> + <isGBL>true</isGBL> + </driver> + <driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver"/> </drivers> Modified: java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon_Pass2.lcsim ============================================================================= --- java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon_Pass2.lcsim (original) +++ java/branches/jeremy-dev/steering-files/src/main/resources/org/hps/steering/production/DataQualityRecon_Pass2.lcsim Tue Jan 26 18:16:25 2016 @@ -69,7 +69,7 @@ <readoutCollections>SVTRawTrackerHits</readoutCollections> </driver> <driver name="AidaSaveDriver" type="org.lcsim.job.AidaSaveDriver"> - <outputFileName>${outputFile}.root</outputFileName> + <outputFileName>${outputFile}</outputFileName> </driver> <!-- all triggers -->