diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml index 643c120fc9..74df2d4153 100644 --- a/common-tools/clara-io/pom.xml +++ b/common-tools/clara-io/pom.xml @@ -53,6 +53,12 @@ commons-text + + org.jlab.clas + clas-reco + 14.2.2-SNAPSHOT + + diff --git a/common-tools/clara-io/src/main/java/org/jlab/io/clara/Clas12Writer.java b/common-tools/clara-io/src/main/java/org/jlab/io/clara/Clas12Writer.java index 405046e395..51340ad30a 100644 --- a/common-tools/clara-io/src/main/java/org/jlab/io/clara/Clas12Writer.java +++ b/common-tools/clara-io/src/main/java/org/jlab/io/clara/Clas12Writer.java @@ -2,10 +2,10 @@ import java.nio.file.Path; import org.jlab.clara.std.services.EventWriterException; +import org.jlab.clas.reco.ParaTrigWriter; import org.jlab.detector.calib.utils.ConstantsManager; import org.jlab.detector.serial.SerialHoncho; import org.jlab.detector.serial.Occupancer; -import org.jlab.jnp.hipo4.data.Bank; import org.jlab.jnp.hipo4.data.Event; import org.jlab.jnp.hipo4.data.SchemaFactory; import org.jlab.jnp.hipo4.io.HipoWriterSorted; @@ -26,11 +26,9 @@ public class Clas12Writer extends HipoToHipoWriter { Occupancer occupancer; SerialHoncho serial; - Bank runConfig; ConstantsManager conman; SchemaFactory fullSchema; - HipoWriterSorted paraWriter; - long paraCount; + ParaTrigWriter paraWriter; long paraTriggerMask; int paraTriggerPrescale; @@ -39,7 +37,6 @@ private void init(JSONObject opts) { fullSchema = new SchemaFactory(); fullSchema.initFromDirectory(FileUtils.getEnvironmentPath("CLAS12DIR","etc/bankdefs/hipo4")); serial = new SerialHoncho(fullSchema); - runConfig = new Bank(fullSchema.getSchema("RUN::config")); conman = new ConstantsManager(); conman.init("/runcontrol/hwp","/runcontrol/helicity"); paraTriggerMask = opts.optLong("paraTriggerMask", 0); @@ -58,8 +55,7 @@ protected HipoWriterSorted createWriter(Path file, JSONObject opts) throws Event String basename = file.getFileName().toString(); if (!basename.endsWith(".hipo")) basename += ".hipo"; if (paraTriggerMask > 0) { - paraWriter = new HipoWriterSorted(); - paraWriter.getSchemaFactory().copy(fullSchema); + paraWriter = new ParaTrigWriter(paraTriggerMask,paraTriggerPrescale); paraWriter.open(dirname + "/tb" + basename.substring(basename.indexOf("_"))); } w.open(dirname + "/" + basename); @@ -75,16 +71,9 @@ protected void writeEvent(Object event) throws EventWriterException { if (!t.isEmpty()) writer.addEvent(t, 1); occupancer.process(((Event)event)); super.writeEvent(event); - writeRaw((Event)event, t); - } - - void writeRaw(Event physics, Event tagged) { - if (paraTriggerMask > 0) { - physics.read(runConfig); - if (runConfig.getRows()>0 && (runConfig.getLong("trigger",0) & paraTriggerMask) != 0) - if (paraTriggerPrescale<=0 || (++paraCount % paraTriggerPrescale) == 0) - paraWriter.addEvent(physics); - if (!tagged.isEmpty()) paraWriter.addEvent(tagged, tagged.getEventTag()); + if (paraTriggerMask > 0 { + paraWriter.addEvent((Event)event); + if (!t.isEmpty()) paraWriter.addEvent(t,1); } }