Print

Print


Author: [log in to unmask]
Date: Mon Aug  3 17:39:28 2015
New Revision: 3329

Log:
add event flags for SVT

Added:
    java/trunk/evio/src/main/java/org/hps/evio/SvtEventFlagger.java
Modified:
    java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtMotorPosition.java
    java/trunk/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java
    java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.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/SvtMotorPosition.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtMotorPosition.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtMotorPosition.java	Mon Aug  3 17:39:28 2015
@@ -1,5 +1,6 @@
 package org.hps.conditions.svt;
 
+import java.util.Date;
 import org.hps.conditions.api.BaseConditionsObject;
 import org.hps.conditions.api.BaseConditionsObjectCollection;
 import org.hps.conditions.database.Field;
@@ -7,21 +8,38 @@
 
 /**
  * Represents the SVT motor position as a time-based condition.
- * 
+ *
  * @author Jeremy McCormick, SLAC
  */
-@Table(names  = "svt_motor_positions")
+@Table(names = "svt_motor_positions")
 public class SvtMotorPosition extends BaseConditionsObject {
-    
+
     /**
      * Collection implementation.
      */
-    public static class SvtMotorPositionCollection extends BaseConditionsObjectCollection<SvtMotorPosition> {        
+    public static class SvtMotorPositionCollection extends BaseConditionsObjectCollection<SvtMotorPosition> {
+
+        /**
+         * Find position constant by date.
+         *
+         * @param date the search date
+         * @return the constant containing the date or <code>null</code>
+         * otherwise.
+         *
+         */
+        public SvtMotorPosition find(Date date) {
+            for (SvtMotorPosition constant : this) {
+                if (date.getTime() >= constant.getStart() && date.getTime() <= constant.getEnd()) {
+                    return constant;
+                }
+            }
+            return null;
+        }
     }
-    
+
     /**
-     * The start date as a Unix timestamp in milliseconds (GMT). 
-     * 
+     * The start date as a Unix timestamp in milliseconds (GMT).
+     *
      * @return the start date as a Unix timestamp
      */
     @Field(names = {"start"})
@@ -30,8 +48,8 @@
     }
 
     /**
-     * The end date as a Unix timestamp in milliseconds (GMT). 
-     * 
+     * The end date as a Unix timestamp in milliseconds (GMT).
+     *
      * @return the end date as a Unix timestamp
      */
     @Field(names = {"end"})
@@ -41,17 +59,17 @@
 
     /**
      * The top position.
-     *  
+     *
      * @return the top motor position
      */
     @Field(names = {"top"})
     public Double getTop() {
         return getFieldValue("top");
     }
-    
+
     /**
      * The bottom position.
-     * 
+     *
      * @return the bottom motor position
      */
     @Field(names = {"bottom"})

Modified: java/trunk/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java
 =============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java	(original)
+++ java/trunk/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java	Mon Aug  3 17:39:28 2015
@@ -11,6 +11,7 @@
 import org.apache.commons.cli.PosixParser;
 import org.hps.evio.LCSimTestRunEventBuilder.IntBankDefinition;
 import org.hps.recon.ecal.triggerbank.HeadBankData;
+import org.hps.recon.ecal.triggerbank.TIData;
 import org.hps.record.evio.EvioEventUtilities;
 import org.jlab.coda.jevio.BaseStructure;
 import org.jlab.coda.jevio.CompositeData;
@@ -50,6 +51,7 @@
         boolean printTimestamps = cl.hasOption("t");
 
         IntBankDefinition headBankDefinition = new LCSimTestRunEventBuilder.IntBankDefinition(HeadBankData.class, new int[]{0x2e, 0xe10f});
+        IntBankDefinition tiBankDefinition = new LCSimTestRunEventBuilder.IntBankDefinition(TIData.class, new int[]{0x2e, 0xe10a});
 
 //        String evioFileName = args[0];
         for (String evioFileName : cl.getArgs()) {
@@ -58,11 +60,13 @@
                 throw new RuntimeException("File " + evioFileName + " does not exist.");
             }
             System.out.println("Opened file " + evioFileName);
-            int[] lastData = new int[]{0, 0, 0, 0, 0};
             try {
                 org.jlab.coda.jevio.EvioReader reader = new org.jlab.coda.jevio.EvioReader(evioFile, true, seqRead);
                 int eventN = 1;
                 int badEvents = 0;
+                int[] lastData = new int[]{0, 0, 0, 0, 0};
+                long minDelta = 0, maxDelta = 0;
+                long lastTI = 0;
                 fileLoop:
                 while (true) {
                     if (!quiet) {
@@ -94,15 +98,35 @@
                         }
 
                         if (printTimestamps) {
+                            int thisTimestamp = 0;
                             BaseStructure headBank = headBankDefinition.findBank(event);
                             if (headBank != null) {
                                 int[] data = headBank.getIntData();
+                                thisTimestamp = data[3];
                                 if (data[3] != 0) {
                                     if (lastData[3] == 0) {
                                         System.out.print("first_head\t");
                                         printInts(data);
                                     }
                                     lastData = data;
+                                }
+                            }
+                            BaseStructure tiBank = tiBankDefinition.findBank(event);
+                            if (tiBank != null) {
+                                TIData tiData = new TIData(tiBank.getIntData());
+                                if (lastTI == 0) {
+                                    System.out.format("first_TItime\t%d\n", tiData.getTime());
+                                }
+                                lastTI = tiData.getTime();
+                                if (thisTimestamp != 0) {
+                                    long delta = thisTimestamp * 1000000000L - tiData.getTime();
+                                    if (minDelta == 0 || minDelta > delta) {
+                                        minDelta = delta;
+                                    }
+                                    if (maxDelta == 0 || maxDelta < delta) {
+                                        maxDelta = delta;
+                                    }
+//                                    System.out.format("%d %d %d %d %d %d\n", thisTimestamp, tiData.getTime(), delta, minDelta, maxDelta, maxDelta-minDelta);
                                 }
                             }
                         }
@@ -120,6 +144,8 @@
                 if (printTimestamps) {
                     System.out.print("last_head\t");
                     printInts(lastData);
+                    System.out.format("last_TItime\t%d\n", lastTI);
+                    System.out.format("ti_offset\t%d\t%d\t%d\n", minDelta, maxDelta, maxDelta - minDelta);
                 }
                 reader.close();
             } catch (Exception e) {

Modified: java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java
 =============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java	(original)
+++ java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java	Mon Aug  3 17:39:28 2015
@@ -17,18 +17,21 @@
 import org.hps.record.scalers.ScalerParameters;
 import org.hps.record.scalers.ScalersEvioProcessor;
 import org.jlab.coda.jevio.EvioEvent;
+import org.lcsim.conditions.ConditionsEvent;
 import org.lcsim.event.EventHeader;
 import org.lcsim.util.log.DefaultLogFormatter;
 import org.lcsim.util.log.LogUtil;
 
 /**
- * This is the {@link org.hps.record.LCSimEventBuilder} implementation for the Engineering Run and the Commissioning Run
- * for converting EVIO to LCIO events.
+ * This is the {@link org.hps.record.LCSimEventBuilder} implementation for the
+ * Engineering Run and the Commissioning Run for converting EVIO to LCIO events.
  * <p>
- * It has several modifications from the Test Run builder including different values for certain bank tags.
+ * It has several modifications from the Test Run builder including different
+ * values for certain bank tags.
  * <p>
- * Additionally, this builder will write DAQ config information, EPICS control data, and scalar bank data into the
- * output LCSim events if these banks are present in the EVIO data.
+ * Additionally, this builder will write DAQ config information, EPICS control
+ * data, and scalar bank data into the output LCSim events if these banks are
+ * present in the EVIO data.
  *
  * @author Sho Uemura, SLAC
  * @author Jeremy McCormick, SLAC
@@ -45,7 +48,7 @@
      * EVIO processor for extracting EPICS data.
      */
     private final EpicsEvioProcessor epicsProcessor = new EpicsEvioProcessor();
-    
+
     /**
      * Scaler parameters for lcsim event parameters.
      */
@@ -60,6 +63,11 @@
      * Reads trigger config.
      */
     private TriggerConfigEvioReader triggerConfigReader = null;
+
+    /**
+     * Writes event flags describing the SVT state.
+     */
+    private final SvtEventFlagger svtEventFlagger;
 
     /**
      * Class constructor.
@@ -73,17 +81,18 @@
         sspCrateBankTag = 0x2E; // A.C. modification after Sergey's confirmation
         sspBankTag = 0xe10c;
         intBanks = new ArrayList<IntBankDefinition>();
-        intBanks.add(new IntBankDefinition(SSPData.class, new int[] {sspCrateBankTag, sspBankTag}));
-        intBanks.add(new IntBankDefinition(TIData.class, new int[] {sspCrateBankTag, 0xe10a}));
-        intBanks.add(new IntBankDefinition(HeadBankData.class, new int[] {sspCrateBankTag, 0xe10f}));
-        intBanks.add(new IntBankDefinition(TDCData.class, new int[] {0x3a, 0xe107}));
+        intBanks.add(new IntBankDefinition(SSPData.class, new int[]{sspCrateBankTag, sspBankTag}));
+        intBanks.add(new IntBankDefinition(TIData.class, new int[]{sspCrateBankTag, 0xe10a}));
+        intBanks.add(new IntBankDefinition(HeadBankData.class, new int[]{sspCrateBankTag, 0xe10f}));
+        intBanks.add(new IntBankDefinition(TDCData.class, new int[]{0x3a, 0xe107}));
         // ecalReader = new ECalEvioReader(0x25, 0x27);
         triggerConfigReader = new TriggerConfigEvioReader();
+        svtEventFlagger = new SvtEventFlagger();
     }
 
     /**
      * Get the time from the TI data.
-     * 
+     *
      * @param triggerList the TI data list
      */
     @Override
@@ -99,7 +108,7 @@
 
     /**
      * Make an lcsim event from EVIO data.
-     * 
+     *
      * @param evioEvent the input EVIO event
      */
     @Override
@@ -142,12 +151,14 @@
         // Write out current ScalerParameters to event header.
         this.scalerParameters.write(lcsimEvent);
 
+        this.svtEventFlagger.writeFlags(lcsimEvent);
+
         return lcsimEvent;
     }
 
     /**
      * Pre-read an EVIO event.
-     * 
+     *
      * @param evioEvent the EVIO event
      */
     @Override
@@ -167,20 +178,20 @@
      * @param lcsimEvent the lcsim event
      */
     private void writeEpicsData(final EventHeader lcsimEvent) {
-        
+
         // Get EpicsData from processor that was already activated (usually it is null).
         EpicsData epicsData = epicsProcessor.getEpicsData();
-        
+
         // Was new EpicsData created?
         if (epicsData != null) {
             LOGGER.fine("writing EPICS data to lcsim event " + lcsimEvent.getEventNumber());
-            
+
             // Write to the collection in the lcsim event.
-            epicsData.write(lcsimEvent);            
-            
+            epicsData.write(lcsimEvent);
+
             // Update the ScalerParameters.
             scalerParameters.readEpicsData(epicsData);
-            
+
             // Reset the processor.
             epicsProcessor.reset();
         }
@@ -199,7 +210,7 @@
 
         // Get ScalerData from the processor.
         ScalerData scalerData = scalerProcessor.getScalerData();
-        
+
         // Was new ScalerData created?
         if (scalerData != null) {
 
@@ -212,5 +223,11 @@
             // Update current ScalerParameters.
             scalerParameters.readScalerData(scalerData);
         }
-    }  
+    }
+
+    @Override
+    public void conditionsChanged(ConditionsEvent conditionsEvent) {
+        super.conditionsChanged(conditionsEvent);
+        svtEventFlagger.initialize();
+    }
 }

