diff --git a/.containers/coatjava.Dockerfile b/.containers/coatjava.Dockerfile index dbe73116a0..513e16c0a1 100644 --- a/.containers/coatjava.Dockerfile +++ b/.containers/coatjava.Dockerfile @@ -22,4 +22,5 @@ ARG REF_NAME=development # build coatjava RUN java --version && cd /opt && \ git clone https://code.jlab.org/hallb/alert/coatjava.git && cd coatjava && \ - git fetch origin && git checkout ${REF_NAME} && ./build-coatjava.sh --quiet + git fetch origin && git checkout ${REF_NAME} && ./build-coatjava.sh --quiet && \ + ./install-clara /opt/clara diff --git a/.containers/coatjava.def b/.containers/coatjava.def new file mode 100644 index 0000000000..8dc1962ac8 --- /dev/null +++ b/.containers/coatjava.def @@ -0,0 +1,14 @@ +Bootstrap: docker +From: codecr.jlab.org/hallb/alert/coatjava/coatjava:{{ REF_NAME }} + + +%environment + export CLAS12DIR=/opt/coatjava/coatjava + +%help + This is a clas12 coatjava container used to run coatjava on HPC systems + and do rapid development. + +%labels + Author Whitney Armstrong warmstrong@anl.gov + REF_NAME {{ REF_NAME }} diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index da31aa64a8..db9ad01fa8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,6 +9,7 @@ workflow: variables: KUBERNETES_MEMORY_LIMIT: "8Gi" + REF_NAME: ${CI_COMMIT_REF_NAME} default: image: ubuntu:noble @@ -69,3 +70,16 @@ shared_for_alert_tests: project: hallb/alert/atof/shared_for_alert strategy: depend +coatjava:singularity: + image: eicweb.phy.anl.gov:4567/containers/image_recipes/ubuntu_dind:latest + tags: + - silicon + allow_failure: true + script: + - apptainer build --build-arg REF_NAME=${REF_NAME} coatjava.sif .containers/coatjava.def + - ls -lrth + artifacts: + paths: + - coatjava.sif + + diff --git a/README.md b/README.md index 932aa457cd..6d5f89bd5e 100644 --- a/README.md +++ b/README.md @@ -58,3 +58,6 @@ http://stackoverflow.com/questions/600079/how-do-i-clone-a-subdirectory-only-of- --> + +[Coatjava Apptainer](https://code.jlab.org/hallb/alert/coatjava/-/jobs/artifacts/development/raw/coatjava.sif?job=coatjava%3Asingularity) + diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java index a11ff73f98..b77bc9920a 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder4.java @@ -333,6 +333,8 @@ public Bank getDataBankTDCPetiroc(String name, DetectorType type){ tdcBANK.putByte("order", i, (byte) tdcDGTZ.get(i).getDescriptor().getOrder()); tdcBANK.putInt("TDC", i, tdcDGTZ.get(i).getTDCData(0).getTime()); tdcBANK.putInt("ToT", i, tdcDGTZ.get(i).getTDCData(0).getToT()); + tdcBANK.putLong("timestamp", i, tdcDGTZ.get(i).getTDCData(0).getTimeStamp()); + tdcBANK.putInt("trigger", i, tdcDGTZ.get(i).getTrigger()); //System.err.println("event: " + tdcDGTZ.get(i).toString()); } return tdcBANK; diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CodaEventDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CodaEventDecoder.java index 4d39ad1077..7b5dfd7069 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CodaEventDecoder.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CodaEventDecoder.java @@ -1063,24 +1063,36 @@ public List getDataEntries_57657(Integer crate, EvioNode node int position = 0; while(position -> "bank" DetectorDataDgtz -> "tdc" TDCData + // there is a redundancy in timestamp: the same value is stored in TDCData and the DetectorDataDgz + // + bank.setTimeStamp(time_stamp); + bank.setTrigger(trig_num);; + TDCData tdc_data = new TDCData(tdc, tot); + tdc_data.setTimeStamp(time_stamp).setOrder(counter); + bank.addTDC(tdc_data); entries.add(bank); - position += 3; + position += 3; // channel,tdc,tot counter++; //System.err.println("event: " + bank.toString()); } diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorDataDgtz.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorDataDgtz.java index 375c322b3d..566715c30a 100644 --- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorDataDgtz.java +++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/DetectorDataDgtz.java @@ -14,12 +14,14 @@ */ public class DetectorDataDgtz implements Comparable { - private final List adcStore = new ArrayList<>(); - private final List tdcStore = new ArrayList<>(); - private final List vtpStore = new ArrayList<>(); - private final List scalerStore = new ArrayList<>(); - private Long timeStamp = 0L; + private final List adcStore = new ArrayList<>(); + private final List tdcStore = new ArrayList<>(); + private final List vtpStore = new ArrayList<>(); + private final List scalerStore = new ArrayList<>(); + private Long timeStamp = 0L; + private int trigger = 0; // Trigger number ( usually only 1 trigger due to rol2(?) ); + private final DetectorDescriptor descriptor = new DetectorDescriptor(); public DetectorDataDgtz(){ @@ -66,6 +68,9 @@ public long getTimeStamp(){ public DetectorDescriptor getDescriptor(){ return this.descriptor; } + + public int getTrigger() { return trigger;} + public DetectorDataDgtz setTrigger(int trig) { trigger = trig;return this;} @Override public String toString(){ @@ -330,9 +335,10 @@ public int compareTo(ADCData o) { */ public static class TDCData implements Comparable{ - private int tdcOrder = 0; // Used for sorting - private int tdcTime = 0; - private int tdcToT = 0; // Time over threshold + private int tdcOrder = 0; // Used for sorting + private int tdcTime = 0; + private int tdcToT = 0; // Time over threshold + private Long timeStamp = 0L; public TDCData() {} public TDCData(int time) { this.tdcTime = time;} @@ -340,9 +346,11 @@ public TDCData() {} public int getTime() { return this.tdcTime;} public int getToT() { return this.tdcToT;} public int getOrder() { return tdcOrder;} + public long getTimeStamp(){ return this.timeStamp; } public TDCData setOrder(int order) { tdcOrder = order;return this;} public TDCData setTime(short time) { tdcTime = time;return this;} public TDCData setToT(short ToT) { tdcToT = ToT;return this;} + public TDCData setTimeStamp(long time){ timeStamp = time;return this; } @Override public String toString(){ diff --git a/etc/bankdefs/hipo4/data.json b/etc/bankdefs/hipo4/data.json index d965ded0bc..07367082d8 100644 --- a/etc/bankdefs/hipo4/data.json +++ b/etc/bankdefs/hipo4/data.json @@ -108,7 +108,9 @@ { "name":"component" , "type":"S", "info":"signal (1-2)"}, { "name":"order" , "type":"B", "info":"order: 2 - TDCL , 3 - TDCR"}, { "name":"TDC" , "type":"I", "info":"TDC value"}, - { "name":"ToT" , "type":"I", "info":"Time Over Threshold"} + { "name":"ToT" , "type":"I", "info":"Time Over Threshold"}, + { "name":"timestamp" , "type":"L", "info":"timestamp"}, + { "name":"trigger" , "type":"I", "info":"trigger number"} ] }, {