Skip to content

Commit 8a9bde4

Browse files
committed
add trigger-bit filter
1 parent 530a800 commit 8a9bde4

2 files changed

Lines changed: 17 additions & 13 deletions

File tree

‎common-tools/clara-io/src/main/java/org/jlab/io/clara/Clas12Writer.java‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
package org.jlab.io.clara;
22

3-
import java.io.File;
43
import java.nio.file.Path;
5-
import java.util.List;
64
import org.jlab.clara.std.services.EventWriterException;
75
import org.jlab.detector.calib.utils.ConstantsManager;
8-
import org.jlab.detector.helicity.HelicitySequenceDelayed;
96
import org.jlab.detector.serial.SerialHoncho;
107
import org.jlab.detector.serial.Occupancer;
118
import org.jlab.jnp.hipo4.data.Bank;

‎common-tools/clas-detector/src/main/java/org/jlab/detector/serial/Occupancer.java‎

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,25 @@ public class Occupancer extends ArrayList<Occupancer.OccupanceTable> {
2626
static final SchemaFactory FULL_SCHEMA = new SchemaFactory();
2727
static { FULL_SCHEMA.initFromDirectory(ClasUtilsFile.getResourceDir("CLAS12DIR","etc/bankdefs/hipo4")); }
2828

29-
int prescale = 1000;
29+
long triggerMask = 0x8000000000l;
30+
int prescale = 0;
3031
int nevents = 0;
32+
Schema cfgSchema;
3133

3234
public Occupancer() {
3335
super();
3436
init();
3537
}
3638

37-
public Occupancer(int prescale) {
39+
public Occupancer(long triggerMask, int prescale) {
3840
super();
41+
this.triggerMask = triggerMask;
3942
this.prescale = prescale;
4043
init();
4144
}
4245

4346
private void init() {
47+
cfgSchema = FULL_SCHEMA.getSchema("RUN::config");
4448
try {
4549
// Initialize list, by reading occupancy bank filenames from a directory
4650
// and stripping ".json" suffix and "OCC::" prefix to get hit bank name:
@@ -56,16 +60,19 @@ private void init() {
5660
}
5761

5862
public boolean process(Event event) {
59-
int size = size();
60-
for (int i=0; i<size; i++) get(i).fill(event);
61-
if (++nevents % prescale == 0) {
62-
for (int i=0; i<size; i++) {
63-
if (get(i).getTable().getRowCount() > 0) {
64-
event.write(get(i).create(nevents));
63+
Bank cfgBank = event.read(new Bank(cfgSchema, 1));
64+
if (cfgBank.getRows() > 0 && 0 != (triggerMask & cfgBank.getLong("trigger",0))) {
65+
int size = size();
66+
for (int i=0; i<size; i++) get(i).fill(event);
67+
if (++nevents % prescale == 0) {
68+
for (int i=0; i<size; i++) {
69+
if (get(i).getTable().getRowCount() > 0) {
70+
event.write(get(i).create(nevents));
71+
}
72+
get(i).reset();
6573
}
66-
get(i).reset();
74+
nevents = 0;
6775
}
68-
nevents = 0;
6976
}
7077
return true;
7178
}

0 commit comments

Comments
 (0)