Added: java/trunk/evio/src/main/java/org/hps/evio/SvtEventFlagger.java
 =============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/SvtEventFlagger.java	(added)
+++ java/trunk/evio/src/main/java/org/hps/evio/SvtEventFlagger.java	Mon Aug  3 17:39:28 2015
@@ -0,0 +1,148 @@
+package org.hps.evio;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import org.hps.conditions.database.DatabaseConditionsManager;
+import org.hps.conditions.svt.SvtAlignmentConstant;
+import org.hps.conditions.svt.SvtBiasConstant;
+import org.hps.conditions.svt.SvtMotorPosition;
+import org.hps.recon.ecal.triggerbank.AbstractIntData;
+import org.hps.recon.ecal.triggerbank.HeadBankData;
+import org.lcsim.detector.tracker.silicon.HpsSiSensor;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.GenericObject;
+import org.lcsim.event.RawTrackerHit;
+
+/**
+ *
+ * @author Sho Uemura <[log in to unmask]>
+ * @version $Id: $
+ */
+public class SvtEventFlagger {
+
+    private static final double angleTolerance = 0.0001;
+    SvtBiasConstant.SvtBiasConstantCollection svtBiasConstants = null;
+    SvtMotorPosition.SvtMotorPositionCollection svtPositionConstants = null;
+    private boolean biasGood = false;
+    private boolean positionGood = false;
+    private boolean burstmodeNoiseGood = false;
+    private double nominalAngleTop = 0;
+    private double nominalAngleBottom = 0;
+
+    public void writeFlags(EventHeader event) {
+        Date eventDate = getEventTimeStamp(event);
+        if (eventDate != null) {
+            biasGood = false;
+            if (svtBiasConstants != null) {
+                SvtBiasConstant biasConstant = svtBiasConstants.find(eventDate);
+                if (biasConstant != null) {
+                    biasGood = true;
+                }
+            }
+
+            positionGood = false;
+            if (svtPositionConstants != null) {
+                SvtMotorPosition positionConstant = svtPositionConstants.find(eventDate);
+                if (positionConstant != null) {
+//                    System.out.format("%f %f %f %f\n", positionConstant.getBottom(), nominalAngleBottom, positionConstant.getTop(), nominalAngleTop);
+                    if (Math.abs(positionConstant.getBottom() - nominalAngleBottom) < angleTolerance && Math.abs(positionConstant.getTop() - nominalAngleTop) < angleTolerance) {
+                        positionGood = true;
+                    }
+                }
+            }
+        }
+
+        burstmodeNoiseGood = isBurstmodeNoiseGood(event);
+
+        event.getIntegerParameters().put("svt_bias_good", new int[]{biasGood ? 1 : 0});
+        event.getIntegerParameters().put("svt_position_good", new int[]{positionGood ? 1 : 0});
+        event.getIntegerParameters().put("svt_burstmode_noise_good", new int[]{burstmodeNoiseGood ? 1 : 0});
+    }
+
+    private Date getEventTimeStamp(EventHeader event) {
+        List<GenericObject> intDataCollection = event.get(GenericObject.class, "TriggerBank");
+        for (GenericObject data : intDataCollection) {
+            if (AbstractIntData.getTag(data) == HeadBankData.BANK_TAG) {
+                Date date = HeadBankData.getDate(data);
+                if (date != null) {
+                    return date;
+                }
+            }
+        }
+        return null;
+    }
+
+    public void initialize() {
+        svtBiasConstants = DatabaseConditionsManager.getInstance().getCachedConditions(SvtBiasConstant.SvtBiasConstantCollection.class, "svt_bias_constants").getCachedData();
+        svtPositionConstants = DatabaseConditionsManager.getInstance().getCachedConditions(SvtMotorPosition.SvtMotorPositionCollection.class, "svt_motor_positions").getCachedData();
+
+        SvtAlignmentConstant.SvtAlignmentConstantCollection alignmentConstants = DatabaseConditionsManager.getInstance().getCachedConditions(SvtAlignmentConstant.SvtAlignmentConstantCollection.class, "svt_alignments").getCachedData();
+
+        for (final SvtAlignmentConstant constant : alignmentConstants) {
+            switch (constant.getParameter()) {
+                case 13100:
+                    System.out.format("nominal top angle: %f\n", constant.getValue());
+                    nominalAngleTop = constant.getValue();
+                    break;
+                case 23100:
+                    System.out.format("nominal bottom angle: %f\n", constant.getValue());
+                    nominalAngleBottom = -constant.getValue();
+                    break;
+            }
+        }
+
+    }
+
+    private static boolean isBurstmodeNoiseGood(EventHeader event) {
+        if (event.hasCollection(RawTrackerHit.class, "SVTRawTrackerHits")) {
+            // Get RawTrackerHit collection from event.
+            List<RawTrackerHit> rawTrackerHits = event.get(RawTrackerHit.class, "SVTRawTrackerHits");
+            return countSmallHits(rawTrackerHits) <= 3;
+        }
+        return false;
+    }
+
+    private static int countSmallHits(List<RawTrackerHit> rawHits) {
+        int smallHitCount = 0;
+        Map<HpsSiSensor, Set<Integer>> hitMap = new HashMap<HpsSiSensor, Set<Integer>>();
+
+        for (RawTrackerHit hit : rawHits) {
+            HpsSiSensor sensor = (HpsSiSensor) hit.getDetectorElement();
+            Set<Integer> hitStrips = hitMap.get(sensor);
+            if (hitStrips == null) {
+                hitStrips = new HashSet<Integer>();
+                hitMap.put(sensor, hitStrips);
+            }
+            int strip = hit.getIdentifierFieldValue("strip");
+            hitStrips.add(strip);
+        }
+
+        for (RawTrackerHit hit : rawHits) {
+            if (isSmallHit(hitMap, hit)) {
+                smallHitCount++;
+            }
+        }
+        return smallHitCount;
+    }
+
+    private static boolean isSmallHit(Map<HpsSiSensor, Set<Integer>> hitMap, RawTrackerHit hit) {
+        HpsSiSensor sensor = (HpsSiSensor) hit.getDetectorElement();
+        int strip = hit.getIdentifierFieldValue("strip");
+        double pedestal = sensor.getPedestal(strip, 0);
+        double noise = sensor.getNoise(strip, 0);
+
+        if (hitMap.get(sensor) != null && (hitMap.get(sensor).contains(strip - 1) || hitMap.get(sensor).contains(strip + 1))) {
+            return false;
+        }
+        for (int i = 0; i < 6; i++) {
+            if (hit.getADCValues()[i] > pedestal + 4.0 * noise) {
+                return false;
+            }
+        }
+        return true;
+    }
+}

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	Mon Aug  3 17:39:28 2015
@@ -99,8 +99,9 @@
     private String myaDumpPath;
     private double epicsBiasValue = -1;
     private boolean hvOnEpics = false;
