Author: [log in to unmask] Date: Thu Jul 30 18:32:49 2015 New Revision: 3313 Log: motor reader Added: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtMotorMyaDataReader.java - copied, changed from r3310, java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBiasMyaDataReader.java Modified: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBiasMyaDataReader.java java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SampleZeroHVBiasChecker.java Modified: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBiasMyaDataReader.java ============================================================================= --- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBiasMyaDataReader.java (original) +++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBiasMyaDataReader.java Thu Jul 30 18:32:49 2015 @@ -16,12 +16,6 @@ import java.util.TimeZone; import java.util.logging.Level; import java.util.logging.Logger; -import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.HelpFormatter; -import org.apache.commons.cli.Option; -import org.apache.commons.cli.Options; -import org.apache.commons.cli.PosixParser; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVParser; import org.apache.commons.csv.CSVRecord; @@ -31,34 +25,19 @@ public static void main(String[] args) { - Options options = new Options(); - options.addOption(new Option("q", false, "quiet - don't print event contents")); - options.addOption(new Option("c", false, "print control events")); - options.addOption(new Option("s", false, "sequential read (not mem-mapped)")); - // Parse the command line options. if (args.length == 0) { System.out.println("SvtBiasMyaDataReader <myaData dump> <run time table - tab separated>"); - final HelpFormatter help = new HelpFormatter(); - help.printHelp(" ", options); System.exit(1); } - final CommandLineParser parser = new PosixParser(); - CommandLine cl = null; - try { - cl = parser.parse(options, args); - } catch (final org.apache.commons.cli.ParseException e) { - throw new RuntimeException("Problem parsing command line options.", e); - } - - if (cl.getArgs().length != 2) { + if (args.length != 2) { throw new RuntimeException("Missing myData dump or run time file."); } - List<SvtBiasMyaRange> ranges = SvtBiasMyaDataReader.readMyaData(new File(cl.getArgs()[0]), 178.0, 2000, true); - - List<RunData> runData = SvtBiasMyaDataReader.readRunTable(new File(cl.getArgs()[1])); + List<SvtBiasMyaRange> ranges = SvtBiasMyaDataReader.readMyaData(new File(args[0]), 178.0, 2000, true); + + List<RunData> runData = SvtBiasMyaDataReader.readRunTable(new File(args[1])); List<SvtBiasRunRange> runRanges = findOverlappingRanges(runData, ranges); @@ -94,11 +73,6 @@ } } return runRanges; - } - -// private static final SimpleDateFormat DATE_FORMAT = new RunSpreadsheet.AnotherSimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - //private static final TimeZone timeZone = TimeZone.getTimeZone("EST"); - public SvtBiasMyaDataReader(double biasValueOn, int endMargin) { } public static List<SvtBiasMyaRange> readMyaData(File file, double biasValueOn, int endMargin, boolean discardHeader) { @@ -110,7 +84,7 @@ BufferedReader br = new BufferedReader(new FileReader(file)); String line; if (discardHeader) { - System.out.println(br.readLine()); //discard the first line + System.out.println("myaData header: " + br.readLine()); //discard the first line } SvtBiasMyaRange currentRange = null; while ((line = br.readLine()) != null) { Copied: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtMotorMyaDataReader.java (from r3310, java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBiasMyaDataReader.java) ============================================================================= --- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBiasMyaDataReader.java (original) +++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtMotorMyaDataReader.java Thu Jul 30 18:32:49 2015 @@ -2,80 +2,40 @@ import java.io.BufferedReader; import java.io.File; -import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.TimeZone; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.HelpFormatter; -import org.apache.commons.cli.Option; -import org.apache.commons.cli.Options; -import org.apache.commons.cli.PosixParser; -import org.apache.commons.csv.CSVFormat; -import org.apache.commons.csv.CSVParser; -import org.apache.commons.csv.CSVRecord; import org.hps.conditions.run.RunSpreadsheet.RunData; -public class SvtBiasMyaDataReader { +public class SvtMotorMyaDataReader { public static void main(String[] args) { - - Options options = new Options(); - options.addOption(new Option("q", false, "quiet - don't print event contents")); - options.addOption(new Option("c", false, "print control events")); - options.addOption(new Option("s", false, "sequential read (not mem-mapped)")); - - // Parse the command line options. - if (args.length == 0) { - System.out.println("SvtBiasMyaDataReader <myaData dump> <run time table - tab separated>"); - final HelpFormatter help = new HelpFormatter(); - help.printHelp(" ", options); - System.exit(1); - } - - final CommandLineParser parser = new PosixParser(); - CommandLine cl = null; - try { - cl = parser.parse(options, args); - } catch (final org.apache.commons.cli.ParseException e) { - throw new RuntimeException("Problem parsing command line options.", e); - } - - if (cl.getArgs().length != 2) { + if (args.length != 2) { throw new RuntimeException("Missing myData dump or run time file."); } - List<SvtBiasMyaRange> ranges = SvtBiasMyaDataReader.readMyaData(new File(cl.getArgs()[0]), 178.0, 2000, true); - - List<RunData> runData = SvtBiasMyaDataReader.readRunTable(new File(cl.getArgs()[1])); - - List<SvtBiasRunRange> runRanges = findOverlappingRanges(runData, ranges); - - for (SvtBiasRunRange runRange : runRanges) { + List<SvtPositionMyaRange> ranges = SvtMotorMyaDataReader.readMyaData(new File(args[0]), 1000, 10000); + List<RunData> runData = SvtBiasMyaDataReader.readRunTable(new File(args[1])); + List<SvtPositionRunRange> runRanges = findOverlappingRanges(runData, ranges); + for (SvtPositionRunRange runRange : runRanges) { System.out.println(runRange); } - } - public static List<SvtBiasRunRange> findOverlappingRanges(List<RunData> runList, List<SvtBiasMyaRange> ranges) { - List<SvtBiasRunRange> runRanges = new ArrayList<SvtBiasRunRange>(); + public static List<SvtPositionRunRange> findOverlappingRanges(List<RunData> runList, List<SvtPositionMyaRange> ranges) { + List<SvtPositionRunRange> runRanges = new ArrayList<SvtPositionRunRange>(); - Iterator<SvtBiasMyaRange> rangesIter = ranges.iterator(); - SvtBiasMyaRange nextRange = rangesIter.next(); + Iterator<SvtPositionMyaRange> rangesIter = ranges.iterator(); + SvtPositionMyaRange nextRange = rangesIter.next(); for (RunData run : runList) { - SvtBiasRunRange runRange = new SvtBiasRunRange(run); + SvtPositionRunRange runRange = new SvtPositionRunRange(run); while (nextRange.getEndDate().before(run.getStartDate()) && rangesIter.hasNext()) { nextRange = rangesIter.next(); } @@ -96,53 +56,39 @@ return runRanges; } -// private static final SimpleDateFormat DATE_FORMAT = new RunSpreadsheet.AnotherSimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - //private static final TimeZone timeZone = TimeZone.getTimeZone("EST"); - public SvtBiasMyaDataReader(double biasValueOn, int endMargin) { - } - - public static List<SvtBiasMyaRange> readMyaData(File file, double biasValueOn, int endMargin, boolean discardHeader) { + public static List<SvtPositionMyaRange> readMyaData(File file, int endMargin, double minDwellTime) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); dateFormat.setTimeZone(TimeZone.getTimeZone("America/New_York")); - List<SvtBiasMyaRange> ranges = new ArrayList<SvtBiasMyaRange>(); + List<SvtPositionMyaRange> ranges = new ArrayList<SvtPositionMyaRange>(); try { BufferedReader br = new BufferedReader(new FileReader(file)); String line; - if (discardHeader) { - System.out.println(br.readLine()); //discard the first line - } - SvtBiasMyaRange currentRange = null; + System.out.println("myaData header: " + br.readLine()); //discard the first line + SvtPositionMyaRange currentRange = null; + Date lastDate = null; while ((line = br.readLine()) != null) { String arr[] = line.split(" +"); - if (arr.length < 3) { + if (arr.length != 4) { throw new ParseException("this line is not correct.", 0); } - Date date = dateFormat.parse(arr[0] + " " + arr[1]); - Double[] values = new Double[arr.length - 2]; - for (int i = 2; i < arr.length; i++) { - if (arr[i].equals("<undefined>")) { - values[i - 2] = 0.0; //assume it's bad + Double[] values = new Double[2]; + for (int i = 0; i < 2; i++) { + if (arr[i + 2].equals("<undefined>")) { + values[i] = 0.0; //if no data, assume retracted } else { - values[i - 2] = Double.parseDouble(arr[i]); + values[i] = Double.parseDouble(arr[i + 2]); } } - double biasValue = Collections.min(Arrays.asList(values)); - if (biasValue > biasValueOn) { - if (currentRange == null) { - currentRange = new SvtBiasMyaRange(date, biasValue); -// System.out.format("bias on:\t%d %d %f %s\n", date.getTime(), values.length, biasValue, date.toString()); - } - } else { - if (currentRange != null) { - currentRange.setEndDate(new Date(date.getTime() - endMargin)); - ranges.add(currentRange); - currentRange = null; -// System.out.format("bias off:\t%d %d %f %s\n", date.getTime(), values.length, biasValue, date.toString()); - } + if (lastDate != null && currentRange != null && date.getTime() - lastDate.getTime() > minDwellTime) { + currentRange.setEndDate(new Date(date.getTime() - endMargin)); +// System.out.format("motors stopped:\t %s\n", currentRange.toString()); + ranges.add(currentRange); } + currentRange = new SvtPositionMyaRange(date, motorToAngleTop(values[0]), motorToAngleBottom(values[1])); + lastDate = date; } br.close(); @@ -155,53 +101,24 @@ return ranges; } - public static List<RunData> readRunTable(File file) { - List<CSVRecord> records = null; - List<RunData> data = new ArrayList<RunData>(); - try { - FileReader reader = new FileReader(file); - final CSVFormat format = CSVFormat.DEFAULT; - - final CSVParser parser; - parser = new CSVParser(reader, format); - - records = parser.getRecords(); - - // Remove first two rows of headers. - records.remove(0); - records.remove(0); - - parser.close(); - } catch (FileNotFoundException ex) { - Logger.getLogger(SvtBiasMyaDataReader.class.getName()).log(Level.SEVERE, null, ex); - } catch (IOException ex) { - Logger.getLogger(SvtBiasMyaDataReader.class.getName()).log(Level.SEVERE, null, ex); - } - - for (CSVRecord record : records) { - int runNum = Integer.parseInt(record.get(0)); - long startTime = Long.parseLong(record.get(7)) * 1000; - long endTime = Long.parseLong(record.get(8)) * 1000; - if (startTime != 0 && endTime != 0) { - data.add(new RunData(new Date(startTime), new Date(endTime), runNum)); - } - } - - return data; + private static double motorToAngleTop(double motor) { + return (17.821 - motor) / 832.714; } - public static class SvtBiasMyaRange { + private static double motorToAngleBottom(double motor) { + return (17.397 - motor) / 832.714; + } - private Date start; + public static class SvtPositionMyaRange { + + private final Date start; private Date end; - private double bias; + private final double top, bottom; - public SvtBiasMyaRange() { - } - - public SvtBiasMyaRange(Date start, double bias) { + public SvtPositionMyaRange(Date start, double top, double bottom) { this.start = start; - this.bias = bias; + this.top = top; + this.bottom = bottom; } public Date getEndDate() { @@ -218,24 +135,28 @@ @Override public String toString() { - return String.format("START: %s (%d), END: %s (%d), bias: %f, duration: %d", start.toString(), start.getTime(), end.toString(), end.getTime(), bias, end.getTime() - start.getTime()); + return String.format("START: %s (%d), END: %s (%d), top: %f, bottom: %f, duration: %d", start.toString(), start.getTime(), end.toString(), end.getTime(), top, bottom, end.getTime() - start.getTime()); } public boolean includes(Date date) { return !date.before(getStartDate()) && !date.after(getEndDate()); } - Object getValue() { - return bias; + double getTop() { + return top; + } + + double getBottom() { + return bottom; } } - public static final class SvtBiasRunRange { + public static final class SvtPositionRunRange { private RunData run; - private final List<SvtBiasMyaRange> ranges = new ArrayList<SvtBiasMyaRange>(); + private final List<SvtPositionMyaRange> ranges = new ArrayList<SvtPositionMyaRange>(); - public SvtBiasRunRange(RunData run) { + public SvtPositionRunRange(RunData run) { setRun(run); } @@ -247,16 +168,16 @@ this.run = run; } - public List<SvtBiasMyaRange> getRanges() { + public List<SvtPositionMyaRange> getRanges() { return ranges; } - public void addRange(SvtBiasMyaRange range) { + public void addRange(SvtPositionMyaRange range) { ranges.add(range); } public boolean includes(Date date) { - for (SvtBiasMyaRange r : ranges) { + for (SvtPositionMyaRange r : ranges) { if (date.after(r.getStartDate()) && date.before(r.getEndDate())) { return true; } @@ -268,7 +189,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("\nRun ").append(run.toString()).append(":"); - for (SvtBiasMyaRange range : ranges) { + for (SvtPositionMyaRange range : ranges) { sb.append("\n").append(range.toString()); } return sb.toString(); Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SampleZeroHVBiasChecker.java ============================================================================= --- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SampleZeroHVBiasChecker.java (original) +++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/drivers/svt/SampleZeroHVBiasChecker.java Thu Jul 30 18:32:49 2015 @@ -2,6 +2,7 @@ import hep.aida.IAnalysisFactory; import hep.aida.IHistogram1D; +import hep.aida.IHistogram2D; import hep.aida.IHistogramFactory; import hep.aida.IPlotter; import hep.aida.IPlotterFactory; @@ -19,15 +20,12 @@ import org.hps.conditions.api.ConditionsRecord.ConditionsRecordCollection; import org.hps.conditions.database.DatabaseConditionsManager; import org.hps.conditions.run.RunSpreadsheet; -import org.hps.conditions.run.RunSpreadsheet.RunMap; import org.hps.conditions.svt.SvtBiasConditionsLoader; import org.hps.conditions.svt.SvtBiasConstant; import org.hps.conditions.svt.SvtBiasConstant.SvtBiasConstantCollection; import org.hps.conditions.svt.SvtBiasMyaDataReader; import org.hps.conditions.svt.SvtBiasMyaDataReader.SvtBiasMyaRange; import org.hps.conditions.svt.SvtBiasMyaDataReader.SvtBiasRunRange; -import static org.hps.conditions.svt.SvtBiasMyaDataReader.findOverlappingRanges; -import org.hps.conditions.svt.SvtTimingConstants; import org.hps.recon.ecal.triggerbank.AbstractIntData; import org.hps.recon.ecal.triggerbank.HeadBankData; import org.hps.record.epics.EpicsData; @@ -66,6 +64,9 @@ private boolean useRunTableFormat = false; private boolean discardMyaDataHeader = false; private boolean debug = false; + private boolean dropSmallHitEvents = true; + private double eventNumRange = 1e6; + private int timeRange = 200; List<HpsSiSensor> sensors; private Map<HpsSiSensor, IHistogram1D> hists_rawadc; @@ -75,11 +76,19 @@ private final Map<HpsSiSensor, IHistogram1D> hists_hitCounts = new HashMap<HpsSiSensor, IHistogram1D>(); private final Map<HpsSiSensor, IHistogram1D> hists_hitCountsON = new HashMap<HpsSiSensor, IHistogram1D>(); private final Map<HpsSiSensor, IHistogram1D> hists_hitCountsOFF = new HashMap<HpsSiSensor, IHistogram1D>(); - private String rawTrackerHitCollectionName = "SVTRawTrackerHits"; - private String triggerBankCollectionName = "TriggerBank"; + private IHistogram1D allHitCount; + private IHistogram1D allHitCountON; + private IHistogram1D allHitCountOFF; + private IHistogram2D allHitCountVsNum; + private IHistogram2D numVsTime; + private IHistogram2D allHitCountVsTime; + private IHistogram2D biasVsTime; + private final String rawTrackerHitCollectionName = "SVTRawTrackerHits"; + private final String triggerBankCollectionName = "TriggerBank"; private static final String subdetectorName = "Tracker"; List<SvtBiasRunRange> runRanges; SvtBiasRunRange runRange = null; + private Date firstDate = null; private Date eventDate = null; private int eventCount = 0; FileWriter fWriter; @@ -91,6 +100,7 @@ private double epicsBiasValue = -1; private boolean hvOnEpics = false; private boolean hvOn = false; + private boolean hvOnConditions = false; private EpicsData epicsData = null; private int eventCountEpicsDisagree = 0; SvtBiasConstantCollection svtBiasConstants = null; @@ -123,6 +133,18 @@ this.debug = debug; } + public void setDropSmallHitEvents(boolean dropSmallHitEvents) { + this.dropSmallHitEvents = dropSmallHitEvents; + } + + public void setEventNumRange(double eventNumRange) { + this.eventNumRange = eventNumRange; + } + + public void setTimeRange(int timeRange) { + this.timeRange = timeRange; + } + @Override protected void detectorChanged(Detector detector) { @@ -135,7 +157,15 @@ logger.info("col_svt_bias_constants name collection wasn't found"); } -// svtBiasConstants = DatabaseConditionsManager.getInstance().getCachedConditions(SvtBiasConstant.SvtBiasConstantCollection.class, "svt_bias").getCachedData(); +// ConditionsRecordCollection col_svt_align_constants = DatabaseConditionsManager.getInstance().findConditionsRecords("svt_alignments"); +// if (col_svt_align_constants == null) { +// logger.info("svt_alignments collection wasn't found"); +// } +// col_svt_align_constants. + svtBiasConstants = DatabaseConditionsManager.getInstance().getCachedConditions(SvtBiasConstant.SvtBiasConstantCollection.class, "svt_bias_constants").getCachedData(); + System.out.println(svtBiasConstants.size()); + +// timingConstants = DatabaseConditionsManager.getInstance().getCachedConditions(SvtTimingConstants.SvtTimingConstantsCollection.class, "svt_timing_constants").getCachedData().get(0); try { fWriter = new FileWriter(fileName); } catch (IOException e) { @@ -162,6 +192,12 @@ plotter3.createRegions(6, 6); plotter4 = plotterFactory.create("Pedestal subtracted zero Sample ADC MaxSample>4 OFF"); plotter4.createRegions(6, 6); + + allHitCount = AIDA.defaultInstance().histogram1D("all hit count", 200, 0, 200); + allHitCountON = AIDA.defaultInstance().histogram1D("all hit count ON", 200, 0, 200); + allHitCountOFF = AIDA.defaultInstance().histogram1D("all hit count OFF", 200, 0, 200); + allHitCountVsTime = AIDA.defaultInstance().histogram2D("all hit count vs. elapsed time", timeRange, 0, timeRange, 200, 0, 200); + biasVsTime = AIDA.defaultInstance().histogram2D("bias vs. elapsed time", timeRange, 0, timeRange, 200, 0, 200); for (HpsSiSensor sensor : sensors) { AIDA aida = AIDA.defaultInstance(); @@ -221,6 +257,13 @@ @Override public void process(EventHeader event) { + if (allHitCountVsNum == null) { + allHitCountVsNum = AIDA.defaultInstance().histogram2D("all hit count vs. event num", 1000, event.getEventNumber(), event.getEventNumber() + eventNumRange, 50, 0, 200); + } + if (numVsTime == null) { + numVsTime = AIDA.defaultInstance().histogram2D("event num vs. elapsed time", timeRange, 0, timeRange, 1000, event.getEventNumber(), event.getEventNumber() + eventNumRange); + } + // Read EPICS data if available epicsData = EpicsData.read(event); @@ -244,10 +287,31 @@ // It comes in on block level so not every event has it, use the latest one throughout a block Date newEventDate = getEventTimeStamp(event); if (newEventDate != null) { + if (firstDate == null) { + firstDate = newEventDate; + } + hvOnConditions = svtBiasConstants.find(newEventDate) != null; if (eventDate == null || !eventDate.equals(newEventDate)) { System.out.format("event %d with new timestamp %s\n", event.getEventNumber(), newEventDate.toString()); + System.out.println("hvOn is " + (hvOn ? "ON" : "OFF") + " hvOnEpics " + (hvOnEpics ? "ON" : "OFF") + " hvOnConditions " + (hvOnConditions ? "ON" : "OFF") + " for Run " + event.getRunNumber() + " Event " + event.getEventNumber() + " date " + newEventDate.toString() + " epoch " + newEventDate.getTime()); + // check what the DB has + if (svtBiasConstants != null) { + logger.info("there are " + svtBiasConstants.size() + " constants to search"); + for (SvtBiasConstant constant : svtBiasConstants) { + logger.info("start " + constant.getStart().toString() + " end " + constant.getEnd() + " value " + constant.getValue()); + } + + SvtBiasConstant constant = svtBiasConstants.find(newEventDate); + + logger.info(constant == null ? "No constant found!" : ("Found constant " + "start " + constant.getStart().toString() + " end " + constant.getEnd() + " value " + constant.getValue())); + + } } eventDate = newEventDate; + } + if (eventDate != null) { + numVsTime.fill((eventDate.getTime() - firstDate.getTime()) / 1000, event.getEventNumber()); + biasVsTime.fill((eventDate.getTime() - firstDate.getTime()) / 1000, epicsBiasValue); } // only do this analysis where there is a date availabe. @@ -258,19 +322,6 @@ eventCount++; - // check what the DB has - if (svtBiasConstants != null) { - logger.info("there are " + svtBiasConstants.size() + " constants to search"); - for (SvtBiasConstant constant : svtBiasConstants) { - logger.info("start " + constant.getStart().toString() + " end " + constant.getEnd() + " value " + constant.getValue()); - } - - SvtBiasConstant constant = svtBiasConstants.find(eventDate); - - logger.info(constant == null ? "No constant found!" : ("Found constant " + "start " + constant.getStart().toString() + " end " + constant.getEnd() + " value " + constant.getValue())); - - } - if (runRange == null) { for (SvtBiasRunRange r : runRanges) { if (r.getRun().getRun() == event.getRunNumber()) { @@ -283,7 +334,9 @@ // print the cases where epics and run range do not agree if (hvOn != hvOnEpics && epicsBiasValue > 0.) { - logger.warning("hvOn is " + (hvOn ? "ON" : "OFF") + " hvOnEpics " + (hvOnEpics ? "ON" : "OFF") + " for Run " + event.getRunNumber() + " Event " + event.getEventNumber() + " date " + eventDate.toString() + " epoch " + eventDate.getTime() + " hvOn " + (hvOn ? "YES" : "NO") + " hvOnEpics " + (hvOnEpics ? "YES" : "NO")); + if (debug) { + logger.warning("hvOn is " + (hvOn ? "ON" : "OFF") + " hvOnEpics " + (hvOnEpics ? "ON" : "OFF") + " for Run " + event.getRunNumber() + " Event " + event.getEventNumber() + " date " + eventDate.toString() + " epoch " + eventDate.getTime() + " hvOn " + (hvOn ? "YES" : "NO") + " hvOnEpics " + (hvOnEpics ? "YES" : "NO")); + } pWriter.println("Run " + event.getRunNumber() + " Event " + event.getEventNumber() + " date " + eventDate.toString() + " epoch " + eventDate.getTime() + " hvOn " + (hvOn ? "YES" : "NO")); eventCountEpicsDisagree++; } @@ -332,6 +385,20 @@ } } + allHitCount.fill(rawTrackerHits.size()); + +// if (dropSmallHitEvents && SvtPlotUtils.countSmallHits(rawTrackerHits) > 3) { +// return; +// } + if (hvOn) { + allHitCountON.fill(rawTrackerHits.size()); + } else { + allHitCountOFF.fill(rawTrackerHits.size()); + } + allHitCountVsNum.fill(event.getEventNumber(), rawTrackerHits.size()); + if (eventDate != null) { + allHitCountVsTime.fill((eventDate.getTime() - firstDate.getTime()) / 1000, rawTrackerHits.size()); + } for (HpsSiSensor sensor : sensors) { Integer count = hitCountMap.get(sensor); if (count == null) {