Author: [log in to unmask] Date: Wed Sep 2 10:57:27 2015 New Revision: 3494 Log: (empty) Added: java/trunk/users/src/main/java/org/hps/users/spaul/PulserFilter.java Added: java/trunk/users/src/main/java/org/hps/users/spaul/PulserFilter.java ============================================================================= --- java/trunk/users/src/main/java/org/hps/users/spaul/PulserFilter.java (added) +++ java/trunk/users/src/main/java/org/hps/users/spaul/PulserFilter.java Wed Sep 2 10:57:27 2015 @@ -0,0 +1,86 @@ +package org.hps.users.spaul; + +//import org.hps.recon.ecal.triggerbank.AbstractIntData; +//import org.hps.recon.ecal.triggerbank.TIData; +//import org.lcsim.event.GenericObject; + +import java.io.File; +import java.io.IOException; + +import org.lcsim.event.Cluster; +import org.lcsim.event.EventHeader; +import org.lcsim.event.GenericObject; +import org.lcsim.lcio.LCIOReader; +import org.lcsim.lcio.LCIOWriter; +import org.lcsim.util.Driver; +import org.hps.conditions.ConditionsDriver; +import org.hps.recon.ecal.cluster.ClusterUtilities; +import org.hps.recon.ecal.triggerbank.AbstractIntData; +import org.hps.recon.ecal.triggerbank.TIData; +import org.hps.record.epics.EpicsData; +import org.hps.record.scalers.ScalerData; + +public class PulserFilter extends Driver{ + + public void process(EventHeader event) { + + // only keep pulser triggers: + if (!event.hasCollection(GenericObject.class,"TriggerBank")) + throw new Driver.NextEventException(); + boolean isPulser=false; + for (GenericObject gob : event.get(GenericObject.class,"TriggerBank")) + { + if (!(AbstractIntData.getTag(gob) == TIData.BANK_TAG)) continue; + TIData tid = new TIData(gob); + if (tid.isPulserTrigger()) + { + isPulser=true; + break; + } + } + + // don't drop any events with EPICS data or scalers data + // (could also do this via event tag=31) + final EpicsData edata = EpicsData.read(event); + if (edata != null) return; + ScalerData sdata = ScalerData.read(event); + if(sdata != null) return; + + if (!isPulser) throw new Driver.NextEventException(); + + + } + + public static void main(String arg[]) throws IOException{ + ConditionsDriver hack = new ConditionsDriver(); + hack.setDetectorName("HPS-EngRun2015-Nominal-v1"); + hack.setFreeze(true); + hack.setRunNumber(Integer.parseInt(arg[2])); + hack.initialize(); + PulserFilter pf = new PulserFilter(); + LCIOWriter writer = new LCIOWriter(arg[1]); + File file = new File(arg[0]); + LCIOReader reader = new LCIOReader(file); + System.out.println(file.getPath()); + + try{ + while(true){ + try{ + EventHeader eh = reader.read(); + if(eh.getEventNumber() %100 == 0) + System.out.println(eh.getEventNumber()); + pf.process(eh); + writer.write(eh); + }catch(Driver.NextEventException e){ + + } + } + }catch(IOException e){ + e.printStackTrace(); + reader.close(); + } + + + writer.close(); + } +}