Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
38240f3
remove unused stuff
Aug 22, 2023
857d2ec
add detectorChanged method (and remove unused imports)
Aug 22, 2023
27bb225
fix formatting
Aug 22, 2023
5c3bfe4
implement all detectorChanged hooks (and cleanup/formatting)
Aug 22, 2023
8409c46
synchronize and count changes
Aug 22, 2023
0da6a6d
allow nulls
Aug 22, 2023
5813676
add empty list check
Aug 22, 2023
5d6025c
cleanup/formatting
Aug 22, 2023
b59031f
use the same wrapper used in clara/recon-util
Aug 22, 2023
4264c0a
hardcode it to 11 for now
Aug 22, 2023
a8a333c
implement detectorChanged for cvt
Aug 22, 2023
d65c484
implement detector changed for dc
Aug 22, 2023
29556b6
use the same wrapper used in clara/recon-util
Aug 22, 2023
5dbf8ec
fix logic oops
Aug 22, 2023
a992536
rename processDataEvent/processEvent
Aug 28, 2023
621f27a
make MLTDEngine respect run number like everyone else, unless overrid…
Sep 19, 2023
285eee8
add newly-required methods
Sep 19, 2023
d5aea41
restore initialization
Sep 19, 2023
4145928
allow run number override from YAML
Oct 17, 2023
9f0a70d
add missing overrides
baltzell Oct 18, 2024
b12eb7d
remove mc/data check
baltzell Oct 18, 2024
4c11223
test against gemc/dev
baltzell Nov 7, 2024
3201b38
fix overrides (maintainence of never-ending PR)
baltzell Jan 3, 2025
340175d
processDataEvent should be final
baltzell Jan 3, 2025
2290068
cleanup script
baltzell Jan 3, 2025
da26fb9
remove unused/unnecessary script
baltzell Jan 3, 2025
a3cd0d5
disable workflow for now
baltzell Jan 3, 2025
f5041f8
add neutron test
baltzell Jan 3, 2025
1dfcb68
remove leftovers
baltzell Jan 8, 2025
6f6ab44
abort on error
baltzell Jan 9, 2025
e190750
fix rebase mistake
baltzell May 22, 2025
6568f9d
add missing overrides
baltzell May 22, 2025
9b1a356
add missing overrides
baltzell May 22, 2025
99bc84f
add missing overrides
baltzell May 22, 2025
01bd6be
accounting for tstart, tflight and tprop in MC tracks reconstruction
raffaelladevita Jan 3, 2025
07599a3
removed check on run number when setting the DC hit uncertainty
raffaelladevita Jan 15, 2025
840afbe
removed hardcoded change to default variation in BAND engine
raffaelladevita Jan 24, 2025
589aed4
apply TDC jitter correction only if TI timestamp is >0, excluding MC …
raffaelladevita Jan 28, 2025
c98c154
moved RF offsets to time written to RUN::rf bank
raffaelladevita Jan 29, 2025
c719b62
fixed bug in REC::Event.RFTime introduced with last commit
raffaelladevita Jan 29, 2025
e03ff9d
restored TDC jitter correction for timestamp=0
raffaelladevita Jan 31, 2025
94776c8
switch to load geometry for real run number
raffaelladevita Feb 20, 2025
075a40d
fix env
baltzell Jul 15, 2025
36eafbc
add missing override
baltzell Aug 4, 2025
3fc4842
remove unused imports
baltzell Aug 4, 2025
1a09a92
set PATH
baltzell Aug 4, 2025
bd00e3b
Merge branch 'development' into iss59-dch-redux-dc2-redux
baltzell Oct 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -165,14 +165,16 @@ jobs:
id:
- kpp
- eb-ep
- eb-en
- eb-eg
- eb-epc
- eb-enc
- eb-eftpi
include:
# run all tests on ubuntu
# run selected tests on ubuntu
- { id: kpp, cmd: ./run-advanced-tests.sh }
- { id: eb-ep, cmd: ./run-eb-tests.sh -100 electronproton }
- { id: eb-en, cmd: ./run-eb-tests.sh -100 electronneutron }
- { id: eb-eg, cmd: ./run-eb-tests.sh -100 electrongamma }
- { id: eb-epc, cmd: ./run-eb-tests.sh -100 electronprotonC }
- { id: eb-enc, cmd: ./run-eb-tests.sh -100 electronneutronC }
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ on:
workflow_dispatch:

