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