-    private boolean hvOn = false;
+    private boolean hvOnMya = false;
     private boolean hvOnConditions = false;
+    private boolean hvOnEventFlag = false;
     private EpicsData epicsData = null;
     private int eventCountEpicsDisagree = 0;
     SvtBiasConstantCollection svtBiasConstants = null;
@@ -248,6 +249,19 @@
     @Override
     public void process(EventHeader event) {
 
+        Map<String, int[]> params = event.getIntegerParameters();
+
+        int[] biasGood = params.get("svt_bias_good");
+//        int[] positionGood = params.get("svt_position_good");
+//        int[] burstmodeNoiseGood = params.get("svt_burstmode_noise_good");
+
+//        System.out.format("%d %d %d\n", biasGood[0], positionGood[0], burstmodeNoiseGood[0]);
+        if (biasGood == null) {
+            hvOnEventFlag = false;
+        } else {
+            hvOnEventFlag = biasGood[0] == 1;
+        }
+
         if (allHitCountVsNum == null) {
             allHitCountVsNum = AIDA.defaultInstance().histogram2D("all hit count vs. event num", 1000, event.getEventNumber(), event.getEventNumber() + eventNumRange, 50, 0, 200);
         }
@@ -267,8 +281,9 @@
 
                 if (epicsBiasValue > 178.0) {
                     hvOnEpics = true;
-                }
-
+                } else {
+                    hvOnEpics = false;
+                }
             }
         } else {
             logger.fine("no epics information in this event");
@@ -284,7 +299,7 @@
             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());
+                System.out.println("hvOnMya is " + (hvOnMya ? "ON" : "OFF") + " hvOnEpics " + (hvOnEpics ? "ON" : "OFF") + " hvOnConditions " + (hvOnConditions ? "ON" : "OFF") + " hvOnEventFlag " + (hvOnEventFlag ? "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");
@@ -321,23 +336,23 @@
                 }
             }
 
-            hvOn = runRange.includes(eventDate);
+            hvOnMya = runRange.includes(eventDate);
 
             // print the cases where epics and run range do not agree
-            if (hvOn != hvOnEpics && epicsBiasValue > 0.) {
+            if (hvOnMya != hvOnEpics && epicsBiasValue > 0.) {
                 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"));
+                    logger.warning("hvOnMya is " + (hvOnMya ? "ON" : "OFF") + " hvOnEpics " + (hvOnEpics ? "ON" : "OFF") + " for Run " + event.getRunNumber() + " Event " + event.getEventNumber() + " date " + eventDate.toString() + " epoch " + eventDate.getTime() + " hvOn " + (hvOnMya ? "YES" : "NO") + " hvOnEpics " + (hvOnEpics ? "YES" : "NO"));
+                }
+                pWriter.println("Run " + event.getRunNumber() + " Event " + event.getEventNumber() + " date " + eventDate.toString() + " epoch " + eventDate.getTime() + " hvOn " + (hvOnMya ? "YES" : "NO"));
                 eventCountEpicsDisagree++;
             }
 
             // print the cases where the HV is OFF
-            if (!hvOn) {
+            if (!hvOnMya) {
                 if (debug) {
-                    logger.info("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") + " hvOnEpics " + (hvOnEpics ? "YES" : "NO"));
+                    logger.info("Run " + event.getRunNumber() + " Event " + event.getEventNumber() + " date " + eventDate.toString() + " epoch " + eventDate.getTime() + " hvOnMya " + (hvOnMya ? "YES" : "NO") + " hvOnEpics " + (hvOnEpics ? "YES" : "NO"));
+                }
+                pWriter.println("Run " + event.getRunNumber() + " Event " + event.getEventNumber() + " date " + eventDate.toString() + " epoch " + eventDate.getTime() + " hvOnMya " + (hvOnMya ? "YES" : "NO") + " hvOnEpics " + (hvOnEpics ? "YES" : "NO"));
                 eventCountHvOff++;
             }
             if (event.hasCollection(RawTrackerHit.class, rawTrackerHitCollectionName)) {
@@ -368,7 +383,7 @@
                     }
                     if (maxSample >= 4) {
                         hists_rawadcnoise.get(sensor).fill(hit.getADCValues()[0] - pedestal);
-                        if (hvOn) {
+                        if (hvOnMya) {
                             hists_rawadcnoiseON.get(sensor).fill(hit.getADCValues()[0] - pedestal);
                         } else {
                             hists_rawadcnoiseOFF.get(sensor).fill(hit.getADCValues()[0] - pedestal);
@@ -381,7 +396,7 @@
 //                if (dropSmallHitEvents && SvtPlotUtils.countSmallHits(rawTrackerHits) > 3) {
 //                    return;
 //                }
-                if (hvOn) {
+                if (hvOnMya) {
                     allHitCountON.fill(rawTrackerHits.size());
                 } else {
                     allHitCountOFF.fill(rawTrackerHits.size());
@@ -396,7 +411,7 @@
                         count = 0;
                     }
                     hists_hitCounts.get(sensor).fill(count);
-                    if (hvOn) {
+                    if (hvOnMya) {
                         hists_hitCountsON.get(sensor).fill(count);
                     } else {
                         hists_hitCountsOFF.get(sensor).fill(count);