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; + } +}