jobs:
if: false
validation:
uses: JeffersonLab/clas12-validation/.github/workflows/ci.yml@main
with:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public void setFieldsConfig(String fieldsConfig) {


@Override
public boolean processDataEvent(DataEvent event) {
public boolean processDataEventUser(DataEvent event) {
Reader reader ;
this.FieldsConfig = this.getFieldsConfig();
if (event.hasBank("RUN::config") == false) {
Expand Down Expand Up @@ -250,5 +250,7 @@ public double[] getBeamSpot(DataEvent event, IndexedTable beamPos) {
}
return xybeam;
}

public void detectorChanged(int run) {}

}
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,7 @@ public static JsonObject Map2Json(Map<String,Object> map) {
ret.add(topKey,Map2Json((Map)entry.getValue()));
}
else {
if(entry.getValue() != null) {
ret.add(topKey, entry.getValue().toString());
}
ret.add(topKey, entry.getValue() == null ? null : entry.getValue().toString());
}
}
return ret;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ public void init(){
public void processEvent(DataEvent event){
for(Map.Entry<String,ReconstructionEngine> engine : this.processorEngines.entrySet()){
try {
engine.getValue().filterEvent(event);
engine.getValue().processDataEvent(event);
} catch (Exception e){
LOGGER.log(Level.SEVERE, "[Exception] >>>>> engine : {0}\n\n", engine.getKey());
e.printStackTrace();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
Expand Down Expand Up @@ -60,14 +61,22 @@ public abstract class ReconstructionEngine implements Engine {
volatile boolean dropOutputBanks = false;
private final Set<String> outputBanks = new HashSet<>();

private volatile List<Integer> runNumbers = new ArrayList<>();

private boolean ignoreInvalidRunNumbers = true;

private int runNumberOverride = -1;

volatile long triggerMask = 0xFFFFFFFFFFFFFFFFL;

String engineName = "UnknownEngine";
String engineAuthor = "N.T.";
String engineVersion = "0.0";
String engineDescription = "CLARA Engine";
String engineName = "UnknownEngine";
String engineAuthor = "N.T.";
String engineVersion = "0.0";
String engineDescription = "CLARA Engine";

abstract public boolean processDataEventUser(DataEvent event);
abstract public boolean init();
abstract public void detectorChanged(int runNumber);

public ReconstructionEngine(String name, String author, String version){
engineName = name;
Expand Down Expand Up @@ -108,9 +117,6 @@ protected RawBank getRawBankReader(String bankName, OrderType... order) {
return new RawDataBank(bankName, order);
}

abstract public boolean processDataEvent(DataEvent event);
abstract public boolean init();

/**
* Use a map just to avoid name clash in ConstantsManager.
* @param tables map of table names to #indices
Expand Down Expand Up @@ -187,6 +193,9 @@ public EngineData configure(EngineData ed) {
engineDictionary = new SchemaFactory();
LOGGER.log(Level.FINEST,"--- engine configuration is called " + this.getDescription());
try {
if (this.getEngineConfigString("runNumberOverride")!=null) {
this.runNumberOverride = Integer.valueOf(this.getEngineConfigString("runNumberOverride"));
}
if (this.getEngineConfigString("rawBankGroup")!=null) {
this.rawBankOrders = RawBank.getFilterGroup(this.getEngineConfigString("rawBankGroup"));
}
Expand Down Expand Up @@ -227,8 +236,7 @@ public EngineData configure(EngineData ed) {
}

protected String getStringConfigParameter(String jsonString,
String key) throws Exception {
Object js;
String key) throws Exception {
String variation = "";
try {
JSONObject base = new JSONObject(jsonString);
Expand All @@ -238,13 +246,6 @@ protected String getStringConfigParameter(String jsonString,
} else {
LOGGER.log(Level.FINE,"[JSON]" + this.getName() + " **** warning **** does not contain key = " + key);
}
/*
js = base.get(key);
if (js instanceof String) {
return (String) js;
} else {
throw new Exception("JSONObject[" + "] not a string.");
}*/
} catch (JSONException e) {
throw new Exception(e.getMessage());
}
Expand Down Expand Up @@ -345,17 +346,22 @@ public void dropBanks(DataEvent event) {
}
}
}

public boolean checkRunNumber(DataEvent event) {
if (!this.ignoreInvalidRunNumbers) return true;
int run = 0;
if (event.hasBank("RUN::config")) {
run = event.getBank("RUN::config").getInt("run",0);

public synchronized boolean checkRunNumber(DataEvent event) {
int r = runNumberOverride;
if (r <= 0 && event.hasBank("RUN::config")) {
r = event.getBank("RUN::config").getInt("run",0);
}
return run>0;
if (r > 0) {
if (this.runNumbers.isEmpty() || r != this.runNumbers.get(this.runNumbers.size()-1)) {
this.runNumbers.add(r);
this.detectorChanged(r);
}
}
return !this.ignoreInvalidRunNumbers || r>0;
}

public void filterEvent(DataEvent dataEvent) {
public final void processDataEvent(DataEvent dataEvent) {
if (!this.wroteConfig) {
this.wroteConfig = true;
JsonUtils.extend(dataEvent, CONFIG_BANK_NAME, "json", this.generateConfig());
Expand All @@ -365,7 +371,7 @@ public void filterEvent(DataEvent dataEvent) {
}
if(this.applyTriggerMask(dataEvent)) {
if (this.checkRunNumber(dataEvent)) {
this.processDataEvent(dataEvent);
this.processDataEventUser(dataEvent);
}
}
}
Expand Down Expand Up @@ -404,7 +410,7 @@ public EngineData execute(EngineData input) {
}

try {
this.filterEvent(dataEventHipo);
this.processDataEvent(dataEventHipo);
output.setData(mt, dataEventHipo.getHipoEvent());
} catch (Exception e) {
String msg = String.format("Error processing input event%n%n%s", ClaraUtil.reportException(e));
Expand Down Expand Up @@ -446,42 +452,6 @@ public EngineData execute(EngineData input) {
}

return input;
/*
if (!mt.equalsIgnoreCase()) {
String msg = String.format("Wrong input type: %s", mt);
output.setStatus(EngineStatus.ERROR);
output.setDescription(msg);
return output;
}*/
/*
EvioDataEvent dataevent = null;

try {
ByteBuffer bb = (ByteBuffer) input.getData();
byte[] buffer = bb.array();
ByteOrder endianness = bb.order();
dataevent = new EvioDataEvent(buffer, endianness, EvioFactory.getDictionary());
} catch (Exception e) {
String msg = String.format("Error reading input event%n%n%s", ClaraUtil.reportException(e));
output.setStatus(EngineStatus.ERROR);
output.setDescription(msg);
return output;
}

try {
this.processDataEvent(dataevent);
ByteBuffer bbo = dataevent.getEventBuffer();
//byte[] buffero = bbo.array();
output.setData(mt, bbo);
} catch (Exception e) {
String msg = String.format("Error processing input event%n%n%s", ClaraUtil.reportException(e));
output.setStatus(EngineStatus.ERROR);
output.setDescription(msg);
return output;
}

return output;
*/
}

@Override
Expand Down Expand Up @@ -556,16 +526,21 @@ public Reco(){
super("a","b","c");
}
@Override
public boolean processDataEvent(DataEvent event) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
public boolean processDataEventUser(DataEvent event) {
throw new UnsupportedOperationException("Not supported yet.");
}

@Override
public boolean init() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
throw new UnsupportedOperationException("Not supported yet.");
}

}

@Override
public void detectorChanged(int runNumber) {
throw new UnsupportedOperationException("Not supported yet.");
}
}

public static void main(String[] args){
System.setProperty("CLAS12DIR", "/Users/gavalian/Work/Software/project-3a.0.0/Distribution/clas12-offline-software/coatjava");
try {
Expand All @@ -586,7 +561,6 @@ public static void main(String[] args){
"\"timestamp\":333\n" +
"}";
System.out.println(json);
//json = "{ \"ccdb\":{\"run\":10,\"variation\":\"default\"}, \"variation\":\"cosmic\"}";
Reco reco = new Reco();
String variation = reco.getStringConfigParameter(json, "variation");
System.out.println(" Variation : " + variation);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public boolean init() {
}

@Override
public boolean processDataEvent(DataEvent event) {
public boolean processDataEventUser(DataEvent event) {

// No CCDB table, hardcoded parameters in the extractor:
//mode3.update(6, null, event, "BMT::wf", "BMT::adc");
Expand All @@ -50,4 +50,7 @@ public boolean processDataEvent(DataEvent event) {
return true;
}

@Override
public void detectorChanged(int runNumber) {}

}
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ private void loadTables() {
}

@Override
public boolean processDataEvent(DataEvent event) {
public boolean processDataEventUser(DataEvent event) {
DataBank bank = event.getBank("RUN::config");
// Load the constants
// -------------------
Expand Down Expand Up @@ -195,4 +195,6 @@ public boolean init() {
return true;
}

@Override
public void detectorChanged(int runNumber) {}
}
2 changes: 2 additions & 0 deletions libexec/env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

export CLAS12DIR=$(cd $(dirname ${BASH_SOURCE[0]:-$0})/.. && pwd -P)

export PATH=$CLAS12DIR/bin:$PATH

# Set default field maps (but do not override user's env):
if [ -z "${COAT_MAGFIELD_TORUSMAP-}" ]; then
export COAT_MAGFIELD_TORUSMAP=Symm_torus_r2501_phi16_z251_24Apr2018.dat
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,11 @@ public boolean init(Mode m) {
return init();
}

@Override
public void detectorChanged(int run) {
// FIXME: move geometry initialization here
}

@Override
public boolean init() {

Expand Down Expand Up @@ -119,7 +124,7 @@ public boolean init() {
int Run = -1;

@Override
public boolean processDataEvent(DataEvent event) {
public boolean processDataEventUser(DataEvent event) {

int runNo = 10; // needed here?
int eventNo = 777; // same
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ public ALERTEngine() {
super("ALERT", "whit,ouillon,pilleux", "0.1");
}

@Override
public void detectorChanged(int run) {}

/**
* ALERTEngine initialization.
* Creates the RecoBankWriter and checks for various yaml flags.
Expand Down Expand Up @@ -90,7 +93,7 @@ public boolean init() {
* </ul>
*/
@Override
public boolean processDataEvent(DataEvent event) {
public boolean processDataEventUser(DataEvent event) {

if (!event.hasBank("AHDC::adc"))
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ public Detector getATOF() {
int Run = -1;

@Override
public boolean processDataEvent(DataEvent event) {
public boolean processDataEventUser(DataEvent event) {

if (!event.hasBank("RUN::config")) {
return true;
}
Expand Down Expand Up @@ -127,6 +128,11 @@ public boolean processDataEvent(DataEvent event) {
return true;
}

@Override
public void detectorChanged(int run) {
// FIXME: move geometry initialization here
}

@Override
public boolean init() {
rbc = new RecoBankWriter();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ private static double getTriggerPhase( DataEvent ev) {
if(ev.hasBank("RUN::config")) {
DataBank bank = ev.getBank("RUN::config");
long timeStamp = bank.getLong("timestamp", 0);
if( CalibrationConstantsLoader.JITTER_CYCLES > 0 && timeStamp != -1 ) {
if( CalibrationConstantsLoader.JITTER_CYCLES > 0 && timeStamp >= 0 ) {
tPh = CalibrationConstantsLoader.JITTER_PERIOD *
( ( timeStamp + CalibrationConstantsLoader.JITTER_PHASE ) %
CalibrationConstantsLoader.JITTER_CYCLES);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,9 @@ public CalibrationConstantsLoader() {
public static int LASER_COMPONENT = 6;
public static double[] LASER_CONV = {0,1,0};

public static synchronized void Load(int runno, String var, ConstantsManager manager) {
public static synchronized void Load(int runno, ConstantsManager manager) {

//System.out.println("*Loading calibration constants*");
manager.setVariation(var);

IndexedTable lroffsets = manager.getConstants(runno, "/calibration/band/lr_offsets");
IndexedTable timewalkL = manager.getConstants(runno, "/calibration/band/time_walk_amp_left");
Expand Down
Loading
Loading