Skip to content

Commit 8985fad

Browse files
committed
requires ccdb and use raw adc in KF
1 parent 8f68e2b commit 8985fad

1 file changed

Lines changed: 23 additions & 1 deletion

File tree

reconstruction/alert/src/main/java/org/jlab/service/alert/ALERTEngine.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import ai.djl.translate.TranslateException;
44
import java.io.File;
55
import java.util.ArrayList;
6+
import java.util.Arrays;
67
import java.util.Collections;
78
import java.util.Iterator;
89
import java.util.concurrent.atomic.AtomicInteger;
@@ -33,6 +34,7 @@
3334
import org.jlab.clas.pdg.PDGDatabase;
3435
import org.jlab.clas.pdg.PDGParticle;
3536
import java.util.logging.Logger;
37+
import org.jlab.rec.alert.constants.CalibrationConstantsLoader;
3638

3739

3840

@@ -112,6 +114,20 @@ public boolean init() {
112114
//if (Objects.equals(this.getEngineConfigString("Mode"), Mode.AI_Track_Finding.name()))
113115
// mode = Mode.AI_Track_Finding;
114116
}
117+
118+
// Requires calibration constants
119+
String[] alertTables = new String[] {
120+
"/calibration/alert/ahdc/time_offsets",
121+
"/calibration/alert/ahdc/time_to_distance",
122+
"/calibration/alert/ahdc/raw_hit_cuts",
123+
"/calibration/alert/atof/effective_velocity",
124+
"/calibration/alert/atof/time_walk",
125+
"/calibration/alert/atof/attenuation",
126+
"/calibration/alert/atof/time_offsets",
127+
"/calibration/alert/ahdc/gains",
128+
"/calibration/alert/ahdc/time_over_threshold"
129+
};
130+
requireConstants(Arrays.asList(alertTables));
115131
return true;
116132
}
117133

@@ -378,7 +394,13 @@ public boolean processDataEvent(DataEvent event) {
378394
double time = hitBank.getDouble("time", hit_row);
379395
double tot = hitBank.getDouble("timeOverThreshold", hit_row);
380396
// warning : adc is the calibrated one, we need the adc for the Kalman filter !
381-
Hit hit = new Hit(id, superlayer, layer, wire, doca, adc, time);
397+
int sector = 1; // constant value
398+
int key_value = sector*10000 + (superlayer*10 + layer)*100 + wire;
399+
double raw_adc = adc;
400+
double[] adc_gain = CalibrationConstantsLoader.AHDC_ADC_GAINS.get(key_value);
401+
if (adc_gain != null) raw_adc = adc/adc_gain[0];
402+
//System.out.println("adc : " + adc + " raw_adc : " + raw_adc);
403+
Hit hit = new Hit(id, superlayer, layer, wire, doca, raw_adc, time);
382404
hit.setWirePosition(AHDC);
383405
hit.setTrackId(trackid);
384406
hit.setADC(adc);

0 commit comments

Comments
 (0)