Print

Print


Author: [log in to unmask]
Date: Mon Mar 14 11:04:24 2016
New Revision: 4294

Log:
added a driver with a very specific use

Added:
    java/trunk/users/src/main/java/org/hps/users/spaul/FindBiasOnRange.java

Added: java/trunk/users/src/main/java/org/hps/users/spaul/FindBiasOnRange.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/spaul/FindBiasOnRange.java	(added)
+++ java/trunk/users/src/main/java/org/hps/users/spaul/FindBiasOnRange.java	Mon Mar 14 11:04:24 2016
@@ -0,0 +1,54 @@
+package org.hps.users.spaul;
+
+import java.io.FileNotFoundException;
+import java.io.PrintStream;
+
+import org.hps.record.epics.EpicsData;
+import org.hps.run.database.EpicsType;
+import org.lcsim.event.EventHeader;
+import org.lcsim.util.Driver;
+
+public class FindBiasOnRange extends Driver{
+    /*tab*//*tab*//*tab*/
+    String svtBiasName = "SVT:bias:top:0:v_sens";
+    
+    String outfile = "bias_on.txt";
+    @Override 
+    public void process(EventHeader event){
+        final EpicsData edata = EpicsData.read(event);
+        if (edata == null) 
+            return;
+        System.out.println(edata.getKeys());
+        if(!edata.hasKey(svtBiasName))
+            return;
+        double bias = edata.getValue(svtBiasName);
+        foundBiasEvent(event.getEventNumber(), isGood(bias));
+    }
+    
+    
+    boolean prevIsGood = false;
+    int prevNumber = -10;
+    void foundBiasEvent(int number, boolean isGood){
+        if(isGood && prevIsGood){
+            PrintStream ps;
+            try {
+                ps = new PrintStream(outfile);
+                ps.println(prevNumber + " " + number);
+                ps.close();
+                System.exit(0);
+            } catch (FileNotFoundException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+            
+        }
+        prevNumber = number;
+        prevIsGood = isGood;
+        
+    }
+    double minBias = 179;
+    double maxBias = 181;
+    boolean isGood(double bias){
+        return bias > minBias && bias < maxBias;
+    }
+}