Print

Print


Author: [log in to unmask]
Date: Wed Feb 11 14:14:52 2015
New Revision: 2110

Log:
final RunningPedestalDriver for release

Modified:
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/ECalRunningPedestalDriver.java

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/ECalRunningPedestalDriver.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/ECalRunningPedestalDriver.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/ECalRunningPedestalDriver.java	Wed Feb 11 14:14:52 2015
@@ -23,6 +23,10 @@
  * 
  * TODO: Use Logger.
  * 
+ * TODO: Timestamps from EVIO for some runs appear to not be monotonically increasing.
+ *       This interferes with minLookbackTime, so it defaults to disabled and its setter
+ *       is left private for now.
+ * 
  * @version $Id: ECalRunningPedestalDriver.java,v 1.0 2015/02/10 00:00:00
  * @author <[log in to unmask]>
  */
@@ -82,13 +86,12 @@
                         TableConstants.ECAL_CONDITIONS).getCachedData();
         for (int ii = 0; ii < nChannels; ii++) {
             EcalChannel chan = findChannel(ii + 1);
-            runningPedestals.put(chan, getStaticPedestal(chan));
-            eventPedestals.put(chan, new ArrayList<Integer>());
-            eventTimestamps.put(chan, new ArrayList<Long>());
+            runningPedestals.put(chan,getStaticPedestal(chan));
+            eventPedestals.put(chan,new ArrayList<Integer>());
+            eventTimestamps.put(chan,new ArrayList<Long>());
         }
         if (debug) {
-            System.out
-                    .println("Running and static pedestals better match here:");
+            System.out.println("Running and static pedestals better match here:");
             printPedestals();
         }
     }
@@ -105,15 +108,14 @@
 
     public void setMaxLookbackEvents(int nev) {
         if (nev > limitLookbackEvents) {
-            System.err
-                    .println("ECalRunningPedestalDriver:  Ignoring maxLookbackEvents too big:  "
-                            + nev);
+            System.err.println("ECalRunningPedestalDriver:  Ignoring maxLookbackEvents too big:  "
+                    + nev);
             nev = limitLookbackEvents;
         }
         maxLookbackEvents = nev;
     }
 
-    public void setMaxLookbackTime(int time) {
+    private void setMaxLookbackTime(int time) {
         maxLookbackTime = time;
     }
 
@@ -168,15 +170,17 @@
         List<Integer> peds = eventPedestals.get(chan);
         List<Long> times = eventTimestamps.get(chan);
 
-        // If new timestamp is older than previous one, restart pedestals.
-        // This should never happen unless firmware counter cycles back to zero,
-        // in which case it could be dealt with if max timestamp is known.
-        if (times.size() > 0 && times.get(0) > timestamp) {
-            System.err.println(String.format(
-                    "Event #%d, Old Timestamp:  %d < %d",
-                    event.getEventNumber(), timestamp, times.get(0)));
-            peds.clear();
-            times.clear();
+        if (maxLookbackTime > 0) {
+            // If new timestamp is older than previous one, restart pedestals.
+            // This should never happen unless firmware counter cycles back to zero,
+            // in which case it could be dealt with if max timestamp is known.
+            if (times.size() > 0 && times.get(0) > timestamp) {
+                System.err.println(String.format(
+                        "Event #%d, Old Timestamp:  %d < %d",
+                        event.getEventNumber(), timestamp, times.get(0)));
+                peds.clear();
+                times.clear();
+            }
         }
 
         // add pedestal to the list:
@@ -233,48 +237,4 @@
                 hit.getCellID());
     }
 
-    /*
-     * public double getPedestal(EcalChannel chan) { if
-     * (runningPedestals.containsKey(chan)) { return runningPedestals.get(chan);
-     * } else {
-     * System.err.println("RunningPedestalDriver:getPedestal:  Missing channel"
-     * ); return getStaticPedestal(chan); } } public double getPedestal(int
-     * channel_id) { return getPedestal(findChannel(channel_id)); } public
-     * double getPedestal(RawCalorimeterHit hit) { return
-     * getPedestal(getChannelID(hit)); }
-     * 
-     * private double getStaticNoise(int channel_id) { return
-     * getStaticCalibration(channel_id).getNoise(); }
-     * 
-     * private double getStaticPedestal(int channel_id) { return
-     * getStaticCalibration(channel_id).getPedestal(); } private double
-     * getStaticPedestal(RawCalorimeterHit hit) { return
-     * getStaticPedestal(getChannelID(hit)); }
-     * 
-     * private EcalCalibration getStaticCalibration(EcalChannel chan) { return
-     * ecalConditions.getChannelConstants(chan).getCalibration(); } private
-     * EcalCalibration getStaticCalibration(int channel_id) { return
-     * getStaticCalibration(findChannel(channel_id)); } private EcalCalibration
-     * getStaticCalibration(long cellID) { return
-     * getStaticCalibration(findChannel(cellID)); }
-     * 
-     * public int getChannelID(RawCalorimeterHit hit) { return
-     * findChannelConstants(hit.getCellID()).getCalibration().getChannelId(); }
-     * 
-     * public EcalChannelConstants findChannelConstants(long cellID) { return
-     * ecalConditions.getChannelConstants(findChannel(cellID)); }
-     * 
-     * public EcalChannelConstants findChannelConstants(int channel_id) { return
-     * ecalConditions.getChannelConstants(findChannel(channel_id)); }
-     * 
-     * public EcalChannel findChannel(long cellID) { return
-     * ecalConditions.getChannelCollection().findGeometric(cellID); }
-     * 
-     * public EcalChannel findChannel(int channel_id) { return
-     * ecalConditions.getChannelCollection().findChannel(channel_id); }
-     * 
-     * public EcalChannel findChannel(RawCalorimeterHit hit) { return
-     * findChannel(hit.getCellID()); }
-     */
-
 }