diff --git a/.github-ci.yaml b/.github-ci.yaml
deleted file mode 120000
index e978df9245..0000000000
--- a/.github-ci.yaml
+++ /dev/null
@@ -1 +0,0 @@
-.github/workflows/ci.yml
\ No newline at end of file
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index c137a994ff..13c7fea22c 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -19,7 +19,10 @@ updates:
prefix: "build(deps)"
ignore:
- dependency-name: "org.jlab:groot" # since version numbers are not in order
- - dependency-name: "org.ejml:ejml-simple" # keep version the same as `j4ml:j4ml-clas12:jar:0.9-SNAPSHOT`; see pull requests #636 and #632
+ - dependency-name: "net.objecthunter:exp4j" # pinned for dependency convergence
+ - dependency-name: "org.ejml:ejml-simple" # pinned for dependency convergence
+ - dependency-name: "org.apache.commons:commons-lang3" # pinned for dependency convergence
+ - dependency-name: "org.slf4j:slf4j-api" # pinned for dependency convergence
- dependency-name: "org.openjfx:javafx-base"
versions: [">= 24"] # version 24 requires JAVA_VERSION 22+
- dependency-name: "org.openjfx:javafx-graphics"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 4967588f6e..907516a5c5 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -61,7 +61,7 @@ jobs:
runs-on: macos-latest
steps:
- uses: actions/checkout@v7
- - uses: actions/setup-java@v5.7.0
+ - uses: actions/setup-java@v6.0.1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
@@ -72,7 +72,7 @@ jobs:
- name: build
run: |
./build-coatjava.sh --lfs --no-progress -T${{ env.nthreads }}
- ./bin/install-clara -b -c ./coatjava ./clara
+ ./bin/install-clara -c ./coatjava ./clara
- name: tar # tarball to preserve permissions
run: |
tar czvf coatjava.tar.gz coatjava
@@ -91,7 +91,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- - uses: actions/setup-java@v5.7.0
+ - uses: actions/setup-java@v6.0.1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
@@ -102,7 +102,7 @@ jobs:
- name: build
run: |
./build-coatjava.sh --lfs --no-progress -T${{ env.nthreads }}
- ./bin/install-clara -b -c ./coatjava ./clara
+ ./bin/install-clara -c ./coatjava ./clara
- name: tar # tarball to preserve permissions
run: |
tar czvf coatjava.tar.gz coatjava
@@ -115,6 +115,26 @@ jobs:
coatjava.tar.gz
clara.tar.gz
+ dependency_info:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v7
+ - name: Set up JDK
+ uses: actions/setup-java@v6.0.1
+ with:
+ java-version: ${{ env.JAVA_VERSION }}
+ distribution: ${{ env.java_distribution }}
+ # NOTE: do not use `cache: maven` here, so stale `_remote.repositories` data aren't read
+ - name: build
+ run: |
+ ./build-coatjava.sh --no-aux --no-progress --quiet -T${{ env.nthreads }}
+ - name: collect info
+ run: libexec/dependency-info.rb
+ - name: print dependency trees
+ run: cat target/info/trees.txt
+ - name: print dependency repository sources
+ run: cat target/info/repos.yaml
+
# tests
#############################################################################
@@ -137,7 +157,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- - uses: actions/setup-java@v5.7.0
+ - uses: actions/setup-java@v6.0.1
with:
java-version: ${{ matrix.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
@@ -161,7 +181,7 @@ jobs:
steps:
- uses: actions/checkout@v7
- name: Set up JDK
- uses: actions/setup-java@v5.7.0
+ uses: actions/setup-java@v6.0.1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
@@ -170,7 +190,7 @@ jobs:
with:
name: build_ubuntu-latest
- name: untar build
- run: tar xzvf coatjava.tar.gz
+ run: tar xzf coatjava.tar.gz
- name: spotbugs
run: ./build-coatjava.sh --spotbugs --no-maps --no-progress
@@ -180,7 +200,7 @@ jobs:
steps:
- uses: actions/checkout@v7
- name: Set up JDK
- uses: actions/setup-java@v5.7.0
+ uses: actions/setup-java@v6.0.1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
@@ -194,7 +214,7 @@ jobs:
path: |
clas_018779.evio.00001
- name: untar build
- run: tar xzvf coatjava.tar.gz
+ run: tar xzf coatjava.tar.gz
- name: run test
run: |
ls -lhtr
@@ -209,7 +229,7 @@ jobs:
steps:
- uses: actions/checkout@v7
- name: Set up JDK
- uses: actions/setup-java@v5.7.0
+ uses: actions/setup-java@v6.0.1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
@@ -224,11 +244,11 @@ jobs:
clas_018779.evio.00001
- name: untar build
run: |
- tar xzvf clara.tar.gz
- tar xzvf coatjava.tar.gz
+ tar xzf clara.tar.gz
+ tar xzf coatjava.tar.gz
- run: ls
- name: run test
- run: ./bin/run-clara -y ./etc/services/rgd-clarode.yml -t 4 -n 500 -c ./clara -o ./tmp ./clas_018779.evio.00001
+ run: ./bin/run-clara -y ./etc/services/data-ai.yaml -t 4 -n 500 -c ./clara -o ./tmp ./clas_018779.evio.00001
- name: ls tmp
run: ls -lhtr tmp
- name: rename
@@ -267,7 +287,7 @@ jobs:
steps:
- uses: actions/checkout@v7
- name: Set up JDK
- uses: actions/setup-java@v5.7.0
+ uses: actions/setup-java@v6.0.1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
@@ -277,8 +297,8 @@ jobs:
name: build_${{ matrix.runner }}
- name: untar build
run: |
- tar xzvf coatjava.tar.gz
- tar xzvf clara.tar.gz
+ tar xzf coatjava.tar.gz
+ tar xzf clara.tar.gz
- name: run test
run: |
git lfs install
@@ -295,7 +315,7 @@ jobs:
steps:
- uses: actions/checkout@v7
- name: Set up JDK
- uses: actions/setup-java@v5.7.0
+ uses: actions/setup-java@v6.0.1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
@@ -305,8 +325,8 @@ jobs:
name: build_macos
- name: untar build
run: |
- tar xzvf coatjava.tar.gz
- tar xzvf clara.tar.gz
+ tar xzf coatjava.tar.gz
+ tar xzf clara.tar.gz
- name: run test
run: |
git lfs install
@@ -320,7 +340,7 @@ jobs:
steps:
- uses: actions/checkout@v7
- name: Set up JDK
- uses: actions/setup-java@v5.7.0
+ uses: actions/setup-java@v6.0.1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
@@ -333,7 +353,7 @@ jobs:
with:
name: build_ubuntu-latest
- name: untar build
- run: tar xzvf coatjava.tar.gz
+ run: tar xzf coatjava.tar.gz
- name: test run-groovy
run: coatjava/bin/run-groovy validation/advanced-tests/test-run-groovy.groovy
@@ -343,7 +363,7 @@ jobs:
steps:
- uses: actions/checkout@v7
- name: Set up JDK
- uses: actions/setup-java@v5.7.0
+ uses: actions/setup-java@v6.0.1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
@@ -355,7 +375,7 @@ jobs:
with:
name: build_ubuntu-latest
- name: untar build
- run: tar xzvf coatjava.tar.gz
+ run: tar xzf coatjava.tar.gz
- name: hipo2npz
run: ./coatjava/bin/hipo2npz rec.hipo rec.npz
- name: hipo2npz-dump
@@ -384,7 +404,7 @@ jobs:
path: pages/jacoco
### javadoc
- name: set up JDK
- uses: actions/setup-java@v5.7.0
+ uses: actions/setup-java@v6.0.1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.java_distribution }}
@@ -440,7 +460,7 @@ jobs:
mv coatjava{,-${{ env.TAG_NAME }}}
tar czf coatjava-${{ env.TAG_NAME }}{.tar.gz,}
- name: release
- uses: softprops/action-gh-release@v3.0.2
+ uses: softprops/action-gh-release@v3.0.3
with:
files: coatjava-${{ env.TAG_NAME }}.tar.gz
- name: open issue if failed
diff --git a/.gitignore b/.gitignore
index 0bdf3fdcef..9f0aad0fba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,11 @@ target
tmp
/common-tools/clas-io/src/main/java/org/jlab/io/banks
+# data files
+*.evio
+*.hipo
+!/etc/data/test/*.hipo
+
# deployment
/myLocalMvnRepo
/coatjava-*.tar.gz
@@ -50,7 +55,6 @@ hs_err_pid*
# no log files:
*.log
-*.evio
bin/evio2hipotest
export.sh
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d42ca40d5f..9ca4518b79 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -172,16 +172,16 @@ clara:
dependencies: [build,download]
script:
- tar -xzf clara.tar.gz
- - run-clara -v -c $CLARA_HOME -t 4 -y ./etc/services/rgd-clarode.yml -n 30 -o out $EVIOFILE
+ - run-clara -v -c $CLARA_HOME -t 4 -y ./etc/services/data-ai.yaml -n 30 -o out $EVIOFILE
- mv out/rec_$EVIOFILE.hipo claroded.hipo
profile:
extends: .clon
allow_failure: true
script:
- - ./clara/plugins/clas12/libexec/profile -e cpu run-clara -c ./clara -y ./etc/services/rgd-clarode.yml -o tmp1 -t 16 -l $EVIOFILE
- - ./clara/plugins/clas12/libexec/profile -e alloc run-clara -c ./clara -y ./etc/services/rgd-clarode.yml -o tmp2 -t 16 -l $EVIOFILE
- - ./clara/plugins/clas12/libexec/profile -e lock run-clara -c ./clara -y ./etc/services/rgd-clarode.yml -o tmp3 -t 16 -l $EVIOFILE
+ - ./clara/plugins/clas12/libexec/profile -e cpu -o _clara -- run-clara -c ./clara -y ./etc/services/data-ai.yaml -o tmp1 -t 16 -l $EVIOFILE
+ - ./clara/plugins/clas12/libexec/profile -e alloc -o _clara -- run-clara -c ./clara -y ./etc/services/data-ai.yaml -o tmp2 -t 16 -l $EVIOFILE
+ - ./clara/plugins/clas12/libexec/profile -e lock -o _clara -- run-clara -c ./clara -y ./etc/services/data-ai.yaml -o tmp3 -t 16 -l $EVIOFILE
artifacts:
when: always
expire_in: 1 week
@@ -192,12 +192,12 @@ scaling:
extends: .clon
allow_failure: true
script:
- - ./clara/plugins/clas12/libexec/scaling -c ./clara -y ./etc/services/rgd-clarode.yml -t 8,12,18,24 $EVIOFILE
+ - ./clara/plugins/clas12/libexec/scaling -c ./clara -y ./etc/services/data-ai.yaml -t 8,12,18,24 $EVIOFILE
artifacts:
when: always
expire_in: 1 week
paths:
- - scaling.svg
+ - scaling*.svg
pages:
stage: deploy
@@ -207,7 +207,7 @@ pages:
- cp -r pages public
- mkdir public/perf
- cp asprof*.html public/perf
- - cp scaling.svg public/perf
+ - cp scaling*.svg public/perf
pages: true
artifacts:
expire_in: 1 week
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000..fe7cf3c86c
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,24 @@
+# this is a simple Makefile meant for developers' convenience
+# - it only has the most common build commands we use
+# - for any other build command, please use `./build-coatjava.sh`
+
+# convert `make` arg `-j#` -> `mvn` arg `-T#`, if provided
+JOBS := $(patsubst -j%,%,$(filter -j%,$(MAKEFLAGS)))
+THREADS := $(if $(strip $(JOBS)),-T$(JOBS),)
+
+BUILD := ./build-coatjava.sh
+
+.PHONY: default all clean clara
+
+.DEFAULT_GOAL := default
+
+default:
+ $(BUILD) $(THREADS)
+
+clean:
+ $(BUILD) --clean $(THREADS)
+
+clara:
+ $(BUILD) --clara $(THREADS)
+
+all: clara
diff --git a/bin/install-clara b/bin/install-clara
index d510db20f3..48b3ffb44e 100755
--- a/bin/install-clara
+++ b/bin/install-clara
@@ -71,13 +71,12 @@ trap cleanup EXIT
# Configure:
debug=0
args=()
-usage="Usage: install-clara [-v] [-b] [-c COATJAVA] [-f CLARA] [-g GRAPES] PATH"
+usage="Usage: install-clara [-v] [-c COATJAVA] [-f CLARA] [-g GRAPES] PATH"
info="""
- The default CLARA / GRAPES versions are $clara / $grapes
- COATJAVA can also be specified as a local installation directory
- If the COATJAVA version is not specified, it will try to auto-detect it.
-- [-v adds verbosity and disables cleanup]
-- [-b builds clara from source]"""
+- [-v adds verbosity and disables cleanup]"""
while [[ $# -gt 0 ]]
do
@@ -86,7 +85,6 @@ do
-f) clara="$2" && shift && shift ;;
-c) coatjava="$2" && shift && shift ;;
-g) grapes="$2" && shift && shift ;;
- -b) build=1 && shift ;;
-v) let debug=$debug+1 && shift ;;
-*|--*) echo -e "$usage\n\nUnknown option: $1" && exit 1 ;;
*) args+=("$1") && shift ;;
@@ -126,14 +124,8 @@ tmp_dir=$(cd $tmp_dir && pwd)
cd $tmp_dir
# CLARA:
-if ! [ -z ${build+x} ]
-then
- echo -e "\nBuilding CLARA from source ..."
- build_clara $PWD/clara-cre
-else
- echo -e "\nRetrieving CLARA version $clara ..."
- get https://clasweb.jlab.org/clas12offline/distribution/clara/clara-cre-$clara.tar.gz
-fi
+echo -e "\nBuilding CLARA from source ..."
+build_clara $PWD/clara-cre
# COATJAVA:
if ! compgen -G "$coatjava/lib/clas/coat-libs-*.jar" > /dev/null
diff --git a/bin/postprocess2 b/bin/postprocess2
deleted file mode 100755
index b10c9ff07a..0000000000
--- a/bin/postprocess2
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-. `dirname $0`/../libexec/env.sh
-
-export MALLOC_ARENA_MAX=1
-
-java ${JAVA_OPTS-} -Xmx768m -Xms768m -XX:+UseSerialGC \
- -cp ${COATJAVA_CLASSPATH:-''} \
- org.jlab.analysis.postprocess.Processor \
- $*
diff --git a/bin/run-groovy b/bin/run-groovy
index b8412ce507..bf2f3f8f72 100755
--- a/bin/run-groovy
+++ b/bin/run-groovy
@@ -1,11 +1,4 @@
#!/bin/bash
. `dirname $0`/../libexec/env.sh groovy
-
-echo """
-****************************************
-* Running COATJAVA Groovy Script *
-****************************************
-"""
-
groovy -cp "$JYPATH" "$@"
diff --git a/build-coatjava.sh b/build-coatjava.sh
index 1586b1fa05..257cd2a02c 100755
--- a/build-coatjava.sh
+++ b/build-coatjava.sh
@@ -80,6 +80,7 @@ do
--https) auxRetrieval=https ;;
--wipe) auxRetrieval=wipe ;;
--no-aux|--noaux)
+ auxRetrieval=noaux
auxDownloadMaps=false
auxDownloadNets=false
auxDownloadSqlites=false
@@ -107,7 +108,7 @@ do
esac
done
-echo "---------------------- ARGUMENTS ----------------------"
+echo "------------------ Configuration ----------------------"
print_arg() {
printf " %30s = " "$1"
shift
@@ -206,6 +207,8 @@ case $auxRetrieval in
;;
https)
;;
+ noaux)
+ ;;
*)
echo "ERROR: data retrieval option \`--$auxRetrieval\` is not supported" >&2
exit 1
@@ -354,7 +357,7 @@ $python etc/bankdefs/util/bankSplit.py $prefix_dir/etc/bankdefs/hipo4 || exit 1
# use maven to copy a CLARA jar to a separate directory:
mvn org.apache.maven.plugins:maven-dependency-plugin:3.10.0:copy \
- -Dartifact=org.jlab.coda:jclara:4.3:jar -DoutputDirectory=$prefix_dir/lib/utils -DstripVersion=false
+ -Dartifact=org.jlab.coda:jclara:6.0-SNAPSHOT:jar -DoutputDirectory=$prefix_dir/lib/utils -DstripVersion=false
# build (and test)
unset CLAS12DIR
diff --git a/common-tools/clara-io/pom.xml b/common-tools/clara-io/pom.xml
index f5f100138e..121ef8b855 100644
--- a/common-tools/clara-io/pom.xml
+++ b/common-tools/clara-io/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas
clara-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -39,31 +39,18 @@
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
-
- org.jlab.clas
- clas-analysis
- 14.2.0-SNAPSHOT
-
-
-
- org.jlab.clas
- clas-utils
- 14.2.0-SNAPSHOT
-
-
org.apache.commons
commons-text
- 1.15.0
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 a094b939cd..e142e6bb5d 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
@@ -1,22 +1,13 @@
package org.jlab.io.clara;
-import java.io.File;
import java.nio.file.Path;
-import java.util.List;
-import java.util.TreeMap;
-import java.util.TreeSet;
-import org.jlab.analysis.postprocess.Processor;
import org.jlab.clara.std.services.EventWriterException;
import org.jlab.detector.calib.utils.ConstantsManager;
-import org.jlab.detector.decode.CLASDecoder4;
-import org.jlab.detector.helicity.HelicitySequence;
-import org.jlab.detector.helicity.HelicitySequenceDelayed;
-import org.jlab.detector.helicity.HelicityState;
-import org.jlab.detector.scalers.DaqScalersSequence;
+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.HipoReader;
import org.jlab.jnp.hipo4.io.HipoWriterSorted;
import org.jlab.jnp.utils.file.FileUtils;
import org.json.JSONObject;
@@ -28,39 +19,34 @@
* 3. Writes HEL::flip, RUN/HEL::scaler, and RUN::unix to new tag-1 events
* 4. Runs post-processing, writing tag-1 information to all events
* 5. Adds .hipo to the output filename, if necessary
- *
+ * 6. Outputs a parallel file of select trigger bits with a raw schema
* @author baltzell
*/
public class Clas12Writer extends HipoToHipoWriter {
- static final String[] TAG1BANKS = {"RUN::scaler","HEL::scaler","RAW::scaler","RAW::epics","HEL::flip","COAT::config"};
-
- Bank[] tag1banks;
+ Occupancer occupancer;
+ SerialHoncho serial;
Bank runConfig;
- Bank helicityAdc;
ConstantsManager conman;
- TreeMap eventUnix;
- TreeSet helicities;
- DaqScalersSequence scalers;
SchemaFactory fullSchema;
- boolean postprocess;
+
+ HipoWriterSorted paraWriter;
+ long paraCount;
+ long paraTriggerMask;
+ int paraTriggerPrescale;
private void init(JSONObject opts) {
+ occupancer = new Occupancer((long)1<<39,100);
fullSchema = new SchemaFactory();
fullSchema.initFromDirectory(FileUtils.getEnvironmentPath("CLAS12DIR","etc/bankdefs/hipo4"));
+ serial = new SerialHoncho(fullSchema);
runConfig = new Bank(fullSchema.getSchema("RUN::config"));
- helicityAdc = new Bank(fullSchema.getSchema("HEL::adc"));
- helicities = new TreeSet<>();
- scalers = new DaqScalersSequence(fullSchema);
conman = new ConstantsManager();
- eventUnix = new TreeMap<>();
conman.init("/runcontrol/hwp","/runcontrol/helicity");
- postprocess = opts.optBoolean("postprocess", false);
+ paraTriggerMask = opts.optLong("paraTriggerMask", 0);
+ paraTriggerPrescale = opts.optInt("paraTriggerPrescale", 0);
if (opts.has("variation")) conman.setVariation(opts.getString("variation"));
if (opts.has("timestamp")) conman.setTimeStamp(opts.getString("timestamp"));
- tag1banks = new Bank[TAG1BANKS.length];
- for (int i=0; i 0) {
+ paraWriter = new HipoWriterSorted();
+ paraWriter.getSchemaFactory().copy(fullSchema);
+ paraWriter.open(dirname + "/tb" + basename.substring(basename.indexOf("_")));
+ }
+ w.open(dirname + "/" + basename);
return w;
} catch (Exception e) {
throw new EventWriterException(e);
@@ -78,89 +72,29 @@ protected HipoWriterSorted createWriter(Path file, JSONObject opts) throws Event
@Override
protected void writeEvent(Object event) throws EventWriterException {
- scalers.add((Event)event);
- ((Event)event).read(runConfig);
- ((Event)event).read(helicityAdc);
- if (runConfig.getRows() > 0) {
- int unix = runConfig.getInt("unixtime",0);
- int evno = runConfig.getInt("event",0);
- if (unix > 0 && evno > 0) eventUnix.put(evno, unix);
- }
- helicities.add(HelicityState.createFromFadcBank(helicityAdc, runConfig, conman));
- Event t = CLASDecoder4.createTaggedEvent((Event)event, runConfig, tag1banks);
+ Event t = serial.read((Event)event);
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());
+ }
}
@Override
protected void closeWriter() {
- HelicitySequence.writeFlips(fullSchema, writer, helicities);
- writer.addEvent(getUnixEvent(runConfig),1);
+ serial.closure(writer);
super.closeWriter();
- if (postprocess) postprocess();
- // keep the latest helicity/scaler reading for the next file:
- while (helicities.size() > 60) helicities.pollFirst();
- scalers.clear(10);
+ serial.clear();
+ if (paraTriggerMask > 0) paraWriter.close();
}
- /**
- * Get the first valid run number from a RUN::config bank.
- * @return run
- */
- private int getRunNumber() {
- Event e = new Event();
- HipoReader r = new HipoReader();
- r.open(filename);
- while (r.hasNext()) {
- r.nextEvent(e);
- e.read(runConfig);
- if (runConfig.getRows()>0 && runConfig.getInt("run",0)>0)
- return runConfig.getInt("run",0);
- }
- return 0;
- }
-
- /**
- * Get a new event with a RUN::unix bank containing event-timestamp mapping,
- * and the latest RUN::config bank.
- * @param config
- * @return
- */
- private Event getUnixEvent(Bank config) {
- Bank unix = new Bank(fullSchema.getSchema("RUN::unix"));
- unix.setRows(eventUnix.size());
- int row = 0;
- for (int evno : eventUnix.keySet()) {
- unix.putInt("event", row, evno);
- unix.putInt("unixtime",row, eventUnix.get(evno));
- row++;
- }
- Event e = new Event();
- e.write(config);
- e.write(unix);
- return e;
- }
-
- /**
- * Copy helicity/charge tag-1 information to all events.
- */
- private void postprocess() {
- int d = conman.getConstants(getRunNumber(), "/runcontrol/helicity").getIntValue("delay",0,0,0);
- HelicitySequenceDelayed helicity = new HelicitySequenceDelayed(d);
- helicity.addStream(helicities);
- Processor p = new Processor(List.of(filename), fullSchema, helicity, scalers);
- HipoReader r = new HipoReader();
- r.open(filename);
- Event e = new Event();
- writer.open("pp_"+filename);
- while (r.hasNext()) {
- r.nextEvent(e);
- p.processEvent(e);
- HipoToHipoWriter.writeEvent(writer, e, schemaBankList);
- }
- writer.close();
- new File(filename).delete();
- new File("pp_"+filename).renameTo(new File(filename));
- }
-
}
diff --git a/common-tools/clara-io/src/main/java/org/jlab/io/clara/HipoToHipoWriter.java b/common-tools/clara-io/src/main/java/org/jlab/io/clara/HipoToHipoWriter.java
index df83b1c069..cda04c0232 100644
--- a/common-tools/clara-io/src/main/java/org/jlab/io/clara/HipoToHipoWriter.java
+++ b/common-tools/clara-io/src/main/java/org/jlab/io/clara/HipoToHipoWriter.java
@@ -28,13 +28,16 @@ public class HipoToHipoWriter extends AbstractEventWriterService schemaBankList = new ArrayList();
- private final StringSubstitutor envSubstitutor = new StringSubstitutor(System.getenv());
+ protected final List schemaBankList = new ArrayList<>();
+ private static final StringSubstitutor envSubstitutor = new StringSubstitutor(System.getenv());
- private int compression = 2;
protected String filename;
+ private long schemaPrescaleEvents = 0;
+ private int schemaPrescale = 0;
+
@Override
protected HipoWriterSorted createWriter(Path file, JSONObject opts) throws EventWriterException {
try {
@@ -48,14 +51,7 @@ protected HipoWriterSorted createWriter(Path file, JSONObject opts) throws Event
}
}
- protected void configure(HipoWriterSorted writer, JSONObject opts) {
- schemaBankList.clear();
- if (opts.has(CONF_COMPRESSION)) {
- compression = opts.getInt(CONF_COMPRESSION);
- System.out.printf("%s service: compression level = %d%n", getName(), compression);
- }
- writer.setCompressionType(compression);
-
+ static String chooseSchemaDirectory(JSONObject opts) {
String schemaDir = FileUtils.getEnvironmentPath("CLAS12DIR", "etc/bankdefs/hipo4");
if (opts.has(CONF_SCHEMA_DIR)) {
// Run YAML values throuh env-substitor:
@@ -64,28 +60,38 @@ protected void configure(HipoWriterSorted writer, JSONObject opts) {
// If it's not already an absolute path, assume it's the name of a
// stock schema that comes with COATJAVA and get the full path to it:
if (!schemaDir.startsWith("/")) schemaDir = ClaraYaml.getStockSchemaDirectory(schemaDir);
- System.out.printf("%s service: schema directory = %s%n", getName(), schemaDir);
}
+ return schemaDir;
+ }
+
+ protected void configure(HipoWriterSorted writer, JSONObject opts) {
+
+ // set schema prescale factor:
+ schemaPrescale = opts.optInt(CONF_SCHEMA_PRESCALE, 0);
+ // create full schema:
+ SchemaFactory fullSchema = new SchemaFactory();
+ fullSchema.initFromDirectory(FileUtils.getEnvironmentPath("CLAS12DIR","etc/bankdefs/hipo4"));
+
+ // set writer compression and schema:
+ writer.setCompressionType(opts.optInt(CONF_COMPRESSION, 2));
+ writer.getSchemaFactory().copy(fullSchema);
+
+ // create schema from chosen directory and wildcard reduce:
+ String schemaDir = chooseSchemaDirectory(opts);
SchemaFactory factory = new SchemaFactory();
factory.initFromDirectory(schemaDir);
-
- if(opts.has(CONF_SCHEMA_WILDCARD)==true){
- String wildcard = opts.getString("wildcard");
- SchemaFactory f2 = factory.reduce(wildcard);
- writer.getSchemaFactory().copy(f2);
- } else {
- writer.getSchemaFactory().copy(factory);
+ if (opts.has(CONF_SCHEMA_WILDCARD)) {
+ factory = factory.reduce(opts.getString(CONF_SCHEMA_WILDCARD));
}
- if (opts.has(CONF_SCHEMA_DIR)==true||opts.has(CONF_SCHEMA_WILDCARD)==true) {
- boolean useFilter = opts.optBoolean(CONF_SCHEMA_FILTER, true);
- System.out.printf("%s service: schema filter = %b%n", getName(), useFilter);
- if(useFilter==true){
- int schemaSize = writer.getSchemaFactory().getSchemaList().size();
- for(int i = 0; i < schemaSize; i++){
- Bank dataBank = new Bank(writer.getSchemaFactory().getSchemaList().get(i));
- schemaBankList.add(dataBank);
+ // set the resulting bank list for filtering:
+ schemaBankList.clear();
+ if (opts.has(CONF_SCHEMA_DIR) || opts.has(CONF_SCHEMA_WILDCARD)) {
+ if (opts.optBoolean(CONF_SCHEMA_FILTER, true)) {
+ int schemaSize = factory.getSchemaList().size();
+ for (int i = 0; i < schemaSize; i++) {
+ schemaBankList.add(new Bank(factory.getSchemaList().get(i)));
}
}
}
@@ -95,10 +101,6 @@ protected void configure(HipoWriterSorted writer, JSONObject opts) {
System.out.printf("SERVICE WRITER :: [wildcard] %s\n",opts.has(HipoToHipoWriter.CONF_SCHEMA_WILDCARD));
}
- private Method getSchemaFilterSetter() throws NoSuchMethodException, SecurityException {
- return HipoWriter.class.getMethod("setSchemaFilter", boolean.class);
- }
-
@Override
protected void closeWriter() {
writer.close();
@@ -107,7 +109,7 @@ protected void closeWriter() {
public static void writeEvent(HipoWriterSorted w, Event e, List schema) {
int tag = e.getEventTag();
- if (tag==1 || schema.isEmpty()) {
+ if (tag==1 || schema == null || schema.isEmpty()) {
w.addEvent(e,tag);
}
else {
@@ -118,7 +120,10 @@ public static void writeEvent(HipoWriterSorted w, Event e, List schema) {
@Override
protected void writeEvent(Object event) throws EventWriterException {
try {
- writeEvent(writer, (Event)event, schemaBankList);
+ if (schemaPrescale <= 0 || (++schemaPrescaleEvents % schemaPrescale) != 0)
+ writeEvent(writer, (Event)event, schemaBankList);
+ else
+ writeEvent(writer, (Event)event, null);
} catch (Exception e) {
throw new EventWriterException(e);
}
diff --git a/common-tools/clas-analysis/pom.xml b/common-tools/clas-analysis/pom.xml
index e82d88f19a..dce86297aa 100644
--- a/common-tools/clas-analysis/pom.xml
+++ b/common-tools/clas-analysis/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas
clas-analysis
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -38,49 +38,49 @@
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-jcsg
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
swim-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java
deleted file mode 100644
index 7652b74d4c..0000000000
--- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Processor.java
+++ /dev/null
@@ -1,277 +0,0 @@
-package org.jlab.analysis.postprocess;
-
-import java.util.List;
-import java.util.TreeMap;
-
-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.HipoReader;
-import org.jlab.io.base.DataBank;
-import org.jlab.io.base.DataEvent;
-import org.jlab.io.hipo.HipoDataBank;
-
-import org.jlab.detector.calib.utils.ConstantsManager;
-import org.jlab.detector.scalers.DaqScalers;
-import org.jlab.detector.scalers.DaqScalersSequence;
-import org.jlab.detector.helicity.HelicityBit;
-import org.jlab.detector.helicity.HelicitySequenceDelayed;
-import org.jlab.jnp.hipo4.io.HipoWriterSorted;
-import org.jlab.utils.options.OptionParser;
-import org.jlab.utils.system.ClasUtilsFile;
-
-/**
- *
- * @author baltzell
- */
-public class Processor {
-
- public static final String CCDB_TABLES[] = {"/runcontrol/fcup","/runcontrol/slm",
- "/runcontrol/helicity","/daq/config/scalers/dsc1","/runcontrol/hwp"};
-
- private Bank runConfig = null;
- private Bank recEvent = null;
- private ConstantsManager conman = null;
- private SchemaFactory schemaFactory = null;
- private DaqScalersSequence chargeSequence = null;
- private HelicitySequenceDelayed helicitySequence = null;
- private TreeMap eventUnix = null;
-
- public Processor(List files, boolean restream, boolean rebuild) {
- HipoReader r = new HipoReader();
- r.open(files.get(0));
- schemaFactory = r.getSchemaFactory();
- r.close();
- runConfig = new Bank(schemaFactory.getSchema("RUN::config"));
- recEvent = new Bank(schemaFactory.getSchema("REC::Event"));
- conman = new ConstantsManager();
- conman.init(CCDB_TABLES);
- helicitySequence = Util.getHelicity(files, schemaFactory, restream, conman);
- if (rebuild) chargeSequence = DaqScalersSequence.rebuildSequence(1, conman, files);
- else chargeSequence = DaqScalersSequence.readSequence(files);
- eventUnix = getEventUnixMap(schemaFactory, files);
- }
-
- public Processor(List files, SchemaFactory schema, HelicitySequenceDelayed h, DaqScalersSequence s) {
- schemaFactory = schema;
- helicitySequence = h;
- chargeSequence = s;
- runConfig = new Bank(schemaFactory.getSchema("RUN::config"));
- recEvent = new Bank(schemaFactory.getSchema("REC::Event"));
- conman = new ConstantsManager();
- conman.init(CCDB_TABLES);
- eventUnix = getEventUnixMap(schemaFactory, files);
- }
-
- /**
- * Load the mapping from event number to unix time
- * @param schema
- * @param files
- * @return map
- */
- public static TreeMap getEventUnixMap(SchemaFactory schema, List files) {
- TreeMap m = new TreeMap<>();
- Event e = new Event();
- Bank b = schema.getBank("RUN::unix");//new Bank(schema.getSchema("RUN::unix"));
- for (String f : files) {
- HipoReader r = new HipoReader();
- r.setTags(1);
- r.open(f);
- while (r.hasNext()) {
- r.nextEvent(e);
- e.read(b);
- int size = b.getRows();
- for (int i=0; i0) {
- event.removeBank("HEL::scaler");
- Util.assignScalerHelicity(runcfg.getLong("timestamp",0), ((HipoDataBank)helScaler).getBank(), helicitySequence);
- event.appendBank(helScaler);
- }
- }
-
- /**
- * Modify REC::Event/HEL::scaler with the delay-corrected helicity
- * @param event
- * @param runcfg
- * @param recevt
- */
- private void processEventHelicity(Event event, Bank runcfg, Bank recevt) {
- HelicityBit hb = helicitySequence.search(runcfg.getLong("timestamp", 0));
- HelicityBit hbraw = helicitySequence.getHalfWavePlate() ? HelicityBit.getFlipped(hb) : hb;
- recevt.putByte("helicity",0,hb.value());
- recevt.putByte("helicityRaw",0,hbraw.value());
- Bank helScaler = new Bank(schemaFactory.getSchema("HEL::scaler"));
- event.read(helScaler);
- if (helScaler.getRows()>0) {
- event.remove(schemaFactory.getSchema("HEL::scaler"));
- Util.assignScalerHelicity(runcfg.getLong("timestamp",0), helScaler, helicitySequence);
- event.write(helScaler);
- }
- }
-
- /**
- * Modify REC::Event for beam charge and livetime
- * @param runcfg
- * @param recevt
- */
- private void processEventScalers(DataBank runcfg, DataBank recevt) {
- DaqScalers ds = chargeSequence.get(runcfg.getLong("timestamp", 0));
- if (ds != null) {
- recevt.setFloat("beamCharge",0, (float) ds.dsc2.getBeamChargeGated());
- recevt.setDouble("liveTime",0,ds.dsc2.getLivetime());
- }
- }
-
- /**
- * Modify REC::Event for beam charge and livetime
- * @param runcfg
- * @param recevt
- */
- private void processEventScalers(Bank runcfg, Bank recevt) {
- DaqScalers ds = chargeSequence.get(runcfg.getLong("timestamp", 0));
- if (ds != null) {
- recevt.putFloat("beamCharge",0, (float) ds.dsc2.getBeamChargeGated());
- recevt.putDouble("liveTime",0,ds.dsc2.getLivetime());
- }
- }
-
- /**
- * Modify RUN::config's unixtime and update the event
- * @param event
- * @param runcfg
- */
- private void processEventUnix(Event event, Bank runcfg) {
- if (runcfg.getRows() > 0) {
- Integer key = eventUnix.floorKey(runcfg.getInt("event",0));
- if (key != null) {
- Integer unix = eventUnix.get(key);
- if (unix != null) {
- event.remove(runcfg.getSchema());
- runcfg.putInt("unixtime", 0, unix);
- event.write(runcfg);
- }
- }
- }
- }
-
- /**
- * Modify RUN::config's unixtime and update the event
- * @param event
- * @param runcfg
- */
- private void processEventUnix(DataEvent event, DataBank runcfg) {
- if (runcfg.rows() > 0) {
- Integer key = eventUnix.floorKey(runcfg.getInt("event",0));
- if (key != null) {
- Integer unix = eventUnix.get(key);
- if (unix != null) {
- event.removeBank(runcfg.getDescriptor().getName());
- runcfg.setInt("unixtime", 0, unix);
- event.appendBank(runcfg);
- }
- }
- }
- }
-
- /**
- * Postprocess one event
- * @param event
- */
- public void processEvent(DataEvent event) {
- if (event.hasBank("RUN::config")) {
- DataBank runcfg = event.getBank("RUN::config");
- if (runcfg.rows() > 0) {
- processEventUnix(event, runcfg);
- if (event.hasBank("REC::Event")) {
- DataBank recevt = event.getBank("REC::Event");
- if (recevt.rows() > 0) {
- event.removeBank("REC::Event");
- if (helicitySequence != null) processEventHelicity(event, runcfg, recevt);
- if (chargeSequence != null) processEventScalers(runcfg, recevt);
- event.appendBank(recevt);
- }
- }
- }
- }
- }
-
- /**
- * Postprocess one event
- * @param event
- */
- public void processEvent(Event event) {
- event.read(runConfig);
- event.read(recEvent);
- if (runConfig.getRows() > 0) {
- processEventUnix(event, runConfig);
- if (recEvent.getRows() > 0) {
- event.remove(recEvent.getSchema());
- if (helicitySequence != null) processEventHelicity(event, runConfig, recEvent);
- if (chargeSequence != null) processEventScalers(runConfig, recEvent);
- event.write(recEvent);
- }
- }
- }
-
- /**
- * The "postprocess" program.
- * @param args
- */
- public static void main(String args[]) {
-
- OptionParser o = new OptionParser("postprocess");
- o.addOption("-f","0","reflip: rebuild the HEL::flip bank");
- o.addOption("-c","0","recharge: rebuild the RUN/HEL::scaler banks");
- o.addOption("-o",null,"merged output file path");
- o.setRequiresInputList(true);
- o.parse(args);
-
- boolean restream = !o.getOption("-f").isDefault();
- boolean rebuild = !o.getOption("-c").isDefault();
-
- Processor post = new Processor(o.getInputList(), restream, rebuild);
-
- HipoWriterSorted writer = null;
-
- if (!o.getOption("-o").isDefault()) {
- writer = new HipoWriterSorted();
- SchemaFactory schema = writer.getSchemaFactory();
- schema.initFromDirectory(ClasUtilsFile.getResourceDir("CLAS12DIR", "etc/bankdefs/hipo4"));
- writer.setCompressionType(2);
- writer.open(o.getOption("-o").stringValue());
- }
-
- for (String f : o.getInputList()) {
- HipoReader reader = new HipoReader();
- reader.open(f);
- Event event = new Event();
- while (reader.hasNext()) {
- reader.nextEvent(event);
- post.processEvent(event);
- if (writer != null) writer.addEvent(event);
- }
- reader.close();
- }
-
- if (writer != null) writer.close();
- }
-
-}
diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/RebuildScalers.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/RebuildScalers.java
index 525203f641..6fb4fe3d0c 100644
--- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/RebuildScalers.java
+++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/RebuildScalers.java
@@ -9,6 +9,7 @@
import org.jlab.detector.scalers.DaqScalers;
import org.jlab.detector.helicity.HelicitySequenceManager;
import org.jlab.detector.scalers.DaqScalersSequence;
+import org.jlab.detector.serial.SerialUtil;
import org.jlab.jnp.hipo4.data.Bank;
import org.jlab.jnp.hipo4.data.Event;
import org.jlab.jnp.hipo4.io.HipoReader;
@@ -122,7 +123,7 @@ else if (seq != null) {
runScalerBank = ds.createRunBank(writer.getSchemaFactory());
helScalerBank = ds.createHelicityBank(writer.getSchemaFactory());
- Util.assignScalerHelicity(event, helScalerBank, helSeq);
+ SerialUtil.assignScalerHelicity(event, helScalerBank, helSeq);
// put modified HEL/RUN::scaler back in the event:
event.write(runScalerBank);
diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Tag1ToEvent.java b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Tag1ToEvent.java
index b85efd3a95..80cbbee22a 100644
--- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Tag1ToEvent.java
+++ b/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Tag1ToEvent.java
@@ -1,5 +1,6 @@
package org.jlab.analysis.postprocess;
+import java.util.List;
import java.util.TreeMap;
import java.util.logging.Logger;
import org.jlab.clas.reco.ReconstructionEngine;
@@ -13,6 +14,7 @@
import org.jlab.detector.scalers.DaqScalersSequence;
import org.jlab.detector.helicity.HelicityBit;
import org.jlab.detector.helicity.HelicitySequenceDelayed;
+import org.jlab.detector.serial.SerialUtil;
import org.jlab.jnp.hipo4.data.SchemaFactory;
import org.jlab.utils.groups.IndexedTable;
import org.jlab.utils.options.OptionParser;
@@ -33,6 +35,31 @@ public class Tag1ToEvent {
static final Logger LOGGER = Logger.getLogger(Tag1ToEvent.class.getName());
+ /**
+ * Load the mapping from event number to unix time
+ * @param schema
+ * @param files
+ * @return map
+ */
+ public static TreeMap getEventUnixMap(SchemaFactory schema, List files) {
+ TreeMap m = new TreeMap<>();
+ Event e = new Event();
+ Bank b = schema.getBank("RUN::unix");//new Bank(schema.getSchema("RUN::unix"));
+ for (String f : files) {
+ HipoReader r = new HipoReader();
+ r.setTags(1);
+ r.open(f);
+ while (r.hasNext()) {
+ r.nextEvent(e);
+ e.read(b);
+ int size = b.getRows();
+ for (int i=0; i>> Initializing helicity configuration from CCDB ...\n");
ConstantsManager conman = new ConstantsManager();
conman.init("/runcontrol/hwp","/runcontrol/helicity");
- final int run = Util.getRunNumber(parser.getInputList().get(0));
+ final int run = SerialUtil.getRunNumber(parser.getInputList().get(0));
IndexedTable helTable = conman.getConstants(run, "/runcontrol/helicity");
// Initialize the scaler sequence from tag-1 events:
@@ -102,7 +129,7 @@ public static void main(String[] args) {
}
// Initialize the unix-event map:
- TreeMap eventUnix = Processor.getEventUnixMap(schema, parser.getInputList());
+ TreeMap eventUnix = getEventUnixMap(schema, parser.getInputList());
// Loop over the input HIPO files:
LOGGER.info("\n>>> Starting post-processing ...\n");
@@ -138,7 +165,7 @@ public static void main(String[] args) {
if (doHelicityDelay) {
recEventBank.putByte("helicity",0,hb.value());
recEventBank.putByte("helicityRaw",0,hbraw.value());
- Util.assignScalerHelicity(runConfigBank.getLong("timestamp",0), helScalerBank, helSeq);
+ SerialUtil.assignScalerHelicity(runConfigBank.getLong("timestamp",0), helScalerBank, helSeq);
}
// Write beam charge to REC::Event:
@@ -169,7 +196,7 @@ public static void main(String[] args) {
writer.addEvent(event, event.getEventTag());
// Copy config banks to new, tag-1 events:
- Util.createTag1Events(writer, event, configEvent, configBanks);
+ SerialUtil.createTag1Events(writer, event, configEvent, configBanks);
}
reader.close();
diff --git a/common-tools/clas-decay-tools/pom.xml b/common-tools/clas-decay-tools/pom.xml
index 7c73876af4..8cb8b112a0 100644
--- a/common-tools/clas-decay-tools/pom.xml
+++ b/common-tools/clas-decay-tools/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas
clas-decay-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -21,54 +21,54 @@
org.jlab.clas
swim-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
cnuphys
swimmer
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
cnuphys
magfield
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-vtx
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/common-tools/clas-detector/pom.xml b/common-tools/clas-detector/pom.xml
index efdb622d65..997746fa38 100644
--- a/common-tools/clas-detector/pom.xml
+++ b/common-tools/clas-detector/pom.xml
@@ -4,20 +4,20 @@
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -43,19 +43,19 @@
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-logging
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder.java
index 45af4c9293..3d32f87807 100644
--- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder.java
+++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoder.java
@@ -797,8 +797,12 @@ public Event getDecodedEvent(EvioDataEvent rawEvent) {
return getDecodedEvent(rawEvent, -1, -1, null, null);
}
- public HipoDataEvent getDecodedDataEvenet(EvioDataEvent rawEvent) {
- return new HipoDataEvent(getDecodedEvent(rawEvent), schemaFactory);
+ public HipoDataEvent getDecodedDataEvent(EvioDataEvent rawEvent) {
+ return new HipoDataEvent(getDecodedEvent(rawEvent, -1, -1, null, null), schemaFactory);
+ }
+
+ public HipoDataEvent getDecodedDataEvent(EvioDataEvent rawEvent, Double torus, Double solenoid) {
+ return new HipoDataEvent(getDecodedEvent(rawEvent, -1, -1, torus, solenoid), schemaFactory);
}
}
\ No newline at end of file
diff --git a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoderPool.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoderPool.java
index 80430583ee..8acd795fa4 100644
--- a/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoderPool.java
+++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/decode/CLASDecoderPool.java
@@ -6,16 +6,14 @@
*
* @author baltzell
*/
-public class CLASDecoderPool {
+public class CLASDecoderPool extends ConcurrentLinkedQueue {
- ConcurrentLinkedQueue pool;
-
int sharedConstantsManagers = 64;
public CLASDecoderPool(int size, String variation, String timestamp) {
- pool = new ConcurrentLinkedQueue<>();
-
+ super();
+
CLASDecoder d0 = null;
for (int i=0; i {
+
+ static final String OCC_BANK_DIR = ClasUtilsFile.getResourceDir("CLAS12DIR","etc/bankdefs/hipo4/singles/occupancy");
+ static final SchemaFactory FULL_SCHEMA = new SchemaFactory();
+ static { FULL_SCHEMA.initFromDirectory(ClasUtilsFile.getResourceDir("CLAS12DIR","etc/bankdefs/hipo4")); }
+
+ long triggerMask;
+ int prescale;
+ int nevents = 0;
+ Schema cfgSchema;
+
+ /**
+ *
+ * @param triggerMask
+ * @param prescale
+ */
+ public Occupancer(long triggerMask, int prescale) {
+ super();
+ this.triggerMask = triggerMask;
+ this.prescale = prescale;
+ init();
+ }
+
+ private void init() {
+ cfgSchema = FULL_SCHEMA.getSchema("RUN::config");
+ try {
+ // Initialize list, by reading occupancy bank filenames from a directory
+ // and stripping ".json" suffix and "OCC::" prefix to get hit bank name:
+ addAll(Files.list(Paths.get(OCC_BANK_DIR))
+ .filter(Files::isRegularFile)
+ .map(p -> p.getFileName().toString())
+ .map(s -> s.substring(0, s.length()-5))
+ .map(s -> s.substring(5, s.length()))
+ .map(OccupanceTable::new).toList());
+ } catch (IOException ex) {
+ System.getLogger(Occupancer.class.getName()).log(System.Logger.Level.ERROR, (String) null, ex);
+ }
+ }
+
+ public boolean process(Event event) {
+ Bank cfgBank = event.read(new Bank(cfgSchema, 1));
+ boolean passTrigger = cfgBank.getRows() > 0 && 0 != (triggerMask & cfgBank.getLong("trigger",0));
+ if (triggerMask <= 0 || passTrigger) {
+ int size = size();
+ for (int i=0; i 0) {
+ event.write(get(i).create(nevents));
+ }
+ get(i).reset();
+ }
+ nevents = 0;
+ }
+ }
+ return true;
+ }
+
+ public void reset() {
+ int size = size();
+ for (int i=0; i)table.getList().getMap()).keySet()) {
+ t.addEntry(IndexedTable.DEFAULT_GENERATOR.getIndices(hash, table.getList().getIndexSize()));
+ t.setDoubleValueByHash((table.getDoubleValueByHash(0, hash))/events, 0, hash);
+ }
+ return t;
+ }
+
+ /**
+ * Fill the occupancy table.
+ * @param index
+ */
+ public final void fill(int... index) {
+ for (int i=0; i m = table.getList().getMap();
+ int i = 0;
+ for (long hash : m.keySet()) {
+ int[] idx = IndexedTable.DEFAULT_GENERATOR.getIndices(hash, table.getList().getIndexSize());
+ for (int j=0; j eventUnix;
+ volatile HelicitySequence helicitySequence;
+ volatile TreeSet helicities;
+ volatile DaqScalersSequence scalers;
+ int run = 0;
+
+ public SerialHoncho(SchemaFactory schema) {
+ this.schema = schema;
+ conman = new ConstantsManager();
+ conman.init("/runcontrol/hwp","/runcontrol/helicity");
+ runConfig = schema.getSchema("RUN::config");
+ recEvent = schema.getSchema("REC::Event");
+ helicityAdc = schema.getSchema("HEL::adc");
+ helScaler = schema.getSchema("HEL::scaler");
+ scalers = new DaqScalersSequence(schema);
+ helicities = new TreeSet<>();
+ eventUnix = new TreeMap<>();
+ tag1banks = new Schema[TAG1BANKS.length];
+ for (int i=0; i 0) {
+ processEventUnix(event, cfg);
+ if (evt.getRows() > 0) {
+ event.remove(evt.getSchema());
+ processHelicity(event, cfg, evt);
+ processScalers(scalers.get(cfg.getLong("timestamp",0)), evt);
+ event.write(evt);
+ }
+ }
+ }
+
+ /**
+ * Add helicity and unixtime sequence banks.
+ * @param writer
+ */
+ public void closure(HipoWriterSorted writer) {
+ Bank cfg = new Bank(runConfig, 1);
+ cfg.putInt("run",0,run);
+ writer.addEvent(getUnixEvent(cfg),1);
+ if (helicitySequence == null) updateHelicitySequence();
+ helicitySequence.writeFlips(writer, 1);
+ }
+
+ /**
+ * Zero all the sequences.
+ */
+ public void clear() {
+ eventUnix.clear();
+ helicities.clear();
+ scalers.clear();
+ helicitySequence = null;
+ }
+
+ public TreeSet getHelicities() {
+ return helicities;
+ }
+
+ public DaqScalersSequence getScalers() {
+ return scalers;
+ }
+
+ public ConstantsManager getConstantsManager() {
+ return conman;
+ }
+
+ public SchemaFactory getSchemaFactory() {
+ return schema;
+ }
+
+ /**
+ * Recreate the HelicitySequence from the TreeSet of helicity states.
+ */
+ public void updateHelicitySequence() {
+ helicitySequence = new HelicitySequenceDelayed(
+ conman.getConstants(run, "/runcontrol/helicity").getIntValue("delay",0,0,0));
+ helicitySequence.addStream(helicities);
+ }
+
+ /**
+ *
+ * @param event
+ * @param runConfig
+ * @param helicityAdc
+ */
+ void read(Event event, Bank runConfig, Bank helicityAdc) {
+ scalers.add(event);
+ helicities.add(HelicityState.createFromFadcBank(helicityAdc, runConfig, conman));
+ prune();
+ if (runConfig.getRows() > 0) {
+ int r = runConfig.getInt("run", 0);
+ if (r > 0) {
+ if (r != run) {
+ clear();
+ run = r;
+ }
+ }
+ if (run > 0) {
+ int unix = runConfig.getInt("unixtime",0);
+ int evno = runConfig.getInt("event",0);
+ if (unix > 0 && evno > 0) eventUnix.put(evno, unix);
+ }
+ }
+ }
+
+ /**
+ * Trim down the helicity and scaler FIFOs to reasonable values.
+ */
+ void prune() {
+ // Estimated size of HelicityState is ~22 bytes.
+ // 1 million states, ~22 MB, 1 minute at 10 kHz trigger.
+ if (helicities.size() > 2e6)
+ pruneHelicities(helicities, (int)1e6);
+ // Assuming scalers are 50x larger.
+ // 10,000 events is 2.7 hours at 1 Hz.
+ if (scalers.size() > 2e4)
+ scalers.clear((int)1e4);
+ }
+
+ /**
+ * Get a new event with RUN::unix and RUN::config banks.
+ * @param runConfig
+ * @return
+ */
+ Event getUnixEvent(Bank config) {
+ Bank unix = new Bank(schema.getSchema("RUN::unix"), eventUnix.size());
+ int row = 0;
+ for (int evno : eventUnix.keySet()) {
+ unix.putInt("event", row, evno);
+ unix.putInt("unixtime",row, eventUnix.get(evno));
+ row++;
+ }
+ Event e = new Event();
+ e.write(config);
+ e.write(unix);
+ return e;
+ }
+
+ /**
+ * Get the unix time for a given RUN::config bank.
+ * @return unix time
+ */
+ int getUnixTime(Bank runConfig) {
+ if (runConfig.getRows() < 1) {
+ Integer key = eventUnix.floorKey(runConfig.getInt("event",0));
+ if (key != null) {
+ Integer unix = eventUnix.get(key);
+ if (unix != null) return unix;
+ }
+ }
+ return 0;
+ }
+
+ /**
+ * Update RUN::config's unixtime, and update the event.
+ */
+ void processEventUnix(Event event, Bank runConfig) {
+ int ut = getUnixTime(runConfig);
+ event.remove(runConfig.getSchema());
+ runConfig.putInt("unixtime", 0, ut);
+ event.write(runConfig);
+ }
+
+ /**
+ * Update an event's helicity information, in REC::Event and HEL::scaler.
+ * @param event
+ * @param runConfig
+ * @param recEvent
+ */
+ void processHelicity(Event event, Bank runConfig, Bank recEvent) {
+ HelicityBit hb = helicitySequence.search(runConfig.getLong("timestamp", 0));
+ HelicityBit hbraw = helicitySequence.getHalfWavePlate() ? HelicityBit.getFlipped(hb) : hb;
+ recEvent.putByte("helicity",0,hb.value());
+ recEvent.putByte("helicityRaw",0,hbraw.value());
+ Bank scaler = new Bank(helScaler);
+ event.read(scaler);
+ if (scaler.getRows()>0) {
+ event.remove(helScaler);
+ SerialUtil.assignScalerHelicity(runConfig.getLong("timestamp",0), scaler, helicitySequence);
+ event.write(scaler);
+ }
+ }
+
+ /**
+ * Update a REC::EVent's bank beam-charge information.
+ */
+ static void processScalers(DaqScalers ds, Bank recEvent) {
+ if (ds != null) {
+ recEvent.putFloat("beamCharge",0, (float) ds.dsc2.getBeamChargeGated());
+ recEvent.putDouble("liveTime",0,ds.dsc2.getLivetime());
+ }
+ }
+
+ /**
+ * For all states deeper than depth, remove consecutive helicity states that
+ * differ only by timestamp.
+ * @param helicities
+ * @param depth
+ */
+ static void pruneHelicities(TreeSet helicities, int depth) {
+ HelicityState prev = null;
+ ListIterator iter = (ListIterator)helicities.iterator();
+ final int size = helicities.size();
+ while (iter.hasNext() && iter.nextIndex() < size-depth) {
+ HelicityState next = iter.next();
+ if (prev != null && prev == next)
+ helicities.remove(next);
+ }
+ }
+
+ /**
+ * FIXME: Switch to lists and delete this.
+ * @param tag1banks
+ * @return
+ */
+ static Bank[] createTaggedBanks(Schema[] tag1banks) {
+ List lbank = Arrays.asList(tag1banks).stream().map(s -> new Bank(s)).collect(Collectors.toList());
+ ListIterator ibank = lbank.listIterator();
+ Bank[] banks = new Bank[lbank.size()];
+ while (ibank.hasNext())
+ banks[ibank.nextIndex()] = ibank.next();
+ return banks;
+ }
+
+}
diff --git a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Util.java b/common-tools/clas-detector/src/main/java/org/jlab/detector/serial/SerialUtil.java
similarity index 98%
rename from common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Util.java
rename to common-tools/clas-detector/src/main/java/org/jlab/detector/serial/SerialUtil.java
index 7ac75bcea2..8967760c25 100644
--- a/common-tools/clas-analysis/src/main/java/org/jlab/analysis/postprocess/Util.java
+++ b/common-tools/clas-detector/src/main/java/org/jlab/detector/serial/SerialUtil.java
@@ -1,4 +1,4 @@
-package org.jlab.analysis.postprocess;
+package org.jlab.detector.serial;
import java.sql.Time;
import java.util.Arrays;
@@ -26,9 +26,9 @@
* Static utility methods for postprocessing.
* @author baltzell
*/
-class Util {
+public class SerialUtil {
- static final Logger logger = Logger.getLogger(Util.class.getName());
+ static final Logger logger = Logger.getLogger(SerialUtil.class.getName());
/**
* Assign the delay-corrected helicity to the HEL::scaler bank's rows
diff --git a/common-tools/clas-geometry/pom.xml b/common-tools/clas-geometry/pom.xml
index 4d9dd2fa7b..607a2983f7 100644
--- a/common-tools/clas-geometry/pom.xml
+++ b/common-tools/clas-geometry/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/common-tools/clas-io/pom.xml b/common-tools/clas-io/pom.xml
index bbd7c2803d..4bad764eb9 100644
--- a/common-tools/clas-io/pom.xml
+++ b/common-tools/clas-io/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -18,7 +18,6 @@
org.jlab.coda
xmsg
- 2.3
@@ -45,13 +44,12 @@
org.jlab.coda
et
- 14.0
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -73,7 +71,7 @@
-
+
diff --git a/common-tools/clas-io/src/main/java/org/jlab/utils/CLASResources.java b/common-tools/clas-io/src/main/java/org/jlab/utils/CLASResources.java
index 86f3e57c78..6e06bd2270 100644
--- a/common-tools/clas-io/src/main/java/org/jlab/utils/CLASResources.java
+++ b/common-tools/clas-io/src/main/java/org/jlab/utils/CLASResources.java
@@ -1,12 +1,26 @@
package org.jlab.utils;
+import org.jlab.jnp.hipo4.data.SchemaFactory;
+
/**
*
* @author gavalian
* @author kenjo
*/
public class CLASResources {
-
+
+ private static volatile SchemaFactory FULL_SCHEMA = null;
+
+ public static synchronized SchemaFactory getFullSchema() {
+ if (FULL_SCHEMA == null) {
+ FULL_SCHEMA = new SchemaFactory();
+ FULL_SCHEMA.initFromDirectory(getResourcePath("etc/bankdefs/hipo4"));
+ }
+ SchemaFactory s = new SchemaFactory();
+ s.copy(FULL_SCHEMA);
+ return s;
+ }
+
public static String getResourcePath(String resource){
String CLAS12DIR = System.getenv("CLAS12DIR");
String CLAS12DIRPROP = System.getProperty("CLAS12DIR");
@@ -44,4 +58,5 @@ public static String getEnvironmentVariable(String envvarname){
return null;
}
+
}
diff --git a/common-tools/clas-io/src/main/java/org/jlab/utils/ClaraYaml.java b/common-tools/clas-io/src/main/java/org/jlab/utils/ClaraYaml.java
index b6525bfb3b..2f4f0afec8 100644
--- a/common-tools/clas-io/src/main/java/org/jlab/utils/ClaraYaml.java
+++ b/common-tools/clas-io/src/main/java/org/jlab/utils/ClaraYaml.java
@@ -143,9 +143,11 @@ public JSONObject filter(String serviceName) {
/**
* Emulate the way CLARA parses the full YAML and presents it in EngineData.
- * The "global" and "service" subsections in the "configuration" section get
- * squashed into one namespace, and service-specific keys override any
- * globals of the same name.
+ *
+ * The YAML's "global" and "services" configuration sections get squashed
+ * into one namespace, with service-specific parameters overriding globals
+ * of the same name. Also, for the special services named "reader" and
+ * "writer", the "io-services" section is searched instead of "services".
*
* @param claraJson the full CLARA YAML contents
* @param serviceName the name of the service in CLARA YAML (not class name)
@@ -161,9 +163,10 @@ public static JSONObject filter(JSONObject claraJson, String serviceName) {
ret.accumulate(key, globals.getString(key));
}
}
- if (config.has("services")) {
- if (config.getJSONObject("services").has(serviceName)) {
- JSONObject service = config.getJSONObject("services").getJSONObject(serviceName);
+ String section = serviceName.equals("reader") || serviceName.equals("writer") ? "io-services" : "services";
+ if (config.has(section)) {
+ if (config.getJSONObject(section).has(serviceName)) {
+ JSONObject service = config.getJSONObject(section).getJSONObject(serviceName);
for (String key : service.keySet()) {
ret.put(key, service.getString(key));
}
diff --git a/common-tools/clas-jcsg/pom.xml b/common-tools/clas-jcsg/pom.xml
index 422a59cee9..6eedadcd39 100644
--- a/common-tools/clas-jcsg/pom.xml
+++ b/common-tools/clas-jcsg/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas
clas-jcsg
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -32,26 +32,21 @@
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
java3d
vecmath
- 1.3.1
-
-
- org.slf4j
- slf4j-api
diff --git a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DTSweep.java b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DTSweep.java
index 3ce4de8cbd..7147633bfe 100644
--- a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DTSweep.java
+++ b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DTSweep.java
@@ -66,14 +66,9 @@
import static eu.mihosoft.vrl.v3d.ext.org.poly2tri.TriangulationUtil.smartIncircle;
import java.util.List;
+import java.util.logging.Logger;
-import eu.mihosoft.vrl.v3d.ext.org.poly2tri.TriangulationMode;
-import eu.mihosoft.vrl.v3d.ext.org.poly2tri.TriangulationPoint;
import eu.mihosoft.vrl.v3d.ext.org.poly2tri.TriangulationUtil.Orientation;
-import eu.mihosoft.vrl.v3d.ext.org.poly2tri.DelaunayTriangle;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Sweep-line, Constrained Delauney Triangulation (CDT) See: Domiter, V. and
@@ -86,7 +81,7 @@
*/
class DTSweep {
- private final static Logger logger = LoggerFactory.getLogger(DTSweep.class);
+ private final static Logger logger = Logger.getLogger(DTSweep.class.getName());
private final static double PI_div2 = Math.PI / 2;
private final static double PI_3div4 = 3 * Math.PI / 4;
@@ -359,7 +354,7 @@ private static void edgeEvent(DTSweepContext tcx,
edgeEvent(tcx, edge.p, edge.q, node.triangle, edge.q);
} catch (PointOnEdgeException e) {
- logger.warn("Skipping edge: {}", e.getMessage());
+ logger.warning(() -> "Skipping edge: "+e.getMessage());
}
}
diff --git a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DTSweepConstraint.java b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DTSweepConstraint.java
index 1ab4de02f7..e75360fb7d 100644
--- a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DTSweepConstraint.java
+++ b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DTSweepConstraint.java
@@ -60,8 +60,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.logging.Logger;
/**
*
@@ -70,7 +69,7 @@
*/
class DTSweepConstraint extends TriangulationConstraint
{
- private final static Logger logger = LoggerFactory.getLogger( DTSweepConstraint.class );
+ private final static Logger logger = Logger.getLogger( DTSweepConstraint.class.getName() );
public TriangulationPoint p;
public TriangulationPoint q;
@@ -101,7 +100,7 @@ else if( p1.getY() == p2.getY() )
}
else if( p1.getX() == p2.getX() )
{
- logger.info( "Failed to create constraint {}={}", p1, p2 );
+ logger.info(() -> "Failed to create constraint "+p1+"="+p2);
// throw new DuplicatePointException( p1 + "=" + p2 );
// return;
}
diff --git a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DTSweepContext.java b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DTSweepContext.java
index 3482f11bf3..aa369e2844 100644
--- a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DTSweepContext.java
+++ b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DTSweepContext.java
@@ -60,20 +60,16 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
import java.util.ArrayDeque;
import java.util.Collections;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
+import java.util.logging.Logger;
/**
* @author Thomas ??? (thahlen@gmail.com)
*/
class DTSweepContext extends TriangulationContext
{
- private final static Logger logger = LoggerFactory.getLogger( DTSweepContext.class );
+ private final static Logger logger = Logger.getLogger( DTSweepContext.class.getName() );
// Inital triangle factor, seed triangle will extend 30% of
// PointSet width to both left and right.
diff --git a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DelaunayTriangle.java b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DelaunayTriangle.java
index 3a8f7cf652..f125574402 100644
--- a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DelaunayTriangle.java
+++ b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/DelaunayTriangle.java
@@ -60,14 +60,11 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import java.util.ArrayList;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
+import java.util.logging.Logger;
class DelaunayTriangle
{
- private final static Logger logger = LoggerFactory.getLogger( DelaunayTriangle.class );
+ private final static Logger logger = Logger.getLogger( DelaunayTriangle.class.getName() );
/** Neighbor pointers */
public final DelaunayTriangle[] neighbors = new DelaunayTriangle[3];
@@ -160,7 +157,7 @@ else if( ( p1 == points[0] && p2 == points[1] ) || ( p1 == points[1] && p2 == po
}
else
{
- logger.error( "Neighbor error, please report!" );
+ logger.severe( "Neighbor error, please report!" );
// throw new Exception("Neighbor error, please report!");
}
}
@@ -185,7 +182,7 @@ else if( t.contains( points[0], points[1] ) )
}
else
{
- logger.error( "markNeighbor failed" );
+ logger.severe( "markNeighbor failed" );
}
}
@@ -295,7 +292,7 @@ else if( point == points[2] )
{
return points[0];
}
- logger.error( "point location error" );
+ logger.severe( "point location error" );
throw new RuntimeException("[FIXME] point location error");
}
@@ -314,7 +311,7 @@ else if( point == points[2] )
{
return points[1];
}
- logger.error( "point location error" );
+ logger.severe( "point location error" );
throw new RuntimeException("[FIXME] point location error");
}
@@ -341,7 +338,7 @@ else if( oPoint == points[2] )
}
else
{
- logger.error( "legalization error" );
+ logger.severe( "legalization error" );
throw new RuntimeException("legalization bug");
}
}
diff --git a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/Poly2Tri.java b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/Poly2Tri.java
index f0dcf87376..6b208a48a9 100644
--- a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/Poly2Tri.java
+++ b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/Poly2Tri.java
@@ -60,13 +60,11 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.logging.Logger;
class Poly2Tri
{
- private final static Logger logger = LoggerFactory.getLogger( Poly2Tri.class );
+ private final static Logger logger = Logger.getLogger( Poly2Tri.class.getName() );
private static final TriangulationAlgorithm _defaultAlgorithm = TriangulationAlgorithm.DTSweep;
diff --git a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/Polygon.java b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/Polygon.java
index 484e9b46d3..814325572e 100644
--- a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/Polygon.java
+++ b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/Polygon.java
@@ -63,13 +63,11 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.logging.Logger;
class Polygon implements Triangulatable
{
- private final static Logger logger = LoggerFactory.getLogger( Polygon.class );
+ private final static Logger logger = Logger.getLogger( Polygon.class.getName() );
protected ArrayList _points = new ArrayList();
protected ArrayList _steinerPoints;
@@ -110,7 +108,7 @@ public Polygon( List points )
// Its something that often happen when importing polygon data from other formats
if( points.get(0).equals( points.get(points.size()-1) ) )
{
- logger.warn( "Removed duplicate point");
+ logger.warning( "Removed duplicate point");
points.remove( points.size()-1 );
}
_points.addAll( points );
diff --git a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/TriangulationProcess.java b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/TriangulationProcess.java
index 28f4529f76..f6ab12dc38 100644
--- a/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/TriangulationProcess.java
+++ b/common-tools/clas-jcsg/src/main/java/eu/mihosoft/vrl/v3d/ext/org/poly2tri/TriangulationProcess.java
@@ -62,11 +62,7 @@
import java.lang.Thread.State;
import java.util.ArrayList;
import java.util.List;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-
+import java.util.logging.Logger;
/**
*
@@ -75,7 +71,7 @@
*/
class TriangulationProcess implements Runnable
{
- private final static Logger logger = LoggerFactory.getLogger( TriangulationProcess.class );
+ private final static Logger logger = Logger.getLogger(TriangulationProcess.class.getName());
private final TriangulationAlgorithm _algorithm;
@@ -261,7 +257,7 @@ public void run()
Poly2Tri.triangulate( _tcx );
}
_triangulationTime = ( System.nanoTime() - time ) / 1e6;
- logger.info( "Triangulation of {} points [{}ms]", _pointCount, _triangulationTime );
+ logger.info(() -> "Triangulation of "+_pointCount+" points ["+_triangulationTime+"ms]");
sendEvent( TriangulationProcessEvent.Done );
}
catch( RuntimeException e )
@@ -269,7 +265,7 @@ public void run()
if( _awaitingTermination )
{
_awaitingTermination = false;
- logger.info( "Thread[{}] : {}", _thread.getName(), e.getMessage() );
+ logger.info(() -> "Thread["+_thread.getName()+")] : "+e.getMessage() );
sendEvent( TriangulationProcessEvent.Aborted );
}
else
@@ -281,7 +277,7 @@ public void run()
catch( Exception e )
{
e.printStackTrace();
- logger.info( "Triangulation exception {}", e.getMessage() );
+ logger.info(() -> "Triangulation exception "+e.getMessage());
sendEvent( TriangulationProcessEvent.Failed );
}
finally
diff --git a/common-tools/clas-logging/pom.xml b/common-tools/clas-logging/pom.xml
index be8daa21c6..233088707d 100644
--- a/common-tools/clas-logging/pom.xml
+++ b/common-tools/clas-logging/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas
clas-logging
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/common-tools/clas-math/pom.xml b/common-tools/clas-math/pom.xml
index defda31d3e..17fa23d823 100644
--- a/common-tools/clas-math/pom.xml
+++ b/common-tools/clas-math/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas
clas-math
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/common-tools/clas-physics/pom.xml b/common-tools/clas-physics/pom.xml
index 742da6f90a..c9f1441c0b 100644
--- a/common-tools/clas-physics/pom.xml
+++ b/common-tools/clas-physics/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/common-tools/clas-reco/pom.xml b/common-tools/clas-reco/pom.xml
index 18131885bc..975df92bdc 100644
--- a/common-tools/clas-reco/pom.xml
+++ b/common-tools/clas-reco/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -36,52 +36,46 @@
jar-with-dependencies
-
- org.jlab.coda
- jtools
- 2.2
-
-
cnuphys
magfield
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
cnuphys
swimmer
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/Clas12Types.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/Clas12Types.java
index 4daf8a9c13..656d9b9211 100644
--- a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/Clas12Types.java
+++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/Clas12Types.java
@@ -5,8 +5,6 @@
import org.jlab.clara.base.error.ClaraException;
import org.jlab.clara.engine.ClaraSerializer;
import org.jlab.clara.engine.EngineDataType;
-import org.jlab.clas12.tools.MimeType;
-import org.jlab.clas12.tools.property.JPropertyList;
import org.jlab.jnp.hipo4.data.Event;
@@ -30,22 +28,9 @@ public Object read(ByteBuffer buffer) throws ClaraException {
}
}
- public static final EngineDataType EVIO = new EngineDataType(MimeType.EVIO.type(), EngineDataType.BYTES.serializer());
+ public static final EngineDataType EVIO = new EngineDataType("binary/data-evio", EngineDataType.BYTES.serializer());
public static final EngineDataType HIPO =
new EngineDataType("binary/data-hipo", new HipoSerializer());
- public static final EngineDataType PROPERTY_LIST = new EngineDataType(MimeType.PROPERTY_LIST.type(), new ClaraSerializer() {
-
- @Override
- public ByteBuffer write(Object data) throws ClaraException {
- JPropertyList pl = (JPropertyList) data;
- return ByteBuffer.wrap(pl.getStringRepresentation(true).getBytes());
- }
-
- @Override
- public Object read(ByteBuffer buffer) throws ClaraException {
- return new JPropertyList(new String(buffer.array()));
- }
- });
}
diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/DecoderEngine.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/DecoderEngine.java
index 319b5f9ca4..8ddd4c0160 100644
--- a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/DecoderEngine.java
+++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/DecoderEngine.java
@@ -82,9 +82,9 @@ public EngineData execute(EngineData input) {
}
HipoDataEvent hipo;
try {
- CLASDecoder d = pool.take();
+ CLASDecoder d = pool.poll();
hipo = new HipoDataEvent(d.getDecodedEvent(evio),schema);
- pool.put(d);
+ pool.offer(d);
output.setData("binary/data-hipo", hipo.getHipoEvent());
} catch (Exception e) {
String msg = String.format("Error processing input event%n%n%s", ClaraUtil.reportException(e));
diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java
index b0b4a98542..6e2271c4e3 100644
--- a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java
+++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/EngineProcessor.java
@@ -19,6 +19,7 @@
import java.util.Arrays;
import org.jlab.coda.jevio.EvioException;
import org.jlab.detector.decode.CLASDecoder4;
+import org.jlab.detector.serial.Occupancer;
import org.jlab.io.evio.EvioDataEvent;
import org.jlab.io.evio.EvioSource;
import org.jlab.io.hipo.HipoDataEvent;
@@ -42,10 +43,15 @@ public class EngineProcessor {
private SchemaFactory banksToKeep = null;
private final List schemaExempt = Arrays.asList("RUN::config","DC::tdc");
- private CLASDecoder4 decoder = new CLASDecoder4();
+ private final CLASDecoder4 decoder = new CLASDecoder4();
+ private final Occupancer occupancer = new Occupancer((long)1<<39,100);
public EngineProcessor(){}
+ public EngineProcessor(OptionParser parser) {
+ init(parser);
+ }
+
private ReconstructionEngine findEngine(String clazz) {
for (String k : processorEngines.keySet()) {
if (processorEngines.get(k).getClass().getName().equals(clazz)) {
@@ -306,12 +312,13 @@ public void processEvent(DataEvent event){
}
public void processFile(String file, String output){
- this.processFile(file, output, -1, -1);
+ this.processFile(file, output, 0, 0);
}
public void processEvent(DataEvent event, HipoDataSync writer) {
processEvent(event);
removeBanks(event);
+ occupancer.process(((HipoDataEvent)event).getHipoEvent());
writer.writeEvent(event);
}
@@ -392,8 +399,8 @@ protected static OptionParser getParser() {
parser.addRequired("-i","input.evio/hipo");
parser.setRequiresInputList(false);
parser.addOption("-c","0","use default configuration [0 - no, 1 - yes/default, 2 - all services] ");
- parser.addOption("-s","-1","number of events to skip");
- parser.addOption("-n","-1","number of events to process");
+ parser.addOption("-s","0","number of events to skip");
+ parser.addOption("-n","0","number of events to process");
parser.addOption("-y","0","yaml file");
parser.addOption("-u","true","update dictionary from writer ? ");
parser.addOption("-S",null,"schema directory");
@@ -404,62 +411,53 @@ protected static OptionParser getParser() {
return parser;
}
- public static void main(String[] args){
-
- OptionParser parser = EngineProcessor.getParser();
- parser.parse(args);
- parser.syncLogLevel(LOGGER);
-
- List services = parser.getInputList();
-
- String inputFile = parser.getOption("-i").stringValue();
- String outputFile = parser.getOption("-o").stringValue();
-
- EngineProcessor proc = new EngineProcessor();
+ protected final void init(OptionParser p) {
+ p.syncLogLevel(LOGGER);
- int config = parser.getOption("-c").intValue();
- int nskip = parser.getOption("-s").intValue();
- int nevents = parser.getOption("-n").intValue();
- String yamlFileName = parser.getOption("-y").stringValue();
+ if(p.getOption("-u").stringValue().contains("false"))
+ updateDictionary = false;
- String update = parser.getOption("-u").stringValue();
- if(update.contains("false")==true) proc.updateDictionary = false;
-
- if(!yamlFileName.equals("0")) {
- proc.parseYaml(yamlFileName);
+ // configure from YAML:
+ if(!p.getOption("-y").stringValue().equals("0")) {
+ parseYaml(p.getOption("-y").stringValue());
}
- else if (config>0){
- if(config>2){
- proc.initCaloDebug();
- } else if(config==2){
- proc.initAll();
- } else {
- proc.initDefault();
- }
+ // use a builtin engine list:
+ else if (p.getOption("-c").intValue() > 0) {
+ if (p.getOption("-c").intValue() > 2 ) initCaloDebug();
+ else if (p.getOption("-c").intValue() == 2) initAll();
+ else initDefault();
}
+ // command-line engine list:
else {
- for(String engine : services){
+ for(String engine : p.getInputList()){
System.out.println("Adding reconstruction engine " + engine);
- proc.addEngine(engine);
+ addEngine(engine);
}
}
// command-line schema overrides YAML:
- if (parser.getOption("-S").stringValue() != null)
- proc.setBanksToKeep(parser.getOption("-S").stringValue());
+ if (p.getOption("-S").stringValue() != null)
+ setBanksToKeep(p.getOption("-S").stringValue());
// command-line filename for background merging overrides YAML:
- if (parser.getOption("-B").stringValue() != null)
- proc.setBackgroundFiles(parser.getOption("-B").stringValue());
+ if (p.getOption("-B").stringValue() != null)
+ setBackgroundFiles(p.getOption("-B").stringValue());
// command-line filename for post-processing overrides YAML:
- if (parser.getOption("-P").stringValue() != null) {
- proc.setPreloadFiles(parser.getOption("-P").stringValue(),
- parser.getOption("-H").intValue()!=0,
- parser.getOption("-R").intValue()!=0);
+ if (p.getOption("-P").stringValue() != null) {
+ setPreloadFiles(p.getOption("-P").stringValue(),
+ p.getOption("-H").intValue()!=0,
+ p.getOption("-R").intValue()!=0);
}
-
- proc.processFile(inputFile,outputFile,nskip,nevents);
}
+ public static void main(String[] args) {
+ OptionParser parser = EngineProcessor.getParser();
+ parser.parse(args);
+ EngineProcessor proc = new EngineProcessor(parser);
+ proc.processFile(parser.getOption("-i").stringValue(),
+ parser.getOption("-o").stringValue(),
+ parser.getOption("-s").intValue(),
+ parser.getOption("-n").intValue());
+ }
}
diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java
index fa53b15a1c..2c3280e576 100644
--- a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java
+++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/ReconstructionEngine.java
@@ -78,6 +78,8 @@ public abstract class ReconstructionEngine implements Engine {
abstract public boolean init();
abstract public void detectorChanged(int runNumber);
+ final Object detectorChangedLock = new Object();
+
public ReconstructionEngine(String name, String author, String version){
engineName = name;
engineAuthor = author;
@@ -345,16 +347,18 @@ public void dropBanks(DataEvent event) {
}
}
}
-
- public synchronized boolean checkRunNumber(DataEvent event) {
+
+ public boolean checkRunNumber(DataEvent event) {
int r = runNumberOverride;
if (r <= 0 && event.hasBank("RUN::config")) {
r = event.getBank("RUN::config").getInt("run",0);
}
if (r > 0) {
- if (this.runNumbers.isEmpty() || r != this.runNumbers.get(this.runNumbers.size()-1)) {
- this.runNumbers.add(r);
- this.detectorChanged(r);
+ synchronized (detectorChangedLock) {
+ if (this.runNumbers.isEmpty() || r != this.runNumbers.get(this.runNumbers.size()-1)) {
+ this.runNumbers.add(r);
+ this.detectorChanged(r);
+ }
}
}
return !this.ignoreInvalidRunNumbers || r>0;
diff --git a/common-tools/clas-tracking/pom.xml b/common-tools/clas-tracking/pom.xml
index 13cbe809aa..6de3ed7f02 100644
--- a/common-tools/clas-tracking/pom.xml
+++ b/common-tools/clas-tracking/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas
clas-tracking
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -33,23 +33,23 @@
org.jlab.clas
swim-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/utilities/ProbChi2perNDF.java b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/utilities/ProbChi2perNDF.java
new file mode 100644
index 0000000000..0a67deb03a
--- /dev/null
+++ b/common-tools/clas-tracking/src/main/java/org/jlab/clas/tracking/utilities/ProbChi2perNDF.java
@@ -0,0 +1,23 @@
+package org.jlab.clas.tracking.utilities;
+
+import org.apache.commons.math3.special.Gamma;
+
+/** Chi-square probability utilities */
+public class ProbChi2perNDF {
+
+ /**
+ * Returns the upper-tail probability (survival function, or p-value) of the
+ * chi-square distribution: P(X >= chi2) for X ~ χ²(ndf).
+ * @param chi2 the chi-square statistic
+ * @param ndf the number of degrees of freedom
+ * @return the probability of observing a chi-square value at least as large as {@code chi2}, in the range [0, 1]
+ */
+ public static double prob(double chi2, int ndf) {
+ if(ndf <= 0)
+ return 0.0;
+ if(chi2 <= 0.0) { // edge cases follow ROOT's `TMath::Prob` conventions
+ return chi2 < 0.0 ? 0.0 : 1.0;
+ }
+ return Gamma.regularizedGammaQ(0.5 * ndf, 0.5 * chi2);
+ }
+}
diff --git a/common-tools/clas-utils/pom.xml b/common-tools/clas-utils/pom.xml
index d771b9196e..9b9b7767e1 100644
--- a/common-tools/clas-utils/pom.xml
+++ b/common-tools/clas-utils/pom.xml
@@ -4,25 +4,24 @@
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.apache.commons
commons-text
- 1.15.0
org.jlab.clas
clas-logging
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
junit
diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/Benchmark.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/Benchmark.java
index 96ef935a8b..48495aee4b 100644
--- a/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/Benchmark.java
+++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/Benchmark.java
@@ -1,26 +1,38 @@
package org.jlab.utils.benchmark;
import java.util.Arrays;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.LinkedHashMap;
+import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import org.jlab.utils.benchmark.BenchmarkTimer.BenchmarkMultiTimer;
-import org.jlab.utils.benchmark.BenchmarkTimer.BenchmarkTimerTotal;
/**
*
* @author gavalian
*/
-public class Benchmark {
-
- private static final Benchmark benchmarkInstance = new Benchmark();
- private final Map timerStore = new LinkedHashMap<>();
+public class Benchmark implements Comparator {
+
+ String name;
+ private static final Benchmark benchmarkInstance = new Benchmark("");
+ private Map timerStore = new LinkedHashMap<>();
private Timer updateTimer = null;
+ private final ArrayList specials = new ArrayList<>();
- private Benchmark() {}
-
+ public Benchmark(String name) {
+ this.name = name;
+ }
+
+ public Benchmark(String name, String[] specials) {
+ this.name = name;
+ this.specials.addAll(Arrays.asList(specials));
+ }
+
public static Benchmark getInstance(){
return benchmarkInstance;
}
@@ -39,36 +51,34 @@ public void reset(){
bt.reset();
}
- public void addTimer(String name){
+ public synchronized void addTimer(String name){
if (!timerStore.containsKey(name))
timerStore.put(name, new BenchmarkMultiTimer(name));
- else
- System.err.println("[Benchmark] -----> error. timer with name ("+ name + ") already exists");
}
public void pause(String name){
if (!timerStore.containsKey(name))
- timerStore.put(name, new BenchmarkMultiTimer(name));
+ addTimer(name);
else
timerStore.get(name).pause();
}
public void resume(String name){
if (!timerStore.containsKey(name))
- timerStore.put(name, new BenchmarkMultiTimer(name));
+ addTimer(name);
timerStore.get(name).resume();
}
public void pause(int thread, String name){
if (!timerStore.containsKey(name))
- timerStore.put(name, new BenchmarkMultiTimer(name));
+ addTimer(name);
else
timerStore.get(name).pause(thread);
}
public void resume(int thread, String name){
if (!timerStore.containsKey(name))
- timerStore.put(name, new BenchmarkMultiTimer(name));
+ addTimer(name);
timerStore.get(name).resume(thread);
}
@@ -76,13 +86,6 @@ public BenchmarkTimer getTimer(String name){
return timerStore.getOrDefault(name, null);
}
- public BenchmarkTimer getTotal(String name) {
- BenchmarkTimerTotal total = new BenchmarkTimerTotal(name);
- for (BenchmarkTimer b : timerStore.values())
- total.add(b);
- return total;
- }
-
@Override
public String toString(){
StringBuilder s = new StringBuilder();
@@ -91,36 +94,51 @@ public String toString(){
int len = timers.iterator().next().toString().length();
char[] asterix = new char[len+8];
Arrays.fill(asterix,'*');
- String margins = new String(asterix);
+ String margins = new String(asterix) + "\n";
s.append(margins);
- s.append("\n");
- s.append("* Benchmark Results \n");
+ s.append("* ");
+ s.append(name);
+ s.append(" Benchmarks\n");
s.append(margins);
- s.append("\n");
for (BenchmarkTimer b : timers) {
s.append("* ");
s.append(b);
s.append(" *\n");
}
- s.append("* ");
- s.append(getTotal(""));
- s.append(" *\n");
+ s.append(String.format("* %-15s : #Calls %12.2f, Total = %12.2f sec, Unit = %12.3f msec *\n",
+ "TOTAL",
+ ((float)timers.stream().mapToInt(x -> x.numberOfCalls.get()).sum())/timers.size(),
+ timers.stream().mapToDouble(x -> x.getSeconds()).sum(),
+ timers.stream().mapToDouble(x -> x.getMillisecondsPerCall()).sum()));
s.append(margins);
- s.append("\n");
}
return s.toString();
}
- public static void main(String[] args){
- Benchmark b = getInstance();
- b.printTimer(10);
- int loop = 0;
- while(true){
- b.resume("COUNT");
- loop++;
- b.pause("COUNT");
- try { Thread.sleep(2000); }
- catch (InterruptedException ex) {}
+ public String[] toCSV() {
+ return new String[]{
+ String.join(",",timerStore.keySet()) + ",TOTAL",
+ String.join(",",timerStore.values().stream().map(x -> String.format("%.2f",x.getMillisecondsPerCall())).toList())
+ + "," + String.format("%.2f",timerStore.values().stream().mapToDouble(x -> x.getMillisecondsPerCall()).sum())
+ };
+ }
+
+ public void sortByName() {
+ List keys = new ArrayList<>(timerStore.keySet());
+ Collections.sort(keys, this);
+ Map timers = new LinkedHashMap<>();
+ for (String s : keys)
+ timers.put(s, timerStore.get(s));
+ timerStore = timers;
+ }
+
+ @Override
+ public int compare(String s1, String s2) {
+ if (specials.contains(s1)) {
+ return specials.contains(s2) ? s1.compareTo(s2) : -1;
+ } else {
+ return specials.contains(s2) ? 1 : s1.compareTo(s2);
}
}
+
}
diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/BenchmarkTimer.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/BenchmarkTimer.java
index 803a754d8b..aa07bb2841 100644
--- a/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/BenchmarkTimer.java
+++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/BenchmarkTimer.java
@@ -1,7 +1,7 @@
package org.jlab.utils.benchmark;
import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
@@ -11,9 +11,11 @@
*/
public class BenchmarkTimer {
+ private static final int WARMUP_CALLS = 100;
+
public static class BenchmarkMultiTimer extends BenchmarkTimer {
- HashMap timeAtResume = new HashMap<>();
- HashMap isPaused = new HashMap<>();
+ ConcurrentHashMap timeAtResume = new ConcurrentHashMap<>();
+ ConcurrentHashMap isPaused = new ConcurrentHashMap<>();
public BenchmarkMultiTimer(String name) { super(name); }
public void resume(int thread) {
if (!isPaused.containsKey(thread) || isPaused.get(thread)) {
@@ -23,8 +25,8 @@ public void resume(int thread) {
}
public void pause(int thread) {
if (!isPaused.get(thread)) {
- numberOfCalls.incrementAndGet();
- totalTime.addAndGet(System.nanoTime() - timeAtResume.get(thread));
+ if (numberOfCalls.incrementAndGet() > WARMUP_CALLS)
+ totalTime.addAndGet(System.nanoTime() - timeAtResume.get(thread));
isPaused.put(thread, true);
}
}
@@ -36,16 +38,6 @@ public void reset(){
}
}
- public static class BenchmarkTimerTotal extends BenchmarkMultiTimer {
- ArrayList benchmarks = new ArrayList<>();
- public BenchmarkTimerTotal(String name) { super(name); }
- public void add(BenchmarkTimer b) {
- benchmarks.add(b);
- totalTime.addAndGet(b.totalTime.get());
- numberOfCalls.addAndGet(b.numberOfCalls.get());
- }
- }
-
private String timerName = "generic";
private long timeAtResume = 0;
private Boolean isPaused = true;
@@ -72,8 +64,8 @@ public void resume(){
public void pause(){
if(isPaused==false){
- totalTime.addAndGet(System.nanoTime() - timeAtResume);
- numberOfCalls.incrementAndGet();
+ if (numberOfCalls.incrementAndGet() > WARMUP_CALLS)
+ totalTime.addAndGet(System.nanoTime() - timeAtResume);
isPaused = true;
}
}
@@ -85,7 +77,7 @@ public void reset(){
isPaused = true;
}
- public double getMiliseconds(){
+ public double getMilliseconds(){
return totalTime.get() / 1.0e6;
}
@@ -93,11 +85,14 @@ public double getSeconds(){
return totalTime.get() / 1.0e9;
}
+ public double getMillisecondsPerCall() {
+ return numberOfCalls.get() > WARMUP_CALLS ? getMilliseconds() / (numberOfCalls.get() - WARMUP_CALLS) : 0;
+ }
+
@Override
public String toString() {
- double timePerCall = 0.0;
- if (numberOfCalls.get() != 0) timePerCall = getMiliseconds() / numberOfCalls.get();
return String.format("%-15s : #Calls %12d, Total = %12.2f sec, Unit = %12.3f msec",
- getName(), numberOfCalls.get(), getSeconds(), timePerCall);
+ getName(), numberOfCalls.get()-WARMUP_CALLS, getSeconds(), getMillisecondsPerCall());
}
+
}
diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/ProgressPrintout.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/ProgressPrintout.java
index 2737572550..2964159283 100644
--- a/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/ProgressPrintout.java
+++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/ProgressPrintout.java
@@ -10,6 +10,8 @@
* @author gavalian
*/
public class ProgressPrintout {
+
+ private final int WARMUP_CALLS = 100;
private TreeMap items = new TreeMap<>();
private Long previousPrintoutTime = (long) 0;
@@ -35,9 +37,9 @@ public void setInterval(double interval){
public String getUpdateString(){
double totalElapsedTime = (this.previousPrintoutTime-this.startPrintoutTime)*1e-3;
+ double averageTime = 1000.0*totalElapsedTime/(this.numberOfCalls-WARMUP_CALLS);
StringBuilder str = new StringBuilder();
- double averageTime = 1000.0*totalElapsedTime/this.numberOfCalls;
- str.append(String.format("%s (%12d) : ", this.printoutLeadingString,this.numberOfCalls));
+ str.append(String.format("%s (%12d) : ", this.printoutLeadingString,this.numberOfCalls-WARMUP_CALLS));
str.append(String.format(" time : %8.2f (sec) =>>> average time = %9.3f msec", totalElapsedTime,averageTime));
Set keys = this.items.keySet();
for(String key : keys){
@@ -45,6 +47,10 @@ public String getUpdateString(){
}
return str.toString();
}
+
+ public double getHz() {
+ return ((double)(numberOfCalls-WARMUP_CALLS)) / (previousPrintoutTime-startPrintoutTime) * 1000;
+ }
public void showStatus(){
System.out.println("\n\n");
@@ -53,14 +59,17 @@ public void showStatus(){
}
public void updateStatus(){
- this.numberOfCalls++;
- Long currentTime = System.currentTimeMillis();
- Double elapsedTime = (currentTime - this.previousPrintoutTime)*1e-3;
- //System.out.println("elapsed = " + elapsedTime);
- if(elapsedTime>=this.printoutIntervalSeconds){
+ if (++this.numberOfCalls < WARMUP_CALLS){
this.previousPrintoutTime = System.currentTimeMillis();
- //System.out.println(" passed time ");
- System.out.println(this.getUpdateString());
+ this.startPrintoutTime = this.previousPrintoutTime;
+ }
+ else if(this.printoutIntervalSeconds > 0){
+ Long currentTime = System.currentTimeMillis();
+ Double elapsedTime = (currentTime - this.previousPrintoutTime)*1e-3;
+ if(elapsedTime >= this.printoutIntervalSeconds) {
+ this.previousPrintoutTime = System.currentTimeMillis();
+ System.out.println(this.getUpdateString());
+ }
}
}
@@ -83,6 +92,10 @@ public String getItemString(String itemname){
}
return str.toString();
}
+
+ public int getNumberOfCalls() {
+ return numberOfCalls;
+ }
public static void main(String[] args){
ProgressPrintout progress = new ProgressPrintout();
diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/options/OptionParser.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/options/OptionParser.java
index 1bdb2c5222..c362aff883 100644
--- a/common-tools/clas-utils/src/main/java/org/jlab/utils/options/OptionParser.java
+++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/options/OptionParser.java
@@ -70,7 +70,12 @@ public void addRequired(String key,String desc){
option.setDescription(desc);
requiredOptions.put(key, option);
}
-
+
+ public void removeOption(String key) {
+ optionsDescriptors.remove(key);
+ requiredOptions.remove(key);
+ }
+
public void addOption(String key, String defaultValue){
check(key, optionsDescriptors.keySet());
OptionValue option = new OptionValue(key,defaultValue);
diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/options/OptionValue.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/options/OptionValue.java
index 684dba4aa7..b4d216e392 100644
--- a/common-tools/clas-utils/src/main/java/org/jlab/utils/options/OptionValue.java
+++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/options/OptionValue.java
@@ -9,13 +9,13 @@
public class OptionValue {
private String optionString = "-h";
- private String optionValue = "";
+ private String optionValue = "";
private String optionDescription = "";
- private String optionDefault = "0";
+ private String optionDefault = "0";
public OptionValue() { }
- public OptionValue(String opt) { setOption(opt);}
- public OptionValue(String opt,String value) { setOption(opt); setValue(value);}
+ public OptionValue(String opt) { setOption(opt); }
+ public OptionValue(String opt,String value) { setOption(opt); setValue(value); setDefault(value); }
public final OptionValue setOption(String opt){ this.optionString = opt; return this;}
public final OptionValue setValue(String value){ this.optionValue = value; return this;}
@@ -27,11 +27,11 @@ public OptionValue() { }
public String getDescription() { return this.optionDescription;}
public String getDefault() { return this.optionDefault;}
- public int intValue() { return Integer.parseInt(this.optionValue);}
- public long longValue() { return Long.parseLong(this.optionValue);}
+ public int intValue() { return Integer.decode(this.optionValue);}
+ public long longValue() { return Long.decode(this.optionValue);}
public double doubleValue() { return Double.parseDouble(this.optionValue);}
public String stringValue() { return this.optionValue;}
-
+
private int getOptionIndex(List options){
for(int i = 0; i < options.size(); i++){
if(options.get(i).equals(optionString)==true)
diff --git a/common-tools/cnuphys/magfield/pom.xml b/common-tools/cnuphys/magfield/pom.xml
index 84191cb07c..cfddf10912 100644
--- a/common-tools/cnuphys/magfield/pom.xml
+++ b/common-tools/cnuphys/magfield/pom.xml
@@ -1,23 +1,23 @@
- 4.0.0
+ 4.0.0
- cnuphys
- magfield
- 14.2.0-SNAPSHOT
- jar
+ cnuphys
+ magfield
+ 14.2.2-SNAPSHOT
+ jar
-
- cnuphys
- clas12
- 14.2.0-SNAPSHOT
-
+
+ cnuphys
+ clas12
+ 14.2.2-SNAPSHOT
+
-
-
- org.apache.commons
- commons-math3
-
-
+
+
+ org.apache.commons
+ commons-math3
+
+
diff --git a/common-tools/cnuphys/magfield/src/main/java/cnuphys/magfield/MagneticFields.java b/common-tools/cnuphys/magfield/src/main/java/cnuphys/magfield/MagneticFields.java
index 0e5844a136..98637589c4 100644
--- a/common-tools/cnuphys/magfield/src/main/java/cnuphys/magfield/MagneticFields.java
+++ b/common-tools/cnuphys/magfield/src/main/java/cnuphys/magfield/MagneticFields.java
@@ -884,6 +884,7 @@ public void initializeMagneticFields(String dataDir, String torusName, String so
* Will proceed as long as one path
* is not null.
*/
+ @Deprecated
public void initializeMagneticFields(String dataDir, String torusName, String solenoidName, String transverseSolenoidName)
throws FileNotFoundException, MagneticFieldInitializationException {
diff --git a/common-tools/cnuphys/pom.xml b/common-tools/cnuphys/pom.xml
index 0d382fb5a0..5d39c6b0ff 100644
--- a/common-tools/cnuphys/pom.xml
+++ b/common-tools/cnuphys/pom.xml
@@ -4,13 +4,13 @@
cnuphys
clas12
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
pom
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/common-tools/cnuphys/snr/pom.xml b/common-tools/cnuphys/snr/pom.xml
index be3d6ba73e..3e8db619ab 100644
--- a/common-tools/cnuphys/snr/pom.xml
+++ b/common-tools/cnuphys/snr/pom.xml
@@ -1,16 +1,16 @@
- 4.0.0
+ 4.0.0
- cnuphys
- snr
- 14.2.0-SNAPSHOT
- jar
+ cnuphys
+ snr
+ 14.2.2-SNAPSHOT
+ jar
-
- cnuphys
- clas12
- 14.2.0-SNAPSHOT
-
+
+ cnuphys
+ clas12
+ 14.2.2-SNAPSHOT
+
diff --git a/common-tools/cnuphys/snr/src/main/java/cnuphys/snr/NoiseReductionParameters.java b/common-tools/cnuphys/snr/src/main/java/cnuphys/snr/NoiseReductionParameters.java
index 91a9b4ca00..096b44cd33 100644
--- a/common-tools/cnuphys/snr/src/main/java/cnuphys/snr/NoiseReductionParameters.java
+++ b/common-tools/cnuphys/snr/src/main/java/cnuphys/snr/NoiseReductionParameters.java
@@ -733,6 +733,7 @@ public ArrayList getClusters() {
* @deprecated doesn't do anything, kept for backwards capability.
* @param lookForTracks
*/
+ @Deprecated
public static void setLookForTracks(boolean lookForTracks) {
}
diff --git a/common-tools/cnuphys/splot/pom.xml b/common-tools/cnuphys/splot/pom.xml
index 15ddfc5dcd..13fc78837e 100644
--- a/common-tools/cnuphys/splot/pom.xml
+++ b/common-tools/cnuphys/splot/pom.xml
@@ -1,29 +1,29 @@
- 4.0.0
+ 4.0.0
+ cnuphys
+ splot
+ 14.2.2-SNAPSHOT
+ jar
+
+
cnuphys
- splot
- 14.2.0-SNAPSHOT
- jar
+ clas12
+ 14.2.2-SNAPSHOT
+
-
+
+
cnuphys
- clas12
- 14.2.0-SNAPSHOT
-
-
-
-
- cnuphys
- numRec
- 1.0
-
-
- cnuphys
- f2jutil
- 1.0
-
-
+ numRec
+ 1.0
+
+
+ cnuphys
+ f2jutil
+ 1.0
+
+
diff --git a/common-tools/cnuphys/swimmer/pom.xml b/common-tools/cnuphys/swimmer/pom.xml
index b468b6cd34..44c8e28895 100644
--- a/common-tools/cnuphys/swimmer/pom.xml
+++ b/common-tools/cnuphys/swimmer/pom.xml
@@ -1,31 +1,31 @@
- 4.0.0
+ 4.0.0
+ cnuphys
+ swimmer
+ 14.2.2-SNAPSHOT
+ jar
+
+
cnuphys
- swimmer
- 14.2.0-SNAPSHOT
- jar
+ clas12
+ 14.2.2-SNAPSHOT
+
-
+
+
cnuphys
- clas12
- 14.2.0-SNAPSHOT
-
-
-
-
- cnuphys
- magfield
- 14.2.0-SNAPSHOT
-
+ magfield
+ 14.2.2-SNAPSHOT
+
-
- cnuphys
- splot
- 14.2.0-SNAPSHOT
-
+
+ cnuphys
+ splot
+ 14.2.2-SNAPSHOT
+
-
+
diff --git a/common-tools/coat-libs/pom.xml b/common-tools/coat-libs/pom.xml
index 12506fd5db..2e53c3b098 100644
--- a/common-tools/coat-libs/pom.xml
+++ b/common-tools/coat-libs/pom.xml
@@ -4,23 +4,15 @@
org.jlab.coat
coat-libs
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
-
-
- freehep-repo-public
- https://clasweb.jlab.org/.clas12maven/
-
-
-
-
@@ -32,7 +24,6 @@
org.jlab.coda
et
- 14.0
@@ -45,142 +36,108 @@
j4ml-clas12
-
- org.jama
- jamapack
- 1.0
-
-
-
- org.jlab.plugins
- trackfitter
- 1.0
-
-
-
- org.jlab.plugins
- jMath
- 1.0
-
-
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clara-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-logging
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-jcsg
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-analysis
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-math
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
swim-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-tracking
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-decay-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
cnuphys
snr
- 14.2.0-SNAPSHOT
-
-
-
- org.freehep
- jminuit
-
-
-
- de.erichseifert
- vectorgraphics2d
- 1.0
-
-
-
- net.objecthunter
- exp4j
+ 14.2.2-SNAPSHOT
-
+
-
- src/main/resources
- true
-
- **/pom.properties
-
-
+
+ src/main/resources
+ true
+
+ **/pom.properties
+
+
diff --git a/common-tools/pom.xml b/common-tools/pom.xml
index 2cb363df1a..5dd862b025 100644
--- a/common-tools/pom.xml
+++ b/common-tools/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
pom
org.jlab.clas
coatjava
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/common-tools/swim-tools/pom.xml b/common-tools/swim-tools/pom.xml
index f200d8d169..d18f42b4cc 100644
--- a/common-tools/swim-tools/pom.xml
+++ b/common-tools/swim-tools/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas
swim-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas
common-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -21,37 +21,37 @@
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
cnuphys
magfield
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
cnuphys
swimmer
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/etc/bankdefs/hipo4/occupancy.json b/etc/bankdefs/hipo4/occupancy.json
new file mode 100644
index 0000000000..ec02d1efdb
--- /dev/null
+++ b/etc/bankdefs/hipo4/occupancy.json
@@ -0,0 +1,272 @@
+[
+ {
+ "name": "OCC::DC::tdc",
+ "group": 500,
+ "item": 10,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::DC::tot",
+ "group": 500,
+ "item": 11,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::ECAL::adc",
+ "group": 500,
+ "item": 12,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::ECAL::tdc",
+ "group": 500,
+ "item": 13,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::FTOF::adc",
+ "group": 500,
+ "item": 14,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"order" , "type":"B", "info":"order"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::FTOF::tdc",
+ "group": 500,
+ "item": 15,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"order" , "type":"B", "info":"order"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::CTOF::adc",
+ "group": 500,
+ "item": 16,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"order" , "type":"B", "info":"order"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::CTOF::tdc",
+ "group": 500,
+ "item": 17,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"order" , "type":"B", "info":"order"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::HTCC::adc",
+ "group": 500,
+ "item": 18,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::HTCC::tdc",
+ "group": 500,
+ "item": 19,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::LTCC::adc",
+ "group": 500,
+ "item": 20,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::LTCC::tdc",
+ "group": 500,
+ "item": 21,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::BST::adc",
+ "group": 500,
+ "item": 22,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::BMT::adc",
+ "group": 500,
+ "item": 23,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::FTCAL::adc",
+ "group": 500,
+ "item": 24,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::FTHODO::adc",
+ "group": 500,
+ "item": 25,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::FTTRK::adc",
+ "group": 500,
+ "item": 26,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::RICH::tdc",
+ "group": 500,
+ "item": 27,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::BAND::adc",
+ "group": 500,
+ "item": 28,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::BAND::tdc",
+ "group": 500,
+ "item": 29,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::CND::adc",
+ "group": 500,
+ "item": 30,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"order" , "type":"B", "info":"order"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ },
+ {
+ "name": "OCC::CND::tdc",
+ "group": 500,
+ "item": 31,
+ "info": "Occupancy Bank",
+ "entries": [
+ { "name":"sector" , "type":"B", "info":"sector"},
+ { "name":"layer" , "type":"B", "info":"layer"},
+ { "name":"component" , "type":"S", "info":"component"},
+ { "name":"order" , "type":"B", "info":"order"},
+ { "name":"hits" , "type":"F", "info":"number of hits"}
+ ]
+ }
+]
diff --git a/etc/bankdefs/util/bankSplit.py b/etc/bankdefs/util/bankSplit.py
index 52b134174c..ec0ea5bf71 100755
--- a/etc/bankdefs/util/bankSplit.py
+++ b/etc/bankdefs/util/bankSplit.py
@@ -1,8 +1,9 @@
#!/usr/bin/env python
-import json
-import sys
import os
+import sys
+import json
+import glob
# print usage
if len(sys.argv)<2:
@@ -54,6 +55,9 @@ def create(dirname, banklist):
print("Single json files saved in " + workdirectory + singledirectory)
+# occupancy banks:
+occ = [os.path.basename(x)[:-5] for x in glob.glob('./singles/occupancy/*.json')]
+
# these should *always* be kept:
mc = ["MC::Event", "MC::GenMatch", "MC::Header", "MC::Lund", "MC::Particle", "MC::RecMatch", "MC::True"]
tag1 = ["RUN::config", "RAW::epics", "RAW::scaler", "RUN::scaler", "HEL::scaler", "COAT::config", "HEL::flip", "HEL::online", "HEL::decoder"]
@@ -83,7 +87,7 @@ def create(dirname, banklist):
trig = ["RAW::vtp","HTCC::rec","ECAL::adc","ECAL::calib","ECAL::clusters","ECAL::hits","ECAL::moments","ECAL::peaks","ECAL::tdc","ECAL::trigger"]
# accumulate all the DST banks:
-dst = rectbai + rectb + mc + tag1 + dets
+dst = rectbai + rectb + mc + tag1 + occ + dets
dsthb = dst + rechbai + rechb
# generate the calib and mon schema:
@@ -112,7 +116,12 @@ def create(dirname, banklist):
level3 = list(dst)
level3.extend(["DC::tdc", "DC::tot", "ECAL::adc", "ECAL::clusters", "FTOF::tdc", "FTOF::adc", "HitBasedTrkg::HBClusters", "HitBasedTrkg::HBTracks", "HTCC::adc", "RF::adc", "RF::tdc", "RUN::rf", "TimeBasedTrkg::TBClusters", "TimeBasedTrkg::TBTracks"])
-import glob
+# Raw bank schema:
+raw = glob.glob('./singles/data/*.json')
+raw.extend(glob.glob('./singles/header/*.json'))
+raw.extend(glob.glob('./singles/tag1/*.json'))
+raw = [os.path.basename(x)[:-5] for x in raw]
+create("raw/", set(raw))
rgl = glob.glob('./singles/full/ALERT*.json')
rgl.extend(glob.glob('./singles/full/AHDC*.json'))
@@ -135,4 +144,3 @@ def create(dirname, banklist):
create("dchv/", set(dchv))
create("level3/", set(level3))
create("trigger/", set(trig))
-
diff --git a/etc/data/magfield b/etc/data/magfield
index ba858a8d51..a70d843563 160000
--- a/etc/data/magfield
+++ b/etc/data/magfield
@@ -1 +1 @@
-Subproject commit ba858a8d51cc5bd0b49ce881b32d44aa57e3e68b
+Subproject commit a70d84356356068928979373c1f2c8b2203a21e8
diff --git a/etc/services/README.md b/etc/services/README.md
index 5815034a31..d684f8f0f4 100644
--- a/etc/services/README.md
+++ b/etc/services/README.md
@@ -2,7 +2,6 @@
* Real Data
* Warning, these must be set appropriately for the data in question:
* the CCDB variation
- * the run number for MLTD/MLTAI network
* [`data-ai.yaml`](data-ai.yaml)
* AI track finding
* [`data-cv.yaml`](data-cv.yaml)
diff --git a/etc/services/data-ai-2026.yaml b/etc/services/data-ai-classic.yaml
similarity index 91%
rename from etc/services/data-ai-2026.yaml
rename to etc/services/data-ai-classic.yaml
index 80fccf0326..38c26c7e42 100644
--- a/etc/services/data-ai-2026.yaml
+++ b/etc/services/data-ai-classic.yaml
@@ -20,18 +20,15 @@ services:
name: FTEB
- class: org.jlab.service.raster.RasterEngine
name: RASTER
-# DC denoising
- - class: org.jlab.service.ai.DCDenoiseEngine
- name: DCDN
# DC clustering: nominal algoritm, filled the cluster bank for ai and conventional tracking
- class: org.jlab.service.dc.DCHBClustering
name: DCCR
# This is where the AI plugin would go. THe AI code reads the HB clusters.
- - class: org.jlab.service.ai.DCClsComboEngine
- name: DCCC
+ - class: org.jlab.service.mltn.MLTDEngine
+ name: MLTD
# DC using clustering on AI hits: NN assisted HB tracking
- - class: org.jlab.service.dc.DCHBTrackingAI
- name: DCHTAI
+ - class: org.jlab.service.dc.DCHBPostClusterAI
+ name: DCHAI
- class: org.jlab.service.ftof.FTOFHBEngine
name: FTOFHB
- class: org.jlab.service.ec.ECEngine
@@ -82,7 +79,9 @@ configuration:
MAGFIELDS:
magfieldSolenoidMap: Symm_solenoid_r601_phi1_z1201_13June2018.dat
magfieldTorusMap: Full_torus_r251_phi181_z251_25Jan2021.dat
- DCHTAI:
+ MLTD:
+ run: "6302"
+ DCHAI:
outputBankPrefix: "HB"
mime-types:
diff --git a/etc/services/data-ai.yaml b/etc/services/data-ai.yaml
index 38c26c7e42..80fccf0326 100644
--- a/etc/services/data-ai.yaml
+++ b/etc/services/data-ai.yaml
@@ -20,15 +20,18 @@ services:
name: FTEB
- class: org.jlab.service.raster.RasterEngine
name: RASTER
+# DC denoising
+ - class: org.jlab.service.ai.DCDenoiseEngine
+ name: DCDN
# DC clustering: nominal algoritm, filled the cluster bank for ai and conventional tracking
- class: org.jlab.service.dc.DCHBClustering
name: DCCR
# This is where the AI plugin would go. THe AI code reads the HB clusters.
- - class: org.jlab.service.mltn.MLTDEngine
- name: MLTD
+ - class: org.jlab.service.ai.DCClsComboEngine
+ name: DCCC
# DC using clustering on AI hits: NN assisted HB tracking
- - class: org.jlab.service.dc.DCHBPostClusterAI
- name: DCHAI
+ - class: org.jlab.service.dc.DCHBTrackingAI
+ name: DCHTAI
- class: org.jlab.service.ftof.FTOFHBEngine
name: FTOFHB
- class: org.jlab.service.ec.ECEngine
@@ -79,9 +82,7 @@ configuration:
MAGFIELDS:
magfieldSolenoidMap: Symm_solenoid_r601_phi1_z1201_13June2018.dat
magfieldTorusMap: Full_torus_r251_phi181_z251_25Jan2021.dat
- MLTD:
- run: "6302"
- DCHAI:
+ DCHTAI:
outputBankPrefix: "HB"
mime-types:
diff --git a/etc/services/data-aicv-uber.yml b/etc/services/data-aicv-uber.yml
index d5ba19d256..9f1b6cca9a 100644
--- a/etc/services/data-aicv-uber.yml
+++ b/etc/services/data-aicv-uber.yml
@@ -11,7 +11,7 @@ configuration:
magfieldSolenoidMap: Symm_solenoid_r601_phi1_z1201_13June2018.dat
magfieldTorusMap: Full_torus_r251_phi181_z251_25Jan2021.dat
HB:
- run: "19000"
+ rawBankGroup: "NODENOISE"
io-services:
reader:
class: org.jlab.io.clara.Clas12Reader
diff --git a/etc/services/data-aicv.yaml b/etc/services/data-aicv.yaml
index 7e62bcc414..db87ae7a18 100644
--- a/etc/services/data-aicv.yaml
+++ b/etc/services/data-aicv.yaml
@@ -20,18 +20,16 @@ services:
name: FTEB
- class: org.jlab.service.raster.RasterEngine
name: RASTER
-# DC clustering: nominal algoritm, filled the cluster bank for ai and conventional tracking
+ - class: org.jlab.service.ai.DCDenoiseEngine
+ name: DCDN
- class: org.jlab.service.dc.DCHBClustering
name: DCCR
-# This is where the AI plugin would go. THe AI code reads the HB clusters.
- - class: org.jlab.service.mltn.MLTDEngine
- name: MLTD
-# DC using clustering: regular HB tracking
+ - class: org.jlab.service.ai.DCClsComboEngine
+ name: DCCC
- class: org.jlab.service.dc.DCHBPostClusterConv
name: DCHB
-# DC using clustering on AI hits: NN assisted HB tracking
- - class: org.jlab.service.dc.DCHBPostClusterAI
- name: DCHAI
+ - class: org.jlab.service.dc.DCHBTrackingAI
+ name: DCHTAI
- class: org.jlab.service.ftof.FTOFHBEngine
name: FTOFHB
- class: org.jlab.service.ec.ECEngine
@@ -91,12 +89,12 @@ configuration:
MAGFIELDS:
magfieldSolenoidMap: Symm_solenoid_r601_phi1_z1201_13June2018.dat
magfieldTorusMap: Full_torus_r251_phi181_z251_25Jan2021.dat
- DCHAI:
+ DCCR:
+ rawBankGroup: "NODENOISE"
+ DCHTAI:
outputBankPrefix: "AI"
DCTAI:
outputBankPrefix: "AI"
- MLTD:
- run: "6302"
EBTAI:
outputBankPrefix: "RECAI"
diff --git a/etc/services/denoise.yaml b/etc/services/denoise.yaml
index 46a0cca21d..b89f15b369 100644
--- a/etc/services/denoise.yaml
+++ b/etc/services/denoise.yaml
@@ -20,21 +20,19 @@ services:
name: FTEB
- class: org.jlab.service.raster.RasterEngine
name: RASTER
-# DC clustering: nominal algoritm, filled the cluster bank for ai and conventional tracking
+ - class: org.jlab.service.ai.DCDenoiseEngine
+ name: DCDN
- class: org.jlab.service.dc.DCHBClustering
name: DCCR
- class: org.jlab.service.dc.DCHBClustering
name: DCRAI
-# This is where the AI plugin would go. THe AI code reads the HB clusters.
- - class: org.jlab.service.mltn.MLTDEngine
- name: MLTD
- - class: org.jlab.service.mltn.MLTDEngine
- name: MLTAI
-# DC using clustering: regular HB tracking
- - class: org.jlab.service.dc.DCHBPostClusterAI
+ - class: org.jlab.service.ai.DCClsComboEngine
+ name: DCCC
+ - class: org.jlab.service.ai.DCClsComboEngine
+ name: DCCAI
+ - class: org.jlab.service.dc.DCHBTrackingAI
name: DCHB
-# DC using clustering on AI hits: NN assisted HB tracking
- - class: org.jlab.service.dc.DCHBPostClusterAI
+ - class: org.jlab.service.dc.DCHBTrackingAI
name: DCHAI
- class: org.jlab.service.ftof.FTOFHBEngine
name: FTOFHB
@@ -99,10 +97,7 @@ configuration:
#rawBankGroup: "DEFAULT"
rawBankGroup: "NOISE1"
outputBankPrefix: "DN"
- MLTD:
- run: "6302"
- MLTAI:
- run: "6302"
+ DCCAI:
inputBankPrefix: "DN"
outputBankPrefix: "aidn"
DCHB:
diff --git a/etc/services/eb.yaml b/etc/services/eb.yaml
index 76109a39e6..84745172e7 100644
--- a/etc/services/eb.yaml
+++ b/etc/services/eb.yaml
@@ -6,8 +6,6 @@ io-services:
class: org.jlab.io.clara.Clas12Writer
name: Clas12Writer
services:
- - class: org.jlab.clas.reco.DecoderEngine
- name: DECO
- class: org.jlab.service.eb.EBTBEngine
name: EBTB
configuration:
diff --git a/etc/services/mc-ai.yaml b/etc/services/mc-ai.yaml
index 3b6a64255c..5b6f2b4fec 100644
--- a/etc/services/mc-ai.yaml
+++ b/etc/services/mc-ai.yaml
@@ -62,6 +62,8 @@ services:
name: VTX
- class: org.jlab.calibration.service.CalibBanksEngine
name: CALIB
+ - class: org.jlab.service.mc.TruthMatch
+ name: MC
configuration:
global:
variation: mc2026
diff --git a/etc/services/mc-aicv.yaml b/etc/services/mc-aicv.yaml
index 6dcf7509b7..31a5af46bd 100644
--- a/etc/services/mc-aicv.yaml
+++ b/etc/services/mc-aicv.yaml
@@ -18,8 +18,8 @@ services:
name: FTEB
- class: org.jlab.service.raster.RasterEngine
name: RASTER
-# - class: org.jlab.service.ai.DCDenoiseEngine
-# name: DCDN
+ - class: org.jlab.service.ai.DCDenoiseEngine
+ name: DCDN
- class: org.jlab.service.dc.DCHBClustering
name: DCCR
- class: org.jlab.service.ai.DCClsComboEngine
@@ -72,6 +72,8 @@ services:
name: VTX
- class: org.jlab.calibration.service.CalibBanksEngine
name: CALIB
+ - class: org.jlab.service.mc.TruthMatch
+ name: MC
configuration:
global:
variation: mc2026
@@ -84,6 +86,8 @@ configuration:
MAGFIELDS:
magfieldSolenoidMap: Symm_solenoid_r601_phi1_z1201_13June2018.dat
magfieldTorusMap: Symm_torus_r2501_phi16_z251_24Apr2018.dat
+ DCCR:
+ rawBankGroup: "NODENOISE"
RTPC:
rtpcSimulation: "true"
diff --git a/etc/services/mc-cv.yaml b/etc/services/mc-cv.yaml
index 54d187522b..92c9d26020 100644
--- a/etc/services/mc-cv.yaml
+++ b/etc/services/mc-cv.yaml
@@ -61,6 +61,8 @@ services:
name: VTX
- class: org.jlab.calibration.service.CalibBanksEngine
name: CALIB
+ - class: org.jlab.service.mc.TruthMatch
+ name: MC
configuration:
global:
variation: mc2026
diff --git a/etc/services/rgd-clarode.yml b/etc/services/rgd-clarode.yml
deleted file mode 100644
index e46daddc7e..0000000000
--- a/etc/services/rgd-clarode.yml
+++ /dev/null
@@ -1,85 +0,0 @@
-mime-types:
- - binary/data-hipo
-configuration:
- global:
- dcrbJitter: "true"
- variation: rgd_fall2023
- io-services:
- writer:
- schema_dir: dst
- services:
- MAGFIELDS:
- magfieldSolenoidMap: Symm_solenoid_r601_phi1_z1201_13June2018.dat
- magfieldTorusMap: Full_torus_r251_phi181_z251_25Jan2021.dat
- DCCR:
- rawBankGroup: "NOISE1"
- MLTD:
- run: "18305"
- DCHAI:
- outputBankPrefix: "HB"
-io-services:
- reader:
- class: org.jlab.io.clara.Clas12Reader
- name: Clas12Reader
- writer:
- class: org.jlab.io.clara.Clas12Writer
- name: Clas12Writer
-services:
- - class: org.jlab.clas.reco.DecoderEngine
- name: DECO
- - class: org.jlab.service.ai.DCDenoiseEngine
- name: DCDN
- - class: org.jlab.clas.swimtools.MagFieldsEngine
- name: MAGFIELDS
- - class: org.jlab.rec.ft.cal.FTCALEngine
- name: FTCAL
- - class: org.jlab.rec.ft.hodo.FTHODOEngine
- name: FTHODO
- - class: org.jlab.rec.ft.trk.FTTRKEngine
- name: FTTRK
- - class: org.jlab.rec.ft.FTEBEngine
- name: FTEB
- - class: org.jlab.service.raster.RasterEngine
- name: RASTER
- - class: org.jlab.service.dc.DCHBClustering
- name: DCCR
- - class: org.jlab.service.mltn.MLTDEngine
- name: MLTD
- - class: org.jlab.service.dc.DCHBPostClusterAI
- name: DCHAI
- - class: org.jlab.service.ftof.FTOFHBEngine
- name: FTOFHB
- - class: org.jlab.service.ec.ECEngine
- name: EC
- - class: org.jlab.rec.cvt.services.CVTEngine
- name: CVTFP
- - class: org.jlab.service.ctof.CTOFEngine
- name: CTOF
- - class: org.jlab.service.cnd.CNDCalibrationEngine
- name: CND
- - class: org.jlab.service.band.BANDEngine
- name: BAND
- - class: org.jlab.service.htcc.HTCCReconstructionService
- name: HTCC
- - class: org.jlab.service.ltcc.LTCCEngine
- name: LTCC
- - class: org.jlab.service.eb.EBHBEngine
- name: EBHB
- - class: org.jlab.service.dc.DCTBEngine
- name: DCTB
- - class: org.jlab.service.fmt.FMTEngine
- name: FMT
- - class: org.jlab.rec.cvt.services.CVTSecondPassEngine
- name: CVTSP
- - class: org.jlab.service.ftof.FTOFTBEngine
- name: FTOFTB
- - class: org.jlab.service.eb.EBTBEngine
- name: EBTB
- - class: org.jlab.rec.rich.RICHEBEngine
- name: RICH
- - class: org.jlab.service.rtpc.RTPCEngine
- name: RTPC
- - class: org.jlab.rec.service.vtx.VTXEngine
- name: VTX
- - class: org.jlab.calibration.service.CalibBanksEngine
- name: CALIB
diff --git a/etc/services/rgl-clarode.yml b/etc/services/rgl-clarode.yml
deleted file mode 100644
index 9c92b0a1d2..0000000000
--- a/etc/services/rgl-clarode.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-io-services:
- reader:
- class: org.jlab.io.clara.Clas12Reader
- name: Clas12Reader
- writer:
- class: org.jlab.io.clara.Clas12Writer
- name: Clas12Writer
-services:
- - class: org.jlab.clas.reco.DecoderEngine
- name: DECO
- - class: org.jlab.clas.swimtools.MagFieldsEngine
- name: MAGFIELDS
- - class: org.jlab.rec.ft.cal.FTCALEngine
- name: FTCAL
- - class: org.jlab.rec.ft.hodo.FTHODOEngine
- name: FTHODO
- - class: org.jlab.rec.ft.FTEBEngine
- name: FTEB
- - class: org.jlab.service.ai.DCDenoiseEngine
- name: DCDN
- - class: org.jlab.service.dc.DCHBClustering
- name: DCCR
- - class: org.jlab.service.dc.DCHBPostClusterConv
- name: DCHB
- - class: org.jlab.service.ftof.FTOFHBEngine
- name: FTOFHB
- - class: org.jlab.service.ec.ECEngine
- name: EC
- - class: org.jlab.service.ctof.CTOFEngine
- name: CTOF
- - class: org.jlab.service.cnd.CNDCalibrationEngine
- name: CND
- - class: org.jlab.service.band.BANDEngine
- name: BAND
- - class: org.jlab.service.htcc.HTCCReconstructionService
- name: HTCC
- - class: org.jlab.service.ltcc.LTCCEngine
- name: LTCC
- - class: org.jlab.service.eb.EBHBEngine
- name: EBHB
- - class: org.jlab.service.dc.DCTBEngine
- name: DCTB
- - class: org.jlab.service.ftof.FTOFTBEngine
- name: FTOFTB
- - class: org.jlab.service.eb.EBTBEngine
- name: EBTB
- - class: org.jlab.rec.rich.RICHEBEngine
- name: RICH
- - class: org.jlab.service.atof.ATOFEngine
- name: ATOF
- - class: org.jlab.service.ahdc.AHDCEngine
- name: AHDC
-configuration:
- global:
- variation: rgl_spring2025
- io-services:
- writer:
- schema_dir: dst
- services:
- MAGFIELDS:
- magfieldSolenoidMap: Symm_solenoid_r601_phi1_z1201_13June2018.dat
- magfieldTorusMap: Full_torus_r251_phi181_z251_25Jan2021.dat
- AHDC:
- Mode: "AI_Track_Finding"
-mime-types:
- - binary/data-hipo
diff --git a/libexec/dependency-info.rb b/libexec/dependency-info.rb
new file mode 100755
index 0000000000..8cce06eb58
--- /dev/null
+++ b/libexec/dependency-info.rb
@@ -0,0 +1,92 @@
+#!/usr/bin/env ruby
+#
+# map dependency to the repository from which it was obtained
+#
+
+require 'yaml'
+require 'fileutils'
+
+TOP_DIR = File.realpath "#{__dir__}/.."
+OUT_DIR = "#{TOP_DIR}/target/info"
+CLASSPATH_FILE_NAME = 'dependency-classpath.txt'
+TREE_FILE_NAME = 'dependency-tree.txt'
+REPO_LOCAL = 'local'
+REPO_CENTRAL = 'maven-central'
+
+# get classpath for each module
+system [
+ 'mvn',
+ 'dependency:build-classpath',
+ "-Dmdep.outputFile='${project.build.directory}/#{CLASSPATH_FILE_NAME}'",
+ '--quiet',
+ "--file #{TOP_DIR}",
+].join ' '
+raise "dependency:build-classpath goal failed" unless $?.success?
+
+# get the list of unique dependency JARs
+jars = []
+Dir.glob("#{TOP_DIR}/**/target/#{CLASSPATH_FILE_NAME}").each do |classpath_file|
+ File.readlines(classpath_file, chomp: true).each do |line|
+ jars << line.split(':')
+ end
+end
+jars.flatten!.uniq!.sort!
+
+# get the remote repos
+repos = {}
+jars.each do |jar_path|
+ # SNAPSHOT normalizer: replace timestamp with 'SNAPSHOT'
+ def normalize(name)
+ name.sub(/\d{8}\.\d{6}-\d+/, 'SNAPSHOT')
+ end
+ # names
+ jar_dir = File.dirname jar_path
+ jar_name = normalize(File.basename jar_path)
+ repo_file = "#{jar_dir}/_remote.repositories"
+ # check if remote repo description exists
+ unless File.exist? repo_file
+ warn "WARNING: #{repo_file} does not exist"
+ next
+ end
+ # get info for this JAR
+ repo_lines = File.readlines(repo_file, chomp: true)
+ .reject { |l| l.start_with?('#') }
+ .select { |l| normalize(l.split('>', 2)[0]) == jar_name }
+ if repo_lines.empty?
+ warn "WARNING: could not find #{jar_name} in #{repo_file}"
+ next
+ end
+ # fill output hash
+ repo_lines.each do |repo_line|
+ repo_id = repo_line.split('>')[1].split('=')[0]
+ repo_id = repo_id.sub /-\h{32,}\z/, '' unless repo_id.nil? # drop the trailing digest (from GitHub `setup-java`'s `settings.xml`)
+ repo = case repo_id
+ when /code.jlab.org-.*/ then 'code.jlab.org'
+ when nil then REPO_LOCAL
+ when 'central' then REPO_CENTRAL
+ else repo_id
+ end
+ (repos[repo] ||= []) << jar_path.sub(/^.*.m2\/repository\//,'')
+ end
+end
+
+# dump output as YAML
+FileUtils.mkdir_p OUT_DIR
+OUT_REPOS = "#{OUT_DIR}/repos.yaml"
+File.open(OUT_REPOS, 'w') do |o|
+ o.puts repos
+ .sort_by{ |k,_| [ [REPO_LOCAL, REPO_CENTRAL].index(k) || 2, k] }
+ .to_h
+ .to_yaml
+end
+puts "Wrote #{OUT_REPOS}"
+
+# collect all dependency trees
+OUT_TREES = "#{OUT_DIR}/trees.txt"
+File.open(OUT_TREES, 'w') do |o|
+ Dir.glob("#{TOP_DIR}/**/target/#{TREE_FILE_NAME}").sort.each do |tree_file|
+ o.puts `cat #{tree_file}`
+ o.puts ''
+ end
+end
+puts "Wrote #{OUT_TREES}"
diff --git a/libexec/profile b/libexec/profile
index a16b534935..dc6088a323 100755
--- a/libexec/profile
+++ b/libexec/profile
@@ -25,7 +25,7 @@ done
shift $((OPTIND-1))
executable=$1
arguments=${@:2}
-logfile=asprof$stub.log
+logfile=asprof_$event$stub.log
which asprof >& /dev/null
[ "$?" -ne 0 ] && echo 'ERROR: asprof is not in $PATH.' && echo -e $usage2 && exit 3
@@ -42,13 +42,17 @@ set -e
$executable $arguments >> $logfile 2>&1 &
set +e
+# figure out the process id to profile:
pid_bash=$!
echo info: pid bash=$pid_bash, getting java ...
sleep 1
pid_java=$(pgrep -P $pid_bash)
-sleep 1
-# go 2 deep for run-clara:
-pid_java=$(pgrep -P $pid_java | head -n 1)
+if [[ "$executable" == *clara* ]]
+then
+ # go 2 deep for run-clara:
+ sleep 1
+ pid_java=$(pgrep -P $pid_java | head -n 1)
+fi
echo info: pid java=$pid_java
tail -f $logfile &
pid_tail=$!
diff --git a/libexec/scaling b/libexec/scaling
index 6cad8e3450..01e714d2af 100755
--- a/libexec/scaling
+++ b/libexec/scaling
@@ -7,9 +7,9 @@ def cli():
cli.add_argument('-c','--clara', metavar='DIR',help='CLARA_HOME path (default=$CLARA_HOME)',default=os.getenv('CLARA_HOME',None))
cli.add_argument('-t','--threads',metavar='#',help='threads (default=8,16,24,34,44)',default='8,16,24,34,44')
cli.add_argument('-e','--events', metavar='#',help='events per thread (default=555)',default=555,type=int)
- cli.add_argument('-N','--numa', metavar='#',help='restrict to a NUMA socket (choices=[0,1])',choices=[0,1])
+ cli.add_argument('-N','--numa', metavar='#',help='restrict to a NUMA socket (choices=[0,1])',choices=[0,1], type=int)
cli.add_argument('-C','--cpus', metavar='#',help='restrict to a CPU list (e.g. 0,1,2,3)')
- cli.add_argument('-T','--cputhr', metavar='#',help='restrict to same number of CPUs as threads')
+ cli.add_argument('-T','--cputhr', help='restrict to same number of CPUs as threads',action='store_true')
cli.add_argument('datafile', help='input EVIO/HIPO data file')
cfg = cli.parse_args()
cfg.threads = cfg.threads.split(',')
@@ -17,8 +17,8 @@ def cli():
cli.error('cannot find CLARA installation via -c or $CLARA_HOME')
elif shutil.which('run-clara'):
cfg.run_clara = shutil.which('run-clara')
- elif os.path.exists(clara_home + '/plugins/clas12/bin/run-clara'):
- cfg.run_clara = clara_home + '/plugins/clas12/bin/run-clara'
+ elif os.path.exists(cfg.clara + '/plugins/clas12/bin/run-clara'):
+ cfg.run_clara = cfg.clara + '/plugins/clas12/bin/run-clara'
else:
cli.error('cannot find run-clara in $PATH or $CLARA_HOME')
if cfg.cpus:
@@ -55,7 +55,7 @@ def benchmark(cfg, threads, log):
# use taskset for thread affinity:
if cfg.cpus:
if cfg.cputhr:
- cmd.extend(['taskset','-c',','.join(cfg.cpus.split(',')[:threads])])
+ cmd.extend(['taskset','-c',','.join(cfg.cpus.split(',')[:int(threads)])])
else:
cmd.extend(['taskset','-c',cfg.cpus])
# add the run-clara command:
@@ -122,7 +122,7 @@ def show(benchmarks):
print(' '.join([str(x) for x in row]))
def save(benchmarks):
- with open('scaling.txt','w') as f:
+ with open('scaling-clara.txt','w') as f:
for row in table(benchmarks):
f.write(' '.join([str(x) for x in row])+'\n')
@@ -130,11 +130,11 @@ def plot():
import os,shutil,subprocess
if shutil.which('gnuplot'):
g = os.path.dirname(os.path.abspath(__file__))+'/scaling.gpl'
- r = subprocess.run(['gnuplot',g], capture_output=True, text=True)
+ r = subprocess.run(['gnuplot',g,'scaling-clara.txt'], capture_output=True, text=True)
if r.returncode == 0:
- with open('scaling.svg','w') as f:
+ with open('scaling-clara.svg','w') as f:
f.write(r.stdout)
- print('Info: created scaling.svg from scaling.txt and scaling.gpl!')
+ print('Info: created scaling-clara.svg from scaling-clara.txt and coatjava/libexec/scaling.gpl!')
else:
print(r.stdout)
print(r.stderr)
diff --git a/libexec/scaling.gpl b/libexec/scaling.gpl
index 3c5598d0d4..41577fd517 100644
--- a/libexec/scaling.gpl
+++ b/libexec/scaling.gpl
@@ -43,7 +43,7 @@ set style line 37 pt 6 lt 1 lc rgb '#FDBF6F' # light orange
set style line 38 pt 6 lt 1 lc rgb '#FF7F00' # dark orange
# parse command line arguments:
-datafile = 'scaling.txt'
+datafile = 'scaling-clara.txt'
if (ARGC > 0) {
if (ARGV[1] eq "-u") {
uberMode = 1
diff --git a/pom.xml b/pom.xml
index 234a93dace..270ddf2736 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
org.jlab.clas
coatjava
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
pom
@@ -19,16 +19,38 @@
+
- clas12-hipo-java
+ code.jlab.org-hipo-java
https://code.jlab.org/api/v4/projects/919/packages/maven
+
- clas12maven
+ code.jlab.org-xmsg-java
+ https://code.jlab.org/api/v4/projects/959/packages/maven
+
+
+
+ code.jlab.org-clara-java
+ https://code.jlab.org/api/v4/projects/243/packages/maven
+
+
+
+ code.jlab.org-freehep-jminuit
+ https://code.jlab.org/api/v4/projects/1079/packages/maven
+
+
+
+ code.jlab.org-ccdbrcdb-java
+ https://code.jlab.org/api/v4/projects/245/packages/maven
+
+
+
+ clasweb-clas12maven
https://clasweb.jlab.org/.clas12maven
- jnp-maven
+ clasweb-jhep
https://clasweb.jlab.org/.jhep/maven
@@ -50,18 +72,6 @@
-
- com.github.spotbugs
- spotbugs
- 4.10.3
-
-
-
- jakarta.annotation
- jakarta.annotation-api
- 3.0.0
-
-
junit
junit
@@ -78,7 +88,7 @@
org.yaml
snakeyaml
- 2.6
+ 2.7
@@ -102,12 +112,6 @@
linux
-
- org.slf4j
- slf4j-api
- 2.0.18
-
-
org.apache.commons
commons-math3
@@ -116,26 +120,32 @@
org.apache.commons
- commons-lang3
- 3.20.0
+ commons-text
+ 1.15.0
org.jlab
groot
- 4.0.5
+ 4.0.5
org.freehep
- jminuit
- 1.0
+ freehep-jminuit
+ 1.0.2
+
+
+
+ org.jlab.coda
+ xmsg
+ 2.5
org.jlab.coda
jclara
- 4.3
+ 6.2
@@ -163,6 +173,12 @@
+
+ org.jlab.coda
+ et
+ 14.0
+
+
org.jlab.jnp
jnp-hipo
@@ -172,13 +188,17 @@
org.jlab.jnp
jnp-hipo4
- 4.5
+ 4.5
j4ml
j4ml-neuroph
- 0.9-SNAPSHOT
+ 0.9-SNAPSHOT
@@ -196,7 +216,18 @@
org.jlab.ccdbrcdb
ccdbrcdb
- 2.0
+ 2.1
+
+
+
+ com.google.protobuf
+ protobuf-java
+
+
@@ -205,48 +236,68 @@
1.0.3
+
+ java3d
+ vecmath
+ 1.3.1
+
+
ai.djl
bom
- 0.36.0
+ 0.38.0
pom
import
-
-
-
net.objecthunter
exp4j
0.4.8
-
-
- com.google.code.gson
- gson
- 2.13.1
-
-
-
org.ejml
ejml-simple
0.40
-
+
+
+ org.apache.commons
+ commons-lang3
+ 3.20.0
+
+
+
+
+ org.slf4j
+ slf4j-api
+ 1.7.6
+
@@ -271,7 +322,7 @@
com.github.spotbugs
spotbugs-maven-plugin
- 4.10.3.0
+ 4.10.4.1
spotbugs-exclude.xml
@@ -302,7 +353,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.15.0
+ 3.16.0
21
UTF-8
@@ -356,6 +407,7 @@
analyze-only
+ ${project.build.directory}/dependency-tree.txt
true
@@ -384,12 +436,7 @@
-
-
-
- com.google.protobuf:protobuf-java
-
-
+
@@ -455,7 +502,7 @@
org.apache.maven.plugins
maven-deploy-plugin
- 3.1.4
+ 3.2.0
${project.build.directory}/.flattened-pom.xml
diff --git a/reconstruction/ai/pom.xml b/reconstruction/ai/pom.xml
index 5625476b6b..58c2c48dd1 100644
--- a/reconstruction/ai/pom.xml
+++ b/reconstruction/ai/pom.xml
@@ -1,16 +1,16 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-ai
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -18,19 +18,19 @@
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -40,4 +40,4 @@
-
+
diff --git a/reconstruction/ai/src/main/java/org/jlab/service/ai/DCClsComboEngine.java b/reconstruction/ai/src/main/java/org/jlab/service/ai/DCClsComboEngine.java
index aa959e1dea..dc08ac1ee1 100644
--- a/reconstruction/ai/src/main/java/org/jlab/service/ai/DCClsComboEngine.java
+++ b/reconstruction/ai/src/main/java/org/jlab/service/ai/DCClsComboEngine.java
@@ -21,6 +21,7 @@
import ai.djl.translate.TranslatorContext;
import java.io.IOException;
import java.nio.file.Paths;
+import java.util.Optional;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jlab.clas.reco.ReconstructionEngine;
@@ -31,8 +32,8 @@
import org.jlab.rec.ai.dcCluster.DCClusterCombo;
public class DCClsComboEngine extends ReconstructionEngine {
- final String inputBank = "HitBasedTrkg::Clusters";
- final String outputBank = "ai::tracks";
+ String inputBank = "HitBasedTrkg::Clusters";
+ String outputBank = "ai::tracks";
final static String CONF_THREADS = "threads";
@@ -124,6 +125,11 @@ public boolean init() {
LOGGER.log(Level.SEVERE, null, ex);
return false;
}
+
+ String inputBankPrefix = Optional.ofNullable(this.getEngineConfigString("inputBankPrefix")).orElse("");
+ String outputBankPrefix = Optional.ofNullable(this.getEngineConfigString("outputBankPrefix")).orElse("ai");
+ inputBank = "HitBasedTrkg::"+inputBankPrefix+"Clusters";
+ outputBank = outputBankPrefix+"::tracks";
return true;
}
diff --git a/reconstruction/alert/pom.xml b/reconstruction/alert/pom.xml
index a1b86132a2..0abae58aa7 100644
--- a/reconstruction/alert/pom.xml
+++ b/reconstruction/alert/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas12.detector
clas12detector-alert
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -22,62 +22,57 @@
org.apache.commons
commons-math3
-
- org.apache.commons
- commons-lang3
- compile
-
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
compile
org.jlab.clas
clas-analysis
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
test
org.jlab.clas
clas-tracking
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
compile
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
compile
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
compile
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
compile
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
compile
org.jlab.clas
swim-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
compile
@@ -137,7 +132,7 @@
${project.build.directory}/lib/services
- ai.djl
+ ai.djl,com.google.code.gson
diff --git a/reconstruction/alert/src/main/java/org/jlab/rec/alert/AI/TrackCandidatesGenerator.java b/reconstruction/alert/src/main/java/org/jlab/rec/alert/AI/TrackCandidatesGenerator.java
index e121b28862..8cfb5b5f80 100644
--- a/reconstruction/alert/src/main/java/org/jlab/rec/alert/AI/TrackCandidatesGenerator.java
+++ b/reconstruction/alert/src/main/java/org/jlab/rec/alert/AI/TrackCandidatesGenerator.java
@@ -1,8 +1,8 @@
package org.jlab.rec.alert.AI;
-import org.apache.commons.lang3.mutable.MutableBoolean;
-
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
/**
* The TrackConstruction class is responsible for constructing all possible track
@@ -81,18 +81,18 @@ private double mod(double x, double y) {
* @param number_of_track_candidates The current count of track candidates.
* @return A list of all possible combinations of integers from {@code v1} and {@code v2}.
*/
- private ArrayList> cartesianProduct(ArrayList> v1, ArrayList v2, MutableBoolean too_much_track_candidates, int number_of_track_candidates) {
+ private ArrayList> cartesianProduct(ArrayList> v1, ArrayList v2, AtomicBoolean too_much_track_candidates, int number_of_track_candidates) {
ArrayList> result = new ArrayList<>();
for (ArrayList i : v1) {
- if (too_much_track_candidates.booleanValue()) break;
+ if (too_much_track_candidates.get()) break;
for (int j : v2) {
- if (too_much_track_candidates.booleanValue()) break;
+ if (too_much_track_candidates.get()) break;
ArrayList n = new ArrayList<>(i);
n.add(j);
result.add(n);
if (number_of_track_candidates + result.size() >= MAX_NUMBER_OF_TRACK_CANDIDATES) {
- too_much_track_candidates.setValue(true);
+ too_much_track_candidates.set(true);
break;
}
}
@@ -155,8 +155,7 @@ else if (interClusters.get(all_superpreclusters.get(i)).getPreclusters().get(0).
superpreclusters_s5.add(all_superpreclusters.get(i));
}
- MutableBoolean too_much_track_candidates = new MutableBoolean(); // Need to be a mutable boolean to be able to change it in the cartesian_product method
- too_much_track_candidates.setFalse();
+ AtomicBoolean too_much_track_candidates = new AtomicBoolean(false); // Needs to be mutable so cartesianProduct can set it
// Find all possible combinations of superpreclusters on different superlayers
ArrayList> combinations_s1_s2 = cartesianProduct(new ArrayList<>(List.of(superpreclusters_s1)), superpreclusters_s2, too_much_track_candidates, number_of_track_candidates);
@@ -166,7 +165,7 @@ else if (interClusters.get(all_superpreclusters.get(i)).getPreclusters().get(0).
// Keep track of the number of track candidates
number_of_track_candidates += combinations_s1_s2_s3_s4_s5.size();
- if (too_much_track_candidates.booleanValue()) sucess = false; // If the number of track candidates exceeds the maximum limit, set success to false
+ if (too_much_track_candidates.get()) sucess = false; // If the number of track candidates exceeds the maximum limit, set success to false
// Add all track candidates to the list of all track candidates
// And switch back from index to superprecluster
diff --git a/reconstruction/band/pom.xml b/reconstruction/band/pom.xml
index 544e4bb730..4ad62cb24c 100644
--- a/reconstruction/band/pom.xml
+++ b/reconstruction/band/pom.xml
@@ -4,35 +4,35 @@
org.jlab.clas12.detector
clas12detector-band
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/reconstruction/bg/pom.xml b/reconstruction/bg/pom.xml
index a2bd6ee862..36543ba8f9 100644
--- a/reconstruction/bg/pom.xml
+++ b/reconstruction/bg/pom.xml
@@ -1,16 +1,16 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-bg
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -18,21 +18,21 @@
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-analysis
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
-
+
diff --git a/reconstruction/calib/pom.xml b/reconstruction/calib/pom.xml
index 9f400c1fe3..a7475cc8ac 100644
--- a/reconstruction/calib/pom.xml
+++ b/reconstruction/calib/pom.xml
@@ -1,18 +1,16 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-calib
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -20,19 +18,19 @@
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/reconstruction/cnd/pom.xml b/reconstruction/cnd/pom.xml
index f012c5ac0b..be982e95de 100644
--- a/reconstruction/cnd/pom.xml
+++ b/reconstruction/cnd/pom.xml
@@ -4,45 +4,45 @@
org.jlab.clas12.detector
clas12detector-cnd
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-cvt
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/reconstruction/cvt/pom.xml b/reconstruction/cvt/pom.xml
index 2516e9eb29..a998ce4a94 100644
--- a/reconstruction/cvt/pom.xml
+++ b/reconstruction/cvt/pom.xml
@@ -4,20 +4,19 @@
org.jlab.clas12.detector
clas12detector-cvt
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
java3d
vecmath
- 1.3.1
org.jlab
@@ -26,71 +25,66 @@
cnuphys
magfield
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-jcsg
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-analysis
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
test
org.jlab.clas
clas-tracking
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
swim-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-eb
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
test
jar
-
- org.jlab.plugins
- trackfitter
- 1.0
-
junit
junit
diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Constants.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Constants.java
index 51303f0636..c3bacfd08e 100644
--- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Constants.java
+++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/Constants.java
@@ -269,7 +269,7 @@ public static double getRCUT() {
return RCUT;
}
- public static void setRCUT(double r) {
+ private static void setRCUT(double r) {
RCUT = r;
}
@@ -281,7 +281,7 @@ public static double getZRANGE() {
return ZRANGE;
}
- public static void setZRANGE(double zr) {
+ private static void setZRANGE(double zr) {
ZRANGE = zr;
}
diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/banks/HitReader.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/banks/HitReader.java
index 86174629b7..18ceecc6f0 100644
--- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/banks/HitReader.java
+++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/banks/HitReader.java
@@ -9,6 +9,8 @@
import org.jlab.detector.banks.RawDataBank;
import org.jlab.detector.base.DetectorDescriptor;
import org.jlab.detector.base.DetectorType;
+import org.jlab.io.banks.BMT_adc;
+import org.jlab.io.banks.BST_adc;
import org.jlab.io.base.DataEvent;
import org.jlab.rec.cvt.Constants;
import org.jlab.rec.cvt.Geometry;
@@ -112,11 +114,11 @@ public void fetch_BMTHits(DataEvent event, Swim swim, IndexedTable status,
//if (bankDGTZ.getInt("ADC", i) < 1) {
//continue; // gemc assigns strip value -1 for inefficiencies, we only consider strips with values between 1 to the maximum strip number for a given detector
//}
- int sector = bankDGTZ.getByte("sector", i);
- int layer = bankDGTZ.getByte("layer", i);
- int strip = bankDGTZ.getShort("component", i);
- double ADCtoEdep = bankDGTZ.getInt("ADC", i);
- double time = bankDGTZ.getFloat("time", i);
+ int sector = bankDGTZ.getByte(BMT_adc.sector, i);
+ int layer = bankDGTZ.getByte(BMT_adc.layer, i);
+ int strip = bankDGTZ.getShort(BMT_adc.component, i);
+ double ADCtoEdep = bankDGTZ.getInt(BMT_adc.ADC, i);
+ double time = bankDGTZ.getFloat(BMT_adc.time, i);
int order = bankDGTZ.trueOrder(i);
//if (order == 1) {
// continue;
@@ -260,10 +262,10 @@ public void fetch_SVTHits(DataEvent event, int omitLayer, int omitHemisphere,
Map tdcs = new HashMap<>();
for (int i = 0; i < rows; i++) {
if(bankDGTZ.getInt("ADC", i) < 0) {
- int sector = bankDGTZ.getByte("sector", i);
- int layer = bankDGTZ.getByte("layer", i);
- int strip = bankDGTZ.getShort("component", i);
- double time = bankDGTZ.getFloat("time", i);
+ int sector = bankDGTZ.getByte(BST_adc.sector, i);
+ int layer = bankDGTZ.getByte(BST_adc.layer, i);
+ int strip = bankDGTZ.getShort(BST_adc.component, i);
+ double time = bankDGTZ.getFloat(BST_adc.time, i);
//if (order == 1) {
// continue;
@@ -286,13 +288,13 @@ public void fetch_SVTHits(DataEvent event, int omitLayer, int omitHemisphere,
if (bankDGTZ.getInt("ADC", i) < 0) {
continue; // ignore hits TDC hits with ADC==-1
}
- int order = bankDGTZ.getByte("order", i);
+ int order = bankDGTZ.getByte(BST_adc.order, i);
int id = i + 1;
- int sector = bankDGTZ.getByte("sector", i);
- int layer = bankDGTZ.getByte("layer", i);
- int strip = bankDGTZ.getShort("component", i);
- int ADC = bankDGTZ.getInt("ADC", i);
- double time = 0;//bankDGTZ.getFloat("time", i);
+ int sector = bankDGTZ.getByte(BST_adc.sector, i);
+ int layer = bankDGTZ.getByte(BST_adc.layer, i);
+ int strip = bankDGTZ.getShort(BST_adc.component, i);
+ int ADC = bankDGTZ.getInt(BST_adc.ADC, i);
+ double time = 0;//bankDGTZ.getFloat(BST_adc.time, i);
int tdcstrip = 1;
if(strip>128) tdcstrip = 129;
int key = DetectorDescriptor.generateHashCode(sector, layer, tdcstrip);
diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/banks/RecoBankReader.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/banks/RecoBankReader.java
index 2b9eff4114..792b8eee74 100644
--- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/banks/RecoBankReader.java
+++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/banks/RecoBankReader.java
@@ -9,6 +9,14 @@
import org.jlab.geom.prim.Line3D;
import org.jlab.geom.prim.Point3D;
import org.jlab.geom.prim.Vector3D;
+import org.jlab.io.banks.BMT_Clusters;
+import org.jlab.io.banks.BMT_Crosses;
+import org.jlab.io.banks.BMT_Hits;
+import org.jlab.io.banks.BST_Clusters;
+import org.jlab.io.banks.BST_Crosses;
+import org.jlab.io.banks.BST_Hits;
+import org.jlab.io.banks.CVT_Seeds;
+import org.jlab.io.banks.CVT_Tracks;
import org.jlab.io.base.DataBank;
import org.jlab.io.base.DataEvent;
import org.jlab.rec.cvt.Constants;
@@ -39,17 +47,17 @@ public static List readBSTHitBank(DataEvent event) {
DataBank bank = event.getBank("BST::Hits");
for(int i = 0; i < bank.rows(); i++) {
- int id = bank.getShort("ID", i);
- int sector = bank.getByte("sector", i);
- int layer = bank.getByte("layer", i);
- int strip = bank.getShort("strip", i);
- double energy = bank.getFloat("energy", i);
- double time = bank.getFloat("time", i);
- double fitResidual = bank.getFloat("fitResidual", i)*10;
- int clusterId = bank.getShort("clusterID", i);
- int trackId = bank.getShort("trkID", i);
- int trkStatus = bank.getByte("trkingStat", i);
- int status = bank.getByte("status", i);
+ int id = bank.getShort(BST_Hits.ID, i);
+ int sector = bank.getByte(BST_Hits.sector, i);
+ int layer = bank.getByte(BST_Hits.layer, i);
+ int strip = bank.getShort(BST_Hits.strip, i);
+ double energy = bank.getFloat(BST_Hits.energy, i);
+ double time = bank.getFloat(BST_Hits.time, i);
+ double fitResidual = bank.getFloat(BST_Hits.fitResidual, i)*10;
+ int clusterId = bank.getShort(BST_Hits.clusterID, i);
+ int trackId = bank.getShort(BST_Hits.trkID, i);
+ int trkStatus = bank.getByte(BST_Hits.trkingStat, i);
+ int status = bank.getByte(BST_Hits.status, i);
Hit hit = new Hit(DetectorType.BST, BMTType.UNDEFINED, sector, layer, new Strip(strip, energy, time));
hit.getStrip().setLine(Geometry.getInstance().getSVT().getStrip(layer, sector, strip));
hit.getStrip().setModule(Geometry.getInstance().getSVT().getModule(layer, sector));
@@ -76,17 +84,17 @@ public static List readBMTHitBank(DataEvent event) {
DataBank bank = event.getBank("BMT::Hits");
for(int i = 0; i < bank.rows(); i++) {
- int id = bank.getShort("ID", i);
- int sector = bank.getByte("sector", i);
- int layer = bank.getByte("layer", i);
- int strip = bank.getShort("strip", i);
- double energy = bank.getFloat("energy", i);
- double time = bank.getFloat("time", i);
- double fitResidual = bank.getFloat("fitResidual", i)*10;
- int clusterId = bank.getShort("clusterID", i);
- int trackId = bank.getShort("trkID", i);
- int trkStatus = bank.getByte("trkingStat", i);
- int status = bank.getByte("status", i);
+ int id = bank.getShort(BMT_Hits.ID, i);
+ int sector = bank.getByte(BMT_Hits.sector, i);
+ int layer = bank.getByte(BMT_Hits.layer, i);
+ int strip = bank.getShort(BMT_Hits.strip, i);
+ double energy = bank.getFloat(BMT_Hits.energy, i);
+ double time = bank.getFloat(BMT_Hits.time, i);
+ double fitResidual = bank.getFloat(BMT_Hits.fitResidual, i)*10;
+ int clusterId = bank.getShort(BMT_Hits.clusterID, i);
+ int trackId = bank.getShort(BMT_Hits.trkID, i);
+ int trkStatus = bank.getByte(BMT_Hits.trkingStat, i);
+ int status = bank.getByte(BMT_Hits.status, i);
Hit hit = new Hit(DetectorType.BMT, BMTGeometry.getDetectorType(layer), sector, layer, new Strip(strip, energy, time));
hit.getStrip().setStatus(status);
hit.setId(id);
@@ -109,32 +117,32 @@ public static Map readBSTClusterBank(DataEvent event, List readBMTClusterBank(DataEvent event, List readBSTCrossBank(DataEvent event, Map readBMTCrossBank(DataEvent event, Map readCVTSeedsBank(DataEvent event, double xb, do
DataBank bank = event.getBank("CVT::Seeds");
for(int i = 0; i < bank.rows(); i++) {
- int tid = bank.getShort("ID", i);
- double pt = bank.getFloat("pt", i);
- double phi0 = bank.getFloat("phi0", i);
- double tandip = bank.getFloat("tandip", i);
- double z0 = bank.getFloat("z0", i)*10;
- double d0 = bank.getFloat("d0", i)*10;
- int q = bank.getByte("q", i);
- int type = bank.getByte("fittingMethod", i);
-// double xb = bank.getFloat("xb", i);
-// double yb = bank.getFloat("yb", i);
+ int tid = bank.getShort(CVT_Seeds.ID, i);
+ double pt = bank.getFloat(CVT_Seeds.pt, i);
+ double phi0 = bank.getFloat(CVT_Seeds.phi0, i);
+ double tandip = bank.getFloat(CVT_Seeds.tandip, i);
+ double z0 = bank.getFloat(CVT_Seeds.z0, i)*10;
+ double d0 = bank.getFloat(CVT_Seeds.d0, i)*10;
+ int q = bank.getByte(CVT_Seeds.q, i);
+ int type = bank.getByte(CVT_Seeds.fittingMethod, i);
+// double xb = bank.getFloat(CVT_Seeds.xb, i);
+// double yb = bank.getFloat(CVT_Seeds.yb, i);
Helix helix = new Helix( pt, d0, phi0, z0, tandip, q, xb, yb);
double[][] covmatrix = new double[5][5];
- covmatrix[0][0] = bank.getFloat("cov_d02", i)*10*10;
- covmatrix[0][1] = bank.getFloat("cov_d0phi0", i)*10 ;
- covmatrix[0][2] = bank.getFloat("cov_d0rho", i);
- covmatrix[1][0] = bank.getFloat("cov_d0phi0", i)*10 ;
- covmatrix[1][1] = bank.getFloat("cov_phi02", i);
- covmatrix[1][2] = bank.getFloat("cov_phi0rho", i)/10 ;
- covmatrix[2][0] = bank.getFloat("cov_d0rho", i);
- covmatrix[2][1] = bank.getFloat("cov_phi0rho", i)/10 ;
- covmatrix[2][2] = bank.getFloat("cov_rho2", i)/10/10;
- covmatrix[3][3] = bank.getFloat("cov_z02", i)*10*10;
- covmatrix[3][4] = bank.getFloat("cov_z0tandip", i)*10;
- covmatrix[4][3] = bank.getFloat("cov_z0tandip", i)*10;
- covmatrix[4][4] = bank.getFloat("cov_tandip2", i);
- double circleChi2 = bank.getFloat("circlefit_chi2_per_ndf", i);
- double lineChi2 = bank.getFloat("linefit_chi2_per_ndf", i);
- double chi2 = bank.getFloat("chi2", i);
- int ndf = bank.getShort("ndf", i);
+ covmatrix[0][0] = bank.getFloat(CVT_Seeds.cov_d02, i)*10*10;
+ covmatrix[0][1] = bank.getFloat(CVT_Seeds.cov_d0phi0, i)*10 ;
+ covmatrix[0][2] = bank.getFloat(CVT_Seeds.cov_d0rho, i);
+ covmatrix[1][0] = bank.getFloat(CVT_Seeds.cov_d0phi0, i)*10 ;
+ covmatrix[1][1] = bank.getFloat(CVT_Seeds.cov_phi02, i);
+ covmatrix[1][2] = bank.getFloat(CVT_Seeds.cov_phi0rho, i)/10 ;
+ covmatrix[2][0] = bank.getFloat(CVT_Seeds.cov_d0rho, i);
+ covmatrix[2][1] = bank.getFloat(CVT_Seeds.cov_phi0rho, i)/10 ;
+ covmatrix[2][2] = bank.getFloat(CVT_Seeds.cov_rho2, i)/10/10;
+ covmatrix[3][3] = bank.getFloat(CVT_Seeds.cov_z02, i)*10*10;
+ covmatrix[3][4] = bank.getFloat(CVT_Seeds.cov_z0tandip, i)*10;
+ covmatrix[4][3] = bank.getFloat(CVT_Seeds.cov_z0tandip, i)*10;
+ covmatrix[4][4] = bank.getFloat(CVT_Seeds.cov_tandip2, i);
+ double circleChi2 = bank.getFloat(CVT_Seeds.circlefit_chi2_per_ndf, i);
+ double lineChi2 = bank.getFloat(CVT_Seeds.linefit_chi2_per_ndf, i);
+ double chi2 = bank.getFloat(CVT_Seeds.chi2, i);
+ int ndf = bank.getShort(CVT_Seeds.ndf, i);
Seed seed = new Seed();
seed.setId(tid);
seed.setHelix(helix);
@@ -400,8 +408,8 @@ public static Map readCVTSeedsBank(DataEvent event, double xb, do
seed.setLineFitChi2PerNDF(lineChi2);
seed.setChi2(chi2);
seed.setNDF(ndf);
- seed.percentTruthMatch = bank.getFloat("fracmctru", i);
- seed.totpercentTruthMatch = bank.getFloat("fracmcmatch", i);
+ seed.percentTruthMatch = bank.getFloat(CVT_Seeds.fracmctru, i);
+ seed.totpercentTruthMatch = bank.getFloat(CVT_Seeds.fracmcmatch, i);
List crossesOnTrk = new ArrayList<>();
for (int j = 0; j < 9; j++) {
@@ -438,36 +446,36 @@ public static Map readCVTTracksBank(DataEvent event, double xb, d
DataBank bank = event.getBank("CVT::Tracks");
for(int i = 0; i < bank.rows(); i++) {
- int tid = bank.getShort("ID", i);
- double pt = bank.getFloat("pt", i);
- double phi0 = bank.getFloat("phi0", i);
- double tandip = bank.getFloat("tandip", i);
- double z0 = bank.getFloat("z0", i)*10;
- double d0 = bank.getFloat("d0", i)*10;
- int q = bank.getByte("q", i);
-// double xb = bank.getFloat("xb", i);
-// double yb = bank.getFloat("yb", i);
+ int tid = bank.getShort(CVT_Tracks.ID, i);
+ double pt = bank.getFloat(CVT_Tracks.pt, i);
+ double phi0 = bank.getFloat(CVT_Tracks.phi0, i);
+ double tandip = bank.getFloat(CVT_Tracks.tandip, i);
+ double z0 = bank.getFloat(CVT_Tracks.z0, i)*10;
+ double d0 = bank.getFloat(CVT_Tracks.d0, i)*10;
+ int q = bank.getByte(CVT_Tracks.q, i);
+// double xb = bank.getFloat(CVT_Tracks.xb, i);
+// double yb = bank.getFloat(CVT_Tracks.yb, i);
Helix helix = new Helix( pt, d0, phi0, z0, tandip, q, xb, yb);
double[][] covmatrix = new double[5][5];
- covmatrix[0][0] = bank.getFloat("cov_d02", i)*10*10;
- covmatrix[0][1] = bank.getFloat("cov_d0phi0", i)*10 ;
- covmatrix[0][2] = bank.getFloat("cov_d0rho", i);
- covmatrix[1][0] = bank.getFloat("cov_d0phi0", i)*10 ;
- covmatrix[1][1] = bank.getFloat("cov_phi02", i);
- covmatrix[1][2] = bank.getFloat("cov_phi0rho", i)/10 ;
- covmatrix[2][0] = bank.getFloat("cov_d0rho", i);
- covmatrix[2][1] = bank.getFloat("cov_phi0rho", i)/10 ;
- covmatrix[2][2] = bank.getFloat("cov_rho2", i)/10/10;
- covmatrix[3][3] = bank.getFloat("cov_z02", i)*10*10;
- covmatrix[3][4] = bank.getFloat("cov_z0tandip", i)*10;
- covmatrix[4][3] = bank.getFloat("cov_z0tandip", i)*10;
- covmatrix[4][4] = bank.getFloat("cov_tandip2", i);
- // int status = bank.getShort("status", i);
- // double chi2 = bank.getFloat("chi2", i);
- // int ndf = bank.getShort("ndf", i);
- // int pid = bank.getInt("pid", i);
- int seedId = bank.getShort("seedID", i);
- int status = Math.abs(bank.getShort("status", i));
+ covmatrix[0][0] = bank.getFloat(CVT_Tracks.cov_d02, i)*10*10;
+ covmatrix[0][1] = bank.getFloat(CVT_Tracks.cov_d0phi0, i)*10 ;
+ covmatrix[0][2] = bank.getFloat(CVT_Tracks.cov_d0rho, i);
+ covmatrix[1][0] = bank.getFloat(CVT_Tracks.cov_d0phi0, i)*10 ;
+ covmatrix[1][1] = bank.getFloat(CVT_Tracks.cov_phi02, i);
+ covmatrix[1][2] = bank.getFloat(CVT_Tracks.cov_phi0rho, i)/10 ;
+ covmatrix[2][0] = bank.getFloat(CVT_Tracks.cov_d0rho, i);
+ covmatrix[2][1] = bank.getFloat(CVT_Tracks.cov_phi0rho, i)/10 ;
+ covmatrix[2][2] = bank.getFloat(CVT_Tracks.cov_rho2, i)/10/10;
+ covmatrix[3][3] = bank.getFloat(CVT_Tracks.cov_z02, i)*10*10;
+ covmatrix[3][4] = bank.getFloat(CVT_Tracks.cov_z0tandip, i)*10;
+ covmatrix[4][3] = bank.getFloat(CVT_Tracks.cov_z0tandip, i)*10;
+ covmatrix[4][4] = bank.getFloat(CVT_Tracks.cov_tandip2, i);
+ // int status = bank.getShort(CVT_Tracks.status, i);
+ // double chi2 = bank.getFloat(CVT_Tracks.chi2, i);
+ // int ndf = bank.getShort(CVT_Tracks.ndf, i);
+ // int pid = bank.getInt(CVT_Tracks.pid, i);
+ int seedId = bank.getShort(CVT_Tracks.seedID, i);
+ int status = Math.abs(bank.getShort(CVT_Tracks.status, i));
int type = status - (int) (status/10) * 10;
Seed seed = cvtSeeds.get(seedId);
seed.setId(tid);
@@ -503,78 +511,4 @@ public static Map readCVTTracksBank(DataEvent event, double xb, d
}
}
- /*
- public static Map readCVTTracksBank(DataEvent event, double xb, double yb, Map cvtSeeds,
- Map svtCrosses, Map bmtCrosses) {
-
- if(!event.hasBank("CVT::Tracks"))
- return null;
- else {
- Map seeds = new HashMap<>();
-
- DataBank bank = event.getBank("CVT::Tracks");
- for(int i = 0; i < bank.rows(); i++) {
- int tid = bank.getShort("ID", i);
- double pt = bank.getFloat("pt", i);
- double phi0 = bank.getFloat("phi0", i);
- double tandip = bank.getFloat("tandip", i);
- double z0 = bank.getFloat("z0", i)*10;
- double d0 = bank.getFloat("d0", i)*10;
- int q = bank.getByte("q", i);
-// double xb = bank.getFloat("xb", i);
-// double yb = bank.getFloat("yb", i);
- Helix helix = new Helix( pt, d0, phi0, z0, tandip, q, xb, yb);
- double[][] covmatrix = new double[5][5];
- covmatrix[0][0] = bank.getFloat("cov_d02", i)*10*10;
- covmatrix[0][1] = bank.getFloat("cov_d0phi0", i)*10 ;
- covmatrix[0][2] = bank.getFloat("cov_d0rho", i);
- covmatrix[1][0] = bank.getFloat("cov_d0phi0", i)*10 ;
- covmatrix[1][1] = bank.getFloat("cov_phi02", i);
- covmatrix[1][2] = bank.getFloat("cov_phi0rho", i)/10 ;
- covmatrix[2][0] = bank.getFloat("cov_d0rho", i);
- covmatrix[2][1] = bank.getFloat("cov_phi0rho", i)/10 ;
- covmatrix[2][2] = bank.getFloat("cov_rho2", i)/10/10;
- covmatrix[3][3] = bank.getFloat("cov_z02", i)*10*10;
- covmatrix[3][4] = bank.getFloat("cov_z0tandip", i)*10;
- covmatrix[4][3] = bank.getFloat("cov_z0tandip", i)*10;
- covmatrix[4][4] = bank.getFloat("cov_tandip2", i);
- // int status = bank.getShort("status", i);
- // double chi2 = bank.getFloat("chi2", i);
- // int ndf = bank.getShort("ndf", i);
- // int pid = bank.getInt("pid", i);
- int seedId = bank.getShort("seedID", i);
- int type = bank.getByte("fittingMethod", i);
-
- Seed seed = cvtSeeds.get(seedId);
- seed.setId(tid);
- seed.setHelix(helix);
- seed.getHelix().setCovMatrix(covmatrix);
- seed.setStatus(type);
- seed.FirstPassIdx = i;
- List crossesOnTrk = new ArrayList<>();
- for (int j = 0; j < 9; j++) {
- String hitStrg = "Cross";
- hitStrg += (j + 1);
- hitStrg += "_ID";
- int cid = (int) bank.getShort(hitStrg, i);
- if(svtCrosses.containsKey(cid)) {
- crossesOnTrk.add(svtCrosses.get(cid));
-
- }
- if(bmtCrosses!=null) {
- if(bmtCrosses.containsKey(cid)) {
- crossesOnTrk.add(bmtCrosses.get(cid));
- }
- }
- }
-
- seed.setCrosses(crossesOnTrk);
-
- seeds.put(tid, seed);
- }
- return seeds;
- }
- }
- */
-
}
diff --git a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/banks/RecoBankWriter.java b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/banks/RecoBankWriter.java
index 581fb57def..64388e3aac 100644
--- a/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/banks/RecoBankWriter.java
+++ b/reconstruction/cvt/src/main/java/org/jlab/rec/cvt/banks/RecoBankWriter.java
@@ -18,6 +18,19 @@
import org.jlab.rec.cvt.trajectory.Helix;
import org.jlab.rec.cvt.trajectory.StateVec;
import org.jlab.geom.prim.Line3D;
+import org.jlab.io.banks.BMT_Clusters;
+import org.jlab.io.banks.BMT_Crosses;
+import org.jlab.io.banks.BMT_Hits;
+import org.jlab.io.banks.BST_Clusters;
+import org.jlab.io.banks.BST_Crosses;
+import org.jlab.io.banks.BST_Hits;
+import org.jlab.io.banks.CVTRec_CosmicSeeds;
+import org.jlab.io.banks.CVTRec_Cosmics;
+import org.jlab.io.banks.CVTRec_KFTrajectory;
+import org.jlab.io.banks.CVTRec_Tracks;
+import org.jlab.io.banks.CVTRec_Trajectory;
+import org.jlab.io.banks.CVTRec_UTracks;
+import org.jlab.io.banks.CVT_Seeds;
import org.jlab.rec.cvt.Constants;
import org.jlab.rec.cvt.bmt.BMTType;
import org.jlab.rec.cvt.hit.Hit;
@@ -42,20 +55,20 @@ public static DataBank fillSVTHitBank(DataEvent event, List hitlist, String
for (int i = 0; i < hitlist.size(); i++) {
- bank.setShort("ID", i, (short) hitlist.get(i).getId());
+ bank.setShort(BST_Hits.ID, i, (short) hitlist.get(i).getId());
- bank.setByte("layer", i, (byte) hitlist.get(i).getLayer());
- bank.setByte("sector", i, (byte) hitlist.get(i).getSector());
- bank.setShort("strip", i, (short) hitlist.get(i).getStrip().getStrip());
+ bank.setByte(BST_Hits.layer, i, (byte) hitlist.get(i).getLayer());
+ bank.setByte(BST_Hits.sector, i, (byte) hitlist.get(i).getSector());
+ bank.setShort(BST_Hits.strip, i, (short) hitlist.get(i).getStrip().getStrip());
- bank.setFloat("energy", i, (float) hitlist.get(i).getStrip().getEdep());
- bank.setFloat("time", i, (float) hitlist.get(i).getStrip().getTime());
- bank.setFloat("fitResidual", i, (float) hitlist.get(i).getResidual()/10);
- bank.setByte("trkingStat", i, (byte) hitlist.get(i).getTrkgStatus());
+ bank.setFloat(BST_Hits.energy, i, (float) hitlist.get(i).getStrip().getEdep());
+ bank.setFloat(BST_Hits.time, i, (float) hitlist.get(i).getStrip().getTime());
+ bank.setFloat(BST_Hits.fitResidual, i, (float) hitlist.get(i).getResidual()/10);
+ bank.setByte(BST_Hits.trkingStat, i, (byte) hitlist.get(i).getTrkgStatus());
- bank.setShort("clusterID", i, (short) hitlist.get(i).getAssociatedClusterID());
- bank.setShort("trkID", i, (short) hitlist.get(i).getAssociatedTrackID());
- bank.setByte("status", i, (byte) hitlist.get(i).getStrip().getStatus());
+ bank.setShort(BST_Hits.clusterID, i, (short) hitlist.get(i).getAssociatedClusterID());
+ bank.setShort(BST_Hits.trkID, i, (short) hitlist.get(i).getAssociatedTrackID());
+ bank.setByte(BST_Hits.status, i, (byte) hitlist.get(i).getStrip().getStatus());
}
//bank.show();
return bank;
@@ -80,19 +93,19 @@ public static DataBank fillSVTClusterBank(DataEvent event, List cluslis
for (int j = 0; j < hitIdxArray.length; j++) {
hitIdxArray[j] = -1;
}
- bank.setShort("ID", i, (short) cluslist.get(i).getId());
- bank.setByte("sector", i, (byte) cluslist.get(i).getSector());
- bank.setByte("layer", i, (byte) cluslist.get(i).getLayer());
- bank.setShort("size", i, (short) cluslist.get(i).size());
- bank.setFloat("ETot", i, (float) cluslist.get(i).getTotalEnergy());
- bank.setFloat("time", i, (float) cluslist.get(i).getTime());
- bank.setShort("seedStrip", i, (short) cluslist.get(i).getSeedStrip().getStrip());
- bank.setFloat("centroid", i, (float) cluslist.get(i).getCentroid());
- bank.setFloat("seedE", i, (float) cluslist.get(i).getSeedStrip().getEdep());
- bank.setFloat("centroidError", i, (float) cluslist.get(i).getResolution()/10);
- bank.setFloat("centroidResidual", i, (float) cluslist.get(i).getCentroidResidual()/10);
- bank.setFloat("seedResidual", i, (float) cluslist.get(i).getSeedResidual()/10);
- bank.setShort("trkID", i, (short) cluslist.get(i).getAssociatedTrackID());
+ bank.setShort(BST_Clusters.ID, i, (short) cluslist.get(i).getId());
+ bank.setByte(BST_Clusters.sector, i, (byte) cluslist.get(i).getSector());
+ bank.setByte(BST_Clusters.layer, i, (byte) cluslist.get(i).getLayer());
+ bank.setShort(BST_Clusters.size, i, (short) cluslist.get(i).size());
+ bank.setFloat(BST_Clusters.ETot, i, (float) cluslist.get(i).getTotalEnergy());
+ bank.setFloat(BST_Clusters.time, i, (float) cluslist.get(i).getTime());
+ bank.setShort(BST_Clusters.seedStrip, i, (short) cluslist.get(i).getSeedStrip().getStrip());
+ bank.setFloat(BST_Clusters.centroid, i, (float) cluslist.get(i).getCentroid());
+ bank.setFloat(BST_Clusters.seedE, i, (float) cluslist.get(i).getSeedStrip().getEdep());
+ bank.setFloat(BST_Clusters.centroidError, i, (float) cluslist.get(i).getResolution()/10);
+ bank.setFloat(BST_Clusters.centroidResidual, i, (float) cluslist.get(i).getCentroidResidual()/10);
+ bank.setFloat(BST_Clusters.seedResidual, i, (float) cluslist.get(i).getSeedResidual()/10);
+ bank.setShort(BST_Clusters.trkID, i, (short) cluslist.get(i).getAssociatedTrackID());
for (int j = 0; j < cluslist.get(i).size(); j++) {
if (j < hitIdxArray.length) {
@@ -107,25 +120,25 @@ public static DataBank fillSVTClusterBank(DataEvent event, List cluslis
bank.setShort(hitStrg, i, (short) hitIdxArray[j]);
}
- bank.setFloat("x1", i, (float)cluslist.get(i).origin().x()/10);
- bank.setFloat("y1", i, (float)cluslist.get(i).origin().y()/10);
- bank.setFloat("z1", i, (float)cluslist.get(i).origin().z()/10);
- bank.setFloat("x2", i, (float)cluslist.get(i).end().x()/10);
- bank.setFloat("y2", i, (float)cluslist.get(i).end().y()/10);
- bank.setFloat("z2", i, (float)cluslist.get(i).end().z()/10);
- bank.setFloat("cx", i, (float)cluslist.get(i).center().x()/10);
- bank.setFloat("cy", i, (float)cluslist.get(i).center().y()/10);
- bank.setFloat("cz", i, (float)cluslist.get(i).center().z()/10);
- bank.setFloat("lx", i, (float)cluslist.get(i).getL().x());
- bank.setFloat("ly", i, (float)cluslist.get(i).getL().y());
- bank.setFloat("lz", i, (float)cluslist.get(i).getL().z());
- bank.setFloat("sx", i, (float)cluslist.get(i).getS().x());
- bank.setFloat("sy", i, (float)cluslist.get(i).getS().y());
- bank.setFloat("sz", i, (float)cluslist.get(i).getS().z());
- bank.setFloat("nx", i, (float)cluslist.get(i).getN().x());
- bank.setFloat("ny", i, (float)cluslist.get(i).getN().y());
- bank.setFloat("nz", i, (float)cluslist.get(i).getN().z());
- bank.setFloat("e", i, (float)cluslist.get(i).getResolution()/10);
+ bank.setFloat(BST_Clusters.x1, i, (float)cluslist.get(i).origin().x()/10);
+ bank.setFloat(BST_Clusters.y1, i, (float)cluslist.get(i).origin().y()/10);
+ bank.setFloat(BST_Clusters.z1, i, (float)cluslist.get(i).origin().z()/10);
+ bank.setFloat(BST_Clusters.x2, i, (float)cluslist.get(i).end().x()/10);
+ bank.setFloat(BST_Clusters.y2, i, (float)cluslist.get(i).end().y()/10);
+ bank.setFloat(BST_Clusters.z2, i, (float)cluslist.get(i).end().z()/10);
+ bank.setFloat(BST_Clusters.cx, i, (float)cluslist.get(i).center().x()/10);
+ bank.setFloat(BST_Clusters.cy, i, (float)cluslist.get(i).center().y()/10);
+ bank.setFloat(BST_Clusters.cz, i, (float)cluslist.get(i).center().z()/10);
+ bank.setFloat(BST_Clusters.lx, i, (float)cluslist.get(i).getL().x());
+ bank.setFloat(BST_Clusters.ly, i, (float)cluslist.get(i).getL().y());
+ bank.setFloat(BST_Clusters.lz, i, (float)cluslist.get(i).getL().z());
+ bank.setFloat(BST_Clusters.sx, i, (float)cluslist.get(i).getS().x());
+ bank.setFloat(BST_Clusters.sy, i, (float)cluslist.get(i).getS().y());
+ bank.setFloat(BST_Clusters.sz, i, (float)cluslist.get(i).getS().z());
+ bank.setFloat(BST_Clusters.nx, i, (float)cluslist.get(i).getN().x());
+ bank.setFloat(BST_Clusters.ny, i, (float)cluslist.get(i).getN().y());
+ bank.setFloat(BST_Clusters.nz, i, (float)cluslist.get(i).getN().z());
+ bank.setFloat(BST_Clusters.e, i, (float)cluslist.get(i).getResolution()/10);
}
//bank.show();
return bank;
@@ -145,40 +158,40 @@ public static DataBank fillSVTCrossBank(DataEvent event, List crosses, St
DataBank bank = event.createBank(bankName, crosses.size());
for (int j = 0; j < crosses.size(); j++) {
- bank.setShort("ID", j, (short) crosses.get(j).getId());
- bank.setByte("sector", j, (byte) crosses.get(j).getSector());
- bank.setByte("region", j, (byte) crosses.get(j).getRegion());
- bank.setFloat("x", j, (float) (crosses.get(j).getPoint().x()/10.));
- bank.setFloat("y", j, (float) (crosses.get(j).getPoint().y()/10.));
- bank.setFloat("z", j, (float) (crosses.get(j).getPoint().z()/10));
- bank.setFloat("err_x", j, (float) (crosses.get(j).getPointErr().x()/10.));
- bank.setFloat("err_y", j, (float) (crosses.get(j).getPointErr().y()/10.));
- bank.setFloat("err_z", j, (float) (crosses.get(j).getPointErr().z()/10.));
- bank.setFloat("x0", j, (float) (crosses.get(j).getPoint0().x()/10.));
- bank.setFloat("y0", j, (float) (crosses.get(j).getPoint0().y()/10.));
- bank.setFloat("z0", j, (float) (crosses.get(j).getPoint0().z()/10));
- bank.setFloat("err_x0", j, (float) (crosses.get(j).getPointErr0().x()/10.));
- bank.setFloat("err_y0", j, (float) (crosses.get(j).getPointErr0().y()/10.));
- bank.setFloat("err_z0", j, (float) (crosses.get(j).getPointErr0().z()/10.));
- bank.setShort("trkID", j, (short) crosses.get(j).getAssociatedTrackID());
+ bank.setShort(BST_Crosses.ID, j, (short) crosses.get(j).getId());
+ bank.setByte(BST_Crosses.sector, j, (byte) crosses.get(j).getSector());
+ bank.setByte(BST_Crosses.region, j, (byte) crosses.get(j).getRegion());
+ bank.setFloat(BST_Crosses.x, j, (float) (crosses.get(j).getPoint().x()/10.));
+ bank.setFloat(BST_Crosses.y, j, (float) (crosses.get(j).getPoint().y()/10.));
+ bank.setFloat(BST_Crosses.z, j, (float) (crosses.get(j).getPoint().z()/10));
+ bank.setFloat(BST_Crosses.err_x, j, (float) (crosses.get(j).getPointErr().x()/10.));
+ bank.setFloat(BST_Crosses.err_y, j, (float) (crosses.get(j).getPointErr().y()/10.));
+ bank.setFloat(BST_Crosses.err_z, j, (float) (crosses.get(j).getPointErr().z()/10.));
+ bank.setFloat(BST_Crosses.x0, j, (float) (crosses.get(j).getPoint0().x()/10.));
+ bank.setFloat(BST_Crosses.y0, j, (float) (crosses.get(j).getPoint0().y()/10.));
+ bank.setFloat(BST_Crosses.z0, j, (float) (crosses.get(j).getPoint0().z()/10));
+ bank.setFloat(BST_Crosses.err_x0, j, (float) (crosses.get(j).getPointErr0().x()/10.));
+ bank.setFloat(BST_Crosses.err_y0, j, (float) (crosses.get(j).getPointErr0().y()/10.));
+ bank.setFloat(BST_Crosses.err_z0, j, (float) (crosses.get(j).getPointErr0().z()/10.));
+ bank.setShort(BST_Crosses.trkID, j, (short) crosses.get(j).getAssociatedTrackID());
if (crosses.get(j).getDir() != null &&
!Double.isNaN(crosses.get(j).getDir().x()) &&
!Double.isNaN(crosses.get(j).getDir().y()) &&
!Double.isNaN(crosses.get(j).getDir().z()) ) {
- bank.setFloat("ux", j, (float) crosses.get(j).getDir().x());
- bank.setFloat("uy", j, (float) crosses.get(j).getDir().y());
- bank.setFloat("uz", j, (float) crosses.get(j).getDir().z());
+ bank.setFloat(BST_Crosses.ux, j, (float) crosses.get(j).getDir().x());
+ bank.setFloat(BST_Crosses.uy, j, (float) crosses.get(j).getDir().y());
+ bank.setFloat(BST_Crosses.uz, j, (float) crosses.get(j).getDir().z());
} else {
- bank.setFloat("ux", j, 0);
- bank.setFloat("uy", j, 0);
- bank.setFloat("uz", j, 0);
+ bank.setFloat(BST_Crosses.ux, j, 0);
+ bank.setFloat(BST_Crosses.uy, j, 0);
+ bank.setFloat(BST_Crosses.uz, j, 0);
}
if (crosses.get(j).getCluster1() != null) {
- bank.setShort("Cluster1_ID", j, (short) crosses.get(j).getCluster1().getId());
+ bank.setShort(BST_Crosses.Cluster1_ID, j, (short) crosses.get(j).getCluster1().getId());
}
if (crosses.get(j).getCluster2() != null) {
- bank.setShort("Cluster2_ID", j, (short) crosses.get(j).getCluster2().getId());
+ bank.setShort(BST_Crosses.Cluster2_ID, j, (short) crosses.get(j).getCluster2().getId());
}
}
@@ -194,20 +207,20 @@ public static DataBank fillBMTHitBank(DataEvent event, List hitlist, String
for (int i = 0; i < hitlist.size(); i++) {
- bank.setShort("ID", i, (short) hitlist.get(i).getId());
+ bank.setShort(BMT_Hits.ID, i, (short) hitlist.get(i).getId());
- bank.setByte("layer", i, (byte) hitlist.get(i).getLayer());
- bank.setByte("sector", i, (byte) hitlist.get(i).getSector());
- bank.setShort("strip", i, (short) hitlist.get(i).getStrip().getStrip());
+ bank.setByte(BMT_Hits.layer, i, (byte) hitlist.get(i).getLayer());
+ bank.setByte(BMT_Hits.sector, i, (byte) hitlist.get(i).getSector());
+ bank.setShort(BMT_Hits.strip, i, (short) hitlist.get(i).getStrip().getStrip());
- bank.setFloat("energy", i, (float) hitlist.get(i).getStrip().getEdep());
- bank.setFloat("time", i, (float) hitlist.get(i).getStrip().getTime());
- bank.setFloat("fitResidual", i, (float) hitlist.get(i).getResidual()/10);
- bank.setByte("trkingStat", i, (byte) hitlist.get(i).getTrkgStatus());
+ bank.setFloat(BMT_Hits.energy, i, (float) hitlist.get(i).getStrip().getEdep());
+ bank.setFloat(BMT_Hits.time, i, (float) hitlist.get(i).getStrip().getTime());
+ bank.setFloat(BMT_Hits.fitResidual, i, (float) hitlist.get(i).getResidual()/10);
+ bank.setByte(BMT_Hits.trkingStat, i, (byte) hitlist.get(i).getTrkgStatus());
- bank.setShort("clusterID", i, (short) hitlist.get(i).getAssociatedClusterID());
- bank.setShort("trkID", i, (short) hitlist.get(i).getAssociatedTrackID());
- bank.setByte("status", i, (byte) hitlist.get(i).getStrip().getStatus());
+ bank.setShort(BMT_Hits.clusterID, i, (short) hitlist.get(i).getAssociatedClusterID());
+ bank.setShort(BMT_Hits.trkID, i, (short) hitlist.get(i).getAssociatedTrackID());
+ bank.setByte(BMT_Hits.status, i, (byte) hitlist.get(i).getStrip().getStatus());
}
return bank;
@@ -232,26 +245,26 @@ public static DataBank fillBMTClusterBank(DataEvent event, List cluslis
for (int j = 0; j < hitIdxArray.length; j++) {
hitIdxArray[j] = -1;
}
- bank.setShort("ID", i, (short) cluslist.get(i).getId());
- bank.setByte("sector", i, (byte) cluslist.get(i).getSector());
- bank.setByte("layer", i, (byte) cluslist.get(i).getLayer());
- bank.setShort("size", i, (short) cluslist.get(i).size());
- bank.setFloat("ETot", i, (float) cluslist.get(i).getTotalEnergy());
- bank.setFloat("time", i, (float) cluslist.get(i).getTime());
- bank.setShort("seedStrip", i, (short) cluslist.get(i).getSeedStrip().getStrip());
- bank.setFloat("centroid", i, (float) cluslist.get(i).getCentroid());
+ bank.setShort(BMT_Clusters.ID, i, (short) cluslist.get(i).getId());
+ bank.setByte(BMT_Clusters.sector, i, (byte) cluslist.get(i).getSector());
+ bank.setByte(BMT_Clusters.layer, i, (byte) cluslist.get(i).getLayer());
+ bank.setShort(BMT_Clusters.size, i, (short) cluslist.get(i).size());
+ bank.setFloat(BMT_Clusters.ETot, i, (float) cluslist.get(i).getTotalEnergy());
+ bank.setFloat(BMT_Clusters.time, i, (float) cluslist.get(i).getTime());
+ bank.setShort(BMT_Clusters.seedStrip, i, (short) cluslist.get(i).getSeedStrip().getStrip());
+ bank.setFloat(BMT_Clusters.centroid, i, (float) cluslist.get(i).getCentroid());
if(cluslist.get(i).getType()==BMTType.C) {
- bank.setFloat("centroidValue", i, (float) cluslist.get(i).getCentroidValue()/10);
- bank.setFloat("centroidError", i, (float) cluslist.get(i).getCentroidError()/10);
+ bank.setFloat(BMT_Clusters.centroidValue, i, (float) cluslist.get(i).getCentroidValue()/10);
+ bank.setFloat(BMT_Clusters.centroidError, i, (float) cluslist.get(i).getCentroidError()/10);
}
else {
- bank.setFloat("centroidValue", i, (float) cluslist.get(i).getCentroidValue());
- bank.setFloat("centroidError", i, (float) cluslist.get(i).getCentroidError());
+ bank.setFloat(BMT_Clusters.centroidValue, i, (float) cluslist.get(i).getCentroidValue());
+ bank.setFloat(BMT_Clusters.centroidError, i, (float) cluslist.get(i).getCentroidError());
}
- bank.setFloat("centroidResidual", i, (float) cluslist.get(i).getCentroidResidual()/10);
- bank.setFloat("seedResidual", i, (float) cluslist.get(i).getSeedResidual()/10);
- bank.setFloat("seedE", i, (float) cluslist.get(i).getSeedStrip().getEdep());
- bank.setShort("trkID", i, (short) cluslist.get(i).getAssociatedTrackID());
+ bank.setFloat(BMT_Clusters.centroidResidual, i, (float) cluslist.get(i).getCentroidResidual()/10);
+ bank.setFloat(BMT_Clusters.seedResidual, i, (float) cluslist.get(i).getSeedResidual()/10);
+ bank.setFloat(BMT_Clusters.seedE, i, (float) cluslist.get(i).getSeedStrip().getEdep());
+ bank.setShort(BMT_Clusters.trkID, i, (short) cluslist.get(i).getAssociatedTrackID());
for (int j = 0; j < cluslist.get(i).size(); j++) {
if (j < hitIdxArray.length) {
hitIdxArray[j] = cluslist.get(i).get(j).getId();
@@ -264,32 +277,32 @@ public static DataBank fillBMTClusterBank(DataEvent event, List cluslis
hitStrg += "_ID";
bank.setShort(hitStrg, i, (short) hitIdxArray[j]);
}
- bank.setFloat("x1", i, (float)cluslist.get(i).origin().x()/10);
- bank.setFloat("y1", i, (float)cluslist.get(i).origin().y()/10);
- bank.setFloat("z1", i, (float)cluslist.get(i).origin().z()/10);
- bank.setFloat("x2", i, (float)cluslist.get(i).end().x()/10);
- bank.setFloat("y2", i, (float)cluslist.get(i).end().y()/10);
- bank.setFloat("z2", i, (float)cluslist.get(i).end().z()/10);
- bank.setFloat("cx", i, (float)cluslist.get(i).center().x()/10);
- bank.setFloat("cy", i, (float)cluslist.get(i).center().y()/10);
- bank.setFloat("cz", i, (float)cluslist.get(i).center().z()/10);
- bank.setFloat("theta",i, (float)cluslist.get(i).theta());
- bank.setFloat("ax1", i, (float)cluslist.get(i).getAxis().origin().x()/10);
- bank.setFloat("ay1", i, (float)cluslist.get(i).getAxis().origin().y()/10);
- bank.setFloat("az1", i, (float)cluslist.get(i).getAxis().origin().z()/10);
- bank.setFloat("ax2", i, (float)cluslist.get(i).getAxis().end().x()/10);
- bank.setFloat("ay2", i, (float)cluslist.get(i).getAxis().end().y()/10);
- bank.setFloat("az2", i, (float)cluslist.get(i).getAxis().end().z()/10);
- bank.setFloat("lx", i, (float)cluslist.get(i).getL().x());
- bank.setFloat("ly", i, (float)cluslist.get(i).getL().y());
- bank.setFloat("lz", i, (float)cluslist.get(i).getL().z());
- bank.setFloat("sx", i, (float)cluslist.get(i).getS().x());
- bank.setFloat("sy", i, (float)cluslist.get(i).getS().y());
- bank.setFloat("sz", i, (float)cluslist.get(i).getS().z());
- bank.setFloat("nx", i, (float)cluslist.get(i).getN().x());
- bank.setFloat("ny", i, (float)cluslist.get(i).getN().y());
- bank.setFloat("nz", i, (float)cluslist.get(i).getN().z());
- bank.setFloat("e", i, (float)cluslist.get(i).getResolution()/10);
+ bank.setFloat(BMT_Clusters.x1, i, (float)cluslist.get(i).origin().x()/10);
+ bank.setFloat(BMT_Clusters.y1, i, (float)cluslist.get(i).origin().y()/10);
+ bank.setFloat(BMT_Clusters.z1, i, (float)cluslist.get(i).origin().z()/10);
+ bank.setFloat(BMT_Clusters.x2, i, (float)cluslist.get(i).end().x()/10);
+ bank.setFloat(BMT_Clusters.y2, i, (float)cluslist.get(i).end().y()/10);
+ bank.setFloat(BMT_Clusters.z2, i, (float)cluslist.get(i).end().z()/10);
+ bank.setFloat(BMT_Clusters.cx, i, (float)cluslist.get(i).center().x()/10);
+ bank.setFloat(BMT_Clusters.cy, i, (float)cluslist.get(i).center().y()/10);
+ bank.setFloat(BMT_Clusters.cz, i, (float)cluslist.get(i).center().z()/10);
+ bank.setFloat(BMT_Clusters.theta,i, (float)cluslist.get(i).theta());
+ bank.setFloat(BMT_Clusters.ax1, i, (float)cluslist.get(i).getAxis().origin().x()/10);
+ bank.setFloat(BMT_Clusters.ay1, i, (float)cluslist.get(i).getAxis().origin().y()/10);
+ bank.setFloat(BMT_Clusters.az1, i, (float)cluslist.get(i).getAxis().origin().z()/10);
+ bank.setFloat(BMT_Clusters.ax2, i, (float)cluslist.get(i).getAxis().end().x()/10);
+ bank.setFloat(BMT_Clusters.ay2, i, (float)cluslist.get(i).getAxis().end().y()/10);
+ bank.setFloat(BMT_Clusters.az2, i, (float)cluslist.get(i).getAxis().end().z()/10);
+ bank.setFloat(BMT_Clusters.lx, i, (float)cluslist.get(i).getL().x());
+ bank.setFloat(BMT_Clusters.ly, i, (float)cluslist.get(i).getL().y());
+ bank.setFloat(BMT_Clusters.lz, i, (float)cluslist.get(i).getL().z());
+ bank.setFloat(BMT_Clusters.sx, i, (float)cluslist.get(i).getS().x());
+ bank.setFloat(BMT_Clusters.sy, i, (float)cluslist.get(i).getS().y());
+ bank.setFloat(BMT_Clusters.sz, i, (float)cluslist.get(i).getS().z());
+ bank.setFloat(BMT_Clusters.nx, i, (float)cluslist.get(i).getN().x());
+ bank.setFloat(BMT_Clusters.ny, i, (float)cluslist.get(i).getN().y());
+ bank.setFloat(BMT_Clusters.nz, i, (float)cluslist.get(i).getN().z());
+ bank.setFloat(BMT_Clusters.e, i, (float)cluslist.get(i).getResolution()/10);
if(debug && cluslist.get(i).getAssociatedTrackID()>0 && cluslist.get(i).getType()==BMTType.Z) {
Line3D cln = new Line3D(cluslist.get(i).origin(), cluslist.get(i).end());
System.out.println("Check: N "+cluslist.get(i).getN().toString()+" \n"+
@@ -327,41 +340,41 @@ public static DataBank fillBMTCrossBank(DataEvent event, List crosses, St
DataBank bank = event.createBank(bankName, crosses.size());
for (int j = 0; j < crosses.size(); j++) {
- bank.setShort("ID", j, (short) crosses.get(j).getId());
- bank.setByte("sector", j, (byte) crosses.get(j).getSector());
- bank.setByte("region", j, (byte) crosses.get(j).getRegion());
- bank.setFloat("x", j, (float) (crosses.get(j).getPoint().x()/10.));
- bank.setFloat("y", j, (float) (crosses.get(j).getPoint().y()/10.));
- bank.setFloat("z", j, (float) (crosses.get(j).getPoint().z()/10));
- bank.setFloat("err_x", j, (float) (crosses.get(j).getPointErr().x()/10.));
- bank.setFloat("err_y", j, (float) (crosses.get(j).getPointErr().y()/10.));
- bank.setFloat("err_z", j, (float) (crosses.get(j).getPointErr().z()/10.));
- bank.setFloat("x0", j, (float) (crosses.get(j).getPoint0().x()/10.));
- bank.setFloat("y0", j, (float) (crosses.get(j).getPoint0().y()/10.));
- bank.setFloat("z0", j, (float) (crosses.get(j).getPoint0().z()/10));
- bank.setFloat("err_x0", j, (float) (crosses.get(j).getPointErr0().x()/10.));
- bank.setFloat("err_y0", j, (float) (crosses.get(j).getPointErr0().y()/10.));
- bank.setFloat("err_z0", j, (float) (crosses.get(j).getPointErr0().z()/10.));
- bank.setShort("trkID", j, (short) crosses.get(j).getAssociatedTrackID());
+ bank.setShort(BMT_Crosses.ID, j, (short) crosses.get(j).getId());
+ bank.setByte(BMT_Crosses.sector, j, (byte) crosses.get(j).getSector());
+ bank.setByte(BMT_Crosses.region, j, (byte) crosses.get(j).getRegion());
+ bank.setFloat(BMT_Crosses.x, j, (float) (crosses.get(j).getPoint().x()/10.));
+ bank.setFloat(BMT_Crosses.y, j, (float) (crosses.get(j).getPoint().y()/10.));
+ bank.setFloat(BMT_Crosses.z, j, (float) (crosses.get(j).getPoint().z()/10));
+ bank.setFloat(BMT_Crosses.err_x, j, (float) (crosses.get(j).getPointErr().x()/10.));
+ bank.setFloat(BMT_Crosses.err_y, j, (float) (crosses.get(j).getPointErr().y()/10.));
+ bank.setFloat(BMT_Crosses.err_z, j, (float) (crosses.get(j).getPointErr().z()/10.));
+ bank.setFloat(BMT_Crosses.x0, j, (float) (crosses.get(j).getPoint0().x()/10.));
+ bank.setFloat(BMT_Crosses.y0, j, (float) (crosses.get(j).getPoint0().y()/10.));
+ bank.setFloat(BMT_Crosses.z0, j, (float) (crosses.get(j).getPoint0().z()/10));
+ bank.setFloat(BMT_Crosses.err_x0, j, (float) (crosses.get(j).getPointErr0().x()/10.));
+ bank.setFloat(BMT_Crosses.err_y0, j, (float) (crosses.get(j).getPointErr0().y()/10.));
+ bank.setFloat(BMT_Crosses.err_z0, j, (float) (crosses.get(j).getPointErr0().z()/10.));
+ bank.setShort(BMT_Crosses.trkID, j, (short) crosses.get(j).getAssociatedTrackID());
if (crosses.get(j).getDir() != null &&
!Double.isNaN(crosses.get(j).getDir().x()) &&
!Double.isNaN(crosses.get(j).getDir().y()) &&
!Double.isNaN(crosses.get(j).getDir().z()) ) {
- bank.setFloat("ux", j, (float) crosses.get(j).getDir().x());
- bank.setFloat("uy", j, (float) crosses.get(j).getDir().y());
- bank.setFloat("uz", j, (float) crosses.get(j).getDir().z());
+ bank.setFloat(BMT_Crosses.ux, j, (float) crosses.get(j).getDir().x());
+ bank.setFloat(BMT_Crosses.uy, j, (float) crosses.get(j).getDir().y());
+ bank.setFloat(BMT_Crosses.uz, j, (float) crosses.get(j).getDir().z());
} else {
- bank.setFloat("ux", j, 0);
- bank.setFloat("uy", j, 0);
- bank.setFloat("uz", j, 0);
+ bank.setFloat(BMT_Crosses.ux, j, 0);
+ bank.setFloat(BMT_Crosses.uy, j, 0);
+ bank.setFloat(BMT_Crosses.uz, j, 0);
}
if (crosses.get(j).getCluster1() != null) {
- bank.setShort("Cluster1_ID", j, (short) crosses.get(j).getCluster1().getId());
- bank.setByte("layer", j, (byte) crosses.get(j).getCluster1().getLayer());
+ bank.setShort(BMT_Crosses.Cluster1_ID, j, (short) crosses.get(j).getCluster1().getId());
+ bank.setByte(BMT_Crosses.layer, j, (byte) crosses.get(j).getCluster1().getLayer());
}
if (crosses.get(j).getCluster2() != null) {
- bank.setShort("Cluster2_ID", j, (short) crosses.get(j).getCluster2().getId());
+ bank.setShort(BMT_Crosses.Cluster2_ID, j, (short) crosses.get(j).getCluster2().getId());
}
}
@@ -444,49 +457,49 @@ public static DataBank fillSeedBank(DataEvent event, List seeds, String ba
for (int i = 0; i < seeds.size(); i++) {
if(seeds.get(i)==null)
continue;
- bank.setByte("fittingMethod", i, (byte) seeds.get(i).getStatus());
- bank.setShort("ID", i, (short) seeds.get(i).getId());
+ bank.setByte(CVT_Seeds.fittingMethod, i, (byte) seeds.get(i).getStatus());
+ bank.setShort(CVT_Seeds.ID, i, (short) seeds.get(i).getId());
Helix helix = seeds.get(i).getHelix();
- bank.setByte("q", i, (byte) (Math.signum(Constants.getSolenoidScale())*helix.getCharge()));
- bank.setFloat("p", i, (float) helix.getPXYZ(seeds.get(i).getHelix().B).mag());
- bank.setFloat("pt", i, (float) helix.getPt(seeds.get(i).getHelix().B));
- bank.setFloat("phi0", i, (float) helix.getPhiAtDCA());
- bank.setFloat("tandip", i, (float) helix.getTanDip());
- bank.setFloat("z0", i, (float) (helix.getZ0()/10.0));
- bank.setFloat("d0", i, (float) (helix.getDCA()/10.0));
+ bank.setByte(CVT_Seeds.q, i, (byte) (Math.signum(Constants.getSolenoidScale())*helix.getCharge()));
+ bank.setFloat(CVT_Seeds.p, i, (float) helix.getPXYZ(seeds.get(i).getHelix().B).mag());
+ bank.setFloat(CVT_Seeds.pt, i, (float) helix.getPt(seeds.get(i).getHelix().B));
+ bank.setFloat(CVT_Seeds.phi0, i, (float) helix.getPhiAtDCA());
+ bank.setFloat(CVT_Seeds.tandip, i, (float) helix.getTanDip());
+ bank.setFloat(CVT_Seeds.z0, i, (float) (helix.getZ0()/10.0));
+ bank.setFloat(CVT_Seeds.d0, i, (float) (helix.getDCA()/10.0));
double[][] covmatrix = helix.getCovMatrix();
if (covmatrix != null) {
- bank.setFloat("cov_d02", i, (float) covmatrix[0][0]/10/10 );
- bank.setFloat("cov_d0phi0", i, (float) covmatrix[0][1]/10 );
- bank.setFloat("cov_d0rho", i, (float) covmatrix[0][2] );
- bank.setFloat("cov_phi02", i, (float) covmatrix[1][1] );
- bank.setFloat("cov_phi0rho", i, (float) covmatrix[1][2]*10 );
- bank.setFloat("cov_rho2", i, (float) covmatrix[2][2]*10*10 );
- bank.setFloat("cov_z02", i, (float) covmatrix[3][3]/10/10 );
- bank.setFloat("cov_z0tandip", i, (float) covmatrix[3][4]/10 );
- bank.setFloat("cov_tandip2", i, (float) covmatrix[4][4] );
+ bank.setFloat(CVT_Seeds.cov_d02, i, (float) covmatrix[0][0]/10/10 );
+ bank.setFloat(CVT_Seeds.cov_d0phi0, i, (float) covmatrix[0][1]/10 );
+ bank.setFloat(CVT_Seeds.cov_d0rho, i, (float) covmatrix[0][2] );
+ bank.setFloat(CVT_Seeds.cov_phi02, i, (float) covmatrix[1][1] );
+ bank.setFloat(CVT_Seeds.cov_phi0rho, i, (float) covmatrix[1][2]*10 );
+ bank.setFloat(CVT_Seeds.cov_rho2, i, (float) covmatrix[2][2]*10*10 );
+ bank.setFloat(CVT_Seeds.cov_z02, i, (float) covmatrix[3][3]/10/10 );
+ bank.setFloat(CVT_Seeds.cov_z0tandip, i, (float) covmatrix[3][4]/10 );
+ bank.setFloat(CVT_Seeds.cov_tandip2, i, (float) covmatrix[4][4] );
} else {
- bank.setFloat("cov_d02", i, -999);
- bank.setFloat("cov_d0phi0", i, -999);
- bank.setFloat("cov_d0rho", i, -999);
- bank.setFloat("cov_phi02", i, -999);
- bank.setFloat("cov_phi0rho", i, -999);
- bank.setFloat("cov_rho2", i, -999);
- bank.setFloat("cov_z02", i, -999);
- bank.setFloat("cov_tandip2", i, -999);
+ bank.setFloat(CVT_Seeds.cov_d02, i, -999);
+ bank.setFloat(CVT_Seeds.cov_d0phi0, i, -999);
+ bank.setFloat(CVT_Seeds.cov_d0rho, i, -999);
+ bank.setFloat(CVT_Seeds.cov_phi02, i, -999);
+ bank.setFloat(CVT_Seeds.cov_phi0rho, i, -999);
+ bank.setFloat(CVT_Seeds.cov_rho2, i, -999);
+ bank.setFloat(CVT_Seeds.cov_z02, i, -999);
+ bank.setFloat(CVT_Seeds.cov_tandip2, i, -999);
}
- bank.setFloat("xb", i, (float) (helix.getXb()/10.0));
- bank.setFloat("yb", i, (float) (helix.getYb()/10.0));
- bank.setFloat("fracmctru", i, (float) seeds.get(i).percentTruthMatch);
- bank.setFloat("fracmcmatch", i, (float) seeds.get(i).totpercentTruthMatch);
+ bank.setFloat(CVT_Seeds.xb, i, (float) (helix.getXb()/10.0));
+ bank.setFloat(CVT_Seeds.yb, i, (float) (helix.getYb()/10.0));
+ bank.setFloat(CVT_Seeds.fracmctru, i, (float) seeds.get(i).percentTruthMatch);
+ bank.setFloat(CVT_Seeds.fracmcmatch, i, (float) seeds.get(i).totpercentTruthMatch);
// fills the list of cross ids for crosses belonging to that reconstructed track
fillTrkCrossBank(bank,clusmap, seeds.get(i).getCrosses(), i);
- bank.setFloat("circlefit_chi2_per_ndf", i, (float) seeds.get(i).getCircleFitChi2PerNDF());
- bank.setFloat("linefit_chi2_per_ndf", i, (float) seeds.get(i).getLineFitChi2PerNDF());
- bank.setFloat("chi2", i, (float) seeds.get(i).getChi2());
- bank.setShort("ndf", i, (short) seeds.get(i).getNDF());
+ bank.setFloat(CVT_Seeds.circlefit_chi2_per_ndf, i, (float) seeds.get(i).getCircleFitChi2PerNDF());
+ bank.setFloat(CVT_Seeds.linefit_chi2_per_ndf, i, (float) seeds.get(i).getLineFitChi2PerNDF());
+ bank.setFloat(CVT_Seeds.chi2, i, (float) seeds.get(i).getChi2());
+ bank.setShort(CVT_Seeds.ndf, i, (short) seeds.get(i).getNDF());
}
//bank.show();
@@ -510,18 +523,18 @@ public static DataBank fillTrackBank(DataEvent event, List
org.jlab.clas
clas-jcsg
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-analysis
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
test
org.jlab.clas
clas-math
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
cnuphys
snr
- 14.2.0-SNAPSHOT
-
-
- org.jlab.plugins
- trackfitter
- 1.0
+ 14.2.2-SNAPSHOT
org.jlab.clas
swim-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
junit
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/HitReader.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/HitReader.java
index 6fca3cdab2..e9e88f56b8 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/HitReader.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/HitReader.java
@@ -148,11 +148,11 @@ private int getDCRBJitter(int sector, int layer, int wire, int order) {
if(dcrbjitters!=null && reverseTT!=null) {
long hash = IndexedTable.DEFAULT_GENERATOR.hashCode(sector, layer, wire, order);
if(!reverseTT.hasEntryByHash(hash))
- LOGGER.log(Level.SEVERE, "Missing TT entry for slco = " + sector + " " + layer + " " + wire + " " + order);
+ LOGGER.log(Level.SEVERE, () -> "Missing TT entry for slco = " + sector + " " + layer + " " + wire + " " + order);
int crate = reverseTT.getIntValueByHash("crate", hash);
int slot = reverseTT.getIntValueByHash("slot", hash);
if(!dcrbjitters.hasEntry(crate, slot))
- LOGGER.log(Level.SEVERE, "Missing DC::jitter entry for crate/slot = " + crate + "/" + slot);
+ LOGGER.log(Level.SEVERE, () -> "Missing DC::jitter entry for crate/slot = " + crate + "/" + slot);
jitter = dcrbjitters.getIntValue("jitter", crate, slot);
}
return jitter;
@@ -315,7 +315,7 @@ private void read_HBHits(TimeToDistanceEstimator tde) {
String pointName = bankNames.getInputIdsBank();
String recBankName = bankNames.getRecEventBank();
- LOGGER.log(Level.FINEST,"Reading hb banks for "+ bankName + ", " + pointName + " " + recBankName);
+ LOGGER.log(Level.FINEST, () -> "Reading hb banks for "+ bankName + ", " + pointName + " " + recBankName);
_HBHits = new ArrayList<>();
@@ -439,7 +439,7 @@ private void read_HBHits(TimeToDistanceEstimator tde) {
//if(hit.betaFlag == 0)
if(passHit(hit.betaFlag)) {
this._HBHits.add(hit);
- LOGGER.log(Level.FINEST, "Passing "+hit.printInfo()+" for "+ bankNames.getHitsBank());
+ LOGGER.log(Level.FINEST, () -> "Passing "+hit.printInfo()+" for "+ bankNames.getHitsBank());
}
}
}
@@ -512,7 +512,7 @@ private void read_NNHits() {
hit.NNTrkP = this.aimatch.get(clusterID)[0];
hit.NNTrkTheta = this.aimatch.get(clusterID)[1];
hit.NNTrkPhi = this.aimatch.get(clusterID)[2];
- LOGGER.log(Level.FINEST, "NN"+hit.printInfo());
+ LOGGER.log(Level.FINEST, () -> "NN"+hit.printInfo());
this._DCHits.add(hit);
}
}
@@ -613,6 +613,7 @@ private void setToPionHypothesis(DataEvent event, int trkId, FittedHit hit) {
bank.getShort("pindex", i));
pz = event.getBank(partBankName).getFloat("pz",
bank.getShort("pindex", i));
+ break;
}
}
@@ -640,6 +641,7 @@ private double readBeta(DataEvent event, int trkId) {
bank.getShort("index", i) == trkId - 1) {
_beta = event.getBank(partBankName).getFloat("beta",
bank.getShort("pindex", i));
+ break;
}
}
//if(_beta>1.0)
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/RecoBankWriter.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/RecoBankWriter.java
index d018dd3c8d..a542d0dfed 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/RecoBankWriter.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/banks/RecoBankWriter.java
@@ -13,7 +13,7 @@
import org.jlab.rec.dc.segment.Segment;
import org.jlab.rec.dc.track.Track;
-import trackfitter.fitter.utilities.*;
+import org.jlab.clas.tracking.utilities.ProbChi2perNDF;
/**
* A class to fill the reconstructed DC banks
@@ -36,8 +36,8 @@ public RecoBankWriter(Banks names) {
public void updateListsWithClusterInfo(List fhits,
List clusters) {
- ArrayList rmHits = new ArrayList();
- ArrayList addHits = new ArrayList();
+ List rmHits = new ArrayList<>();
+ List addHits = new ArrayList<>();
for (int i = 0; i < clusters.size(); i++) {
clusters.get(i).set_Id(i + 1);
for (int j = 0; j < clusters.get(i).size(); j++) {
@@ -204,8 +204,6 @@ public DataBank fillHBClustersBank(DataEvent event, List cluslist
DataBank bank = event.createBank(name, cluslist.size());
int[] hitIdxArray = new int[12];
- if(cluslist==null)
- return bank;
for (int i = 0; i < cluslist.size(); i++) {
if (cluslist.get(i) == null || cluslist.get(i).get_Id() == -1) {
continue;
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFinder.java
index 9887337d42..593db28aea 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFinder.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cluster/ClusterFinder.java
@@ -41,7 +41,6 @@ public class ClusterFinder {
public ClusterFinder() {
}
- private static final Logger LOGGER = Logger.getLogger(ClusterFinder.class.getName());
// cluster finding algorithm
// the loop is done over sector and superlayers
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/Cross.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/Cross.java
index 7cf6263e99..5349aaefb8 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/Cross.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/Cross.java
@@ -407,9 +407,8 @@ public void set_CrossDirIntersSegWires() {
double val_it1 = this._seg1.get_fittedCluster().get_clusterLineFitIntercept();
double val_it2 = this._seg2.get_fittedCluster().get_clusterLineFitIntercept();
- LOGGER.log(Level.FINEST, this._seg1.printInfo()+this._seg2.printInfo()+" insterWire: seg1 "+new Point3D(val_sl1, val_it1,999).toString()+
- " seg2 "+new Point3D(val_sl2, val_it2,999).toString()
- );
+ LOGGER.log(Level.FINEST, () -> this._seg1.printInfo()+this._seg2.printInfo()+" insterWire: seg1 "+new Point3D(val_sl1, val_it1,999).toString()+
+ " seg2 "+new Point3D(val_sl2, val_it2,999).toString());
for(int i =0; i " .....insterWire: seg1 "+new Point3D(val_sl1, val_it1,z).toString()+
+ " seg2 "+new Point3D(val_sl2, val_it2,z).toString());
double x = 0.5 * (val_it1 + val_it2) + 0.5 * z * (val_sl1 + val_sl2);
double y = 0.5 * wy_over_wx * (val_it2 - val_it1) + 0.5 * wy_over_wx * z * (val_sl2 - val_sl1);
if(hit.getCrossDirIntersWire()!=null && hit.getCrossDirIntersWire().x()!=x)
- LOGGER.log(Level.FINEST, "Already exists "+hit.getCrossDirIntersWire().toString()+" for "
- +hit.printInfo() +"new "+new Point3D(x,y,z).toString());
+ LOGGER.log(Level.FINEST, () -> "Already exists "+hit.getCrossDirIntersWire().toString()+" for "
+ +hit.printInfo() +"new "+new Point3D(x,y,z).toString());
hit.setCrossDirIntersWire(new Point3D(x,y,z));
}
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/CrossListFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/CrossListFinder.java
index 5399b2dadb..968139284b 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/CrossListFinder.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/cross/CrossListFinder.java
@@ -15,7 +15,7 @@
import org.jlab.rec.dc.segment.Segment;
import org.jlab.rec.dc.timetodistance.TimeToDistanceEstimator;
import org.jlab.utils.groups.IndexedTable;
-import trackfitter.fitter.LineFitter;
+import org.jlab.rec.dc.track.fit.basefit.LineFitter;
/**
* A class with methods used to find lists of crosses. This is the Pattern Recognition step used in track seeding, to
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/hit/FittedHit.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/hit/FittedHit.java
index 08c35c3422..c9dec90771 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/hit/FittedHit.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/hit/FittedHit.java
@@ -1,7 +1,6 @@
package org.jlab.rec.dc.hit;
import eu.mihosoft.vrl.v3d.Vector3d;
-import org.jlab.clas.clas.math.FastMath;
import org.jlab.clas.swimtools.Swimmer;
import org.jlab.detector.geant4.v2.DCGeant4Factory;
import org.jlab.geom.prim.Line3D;
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/nn/PatternRec.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/nn/PatternRec.java
index bde2e522b5..8ba3813030 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/nn/PatternRec.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/nn/PatternRec.java
@@ -12,7 +12,6 @@
import org.jlab.rec.dc.Constants;
import org.jlab.rec.dc.cluster.Cluster;
import org.jlab.rec.dc.cluster.ClusterCleanerUtilities;
-import org.jlab.rec.dc.cluster.ClusterFinder;
import org.jlab.rec.dc.cluster.ClusterFitter;
import org.jlab.rec.dc.cluster.ClusterFitter.CoordSys;
import org.jlab.rec.dc.cluster.FittedCluster;
@@ -32,7 +31,6 @@ public class PatternRec {
private static final Logger LOGGER = Logger.getLogger(PatternRec.class.getName());
- private final ClusterFinder clf = new ClusterFinder();
private final ClusterCleanerUtilities ct = new ClusterCleanerUtilities();
private final ClusterFitter cf = new ClusterFitter();
private final CrossMaker crf = new CrossMaker();
@@ -114,7 +112,7 @@ public CrossList RecomposeCrossList(List clusters,
if(entry.getValue().size()==3)
crossList.add(entry.getValue());
for(Cross c : entry.getValue())
- LOGGER.log(Level.FINEST, "AI"+c.printInfo()+c.get_Segment1().printInfo()+c.get_Segment2().printInfo());
+ LOGGER.log(Level.FINEST, () -> "AI"+c.printInfo()+c.get_Segment1().printInfo()+c.get_Segment2().printInfo());
}
return crossList;
}
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/Segment.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/Segment.java
index 83f85af139..ea5124663f 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/Segment.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/Segment.java
@@ -2,12 +2,10 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.logging.Logger;
import org.jlab.detector.geant4.v2.DCGeant4Factory;
import org.jlab.geom.prim.Plane3D;
import org.jlab.geom.prim.Point3D;
import org.jlab.geom.prim.Vector3D;
-import org.jlab.clas.clas.math.FastMath;
import org.jlab.rec.dc.Constants;
import org.jlab.rec.dc.cluster.FittedCluster;
import org.jlab.rec.dc.hit.FittedHit;
@@ -23,8 +21,6 @@
public class Segment extends ArrayList implements Comparable,
Cloneable {
- private static final Logger LOGGER = Logger.getLogger(Segment.class.getName());
-
private static final long serialVersionUID = -997960312423538455L;
private FittedCluster _fittedCluster;
public boolean isOnTrack = false;
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/SegmentFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/SegmentFinder.java
index ddb8b3091e..8b3fb311c0 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/SegmentFinder.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/segment/SegmentFinder.java
@@ -2,7 +2,6 @@
import java.util.ArrayList;
import java.util.List;
-import org.jlab.clas.clas.math.FastMath;
import org.jlab.detector.geant4.v2.DCGeant4Factory;
import org.jlab.io.base.DataBank;
import org.jlab.io.base.DataEvent;
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/timetodistance/T2DFunctions.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/timetodistance/T2DFunctions.java
index 4892d5ceb8..f41c6026b6 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/timetodistance/T2DFunctions.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/timetodistance/T2DFunctions.java
@@ -1,8 +1,3 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
package org.jlab.rec.dc.timetodistance;
/**
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/timetodistance/TableLoader.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/timetodistance/TableLoader.java
index c73a539019..d21bd960c0 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/timetodistance/TableLoader.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/timetodistance/TableLoader.java
@@ -4,7 +4,6 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.logging.Logger;
import org.jlab.detector.base.DetectorType;
import org.jlab.detector.base.GeometryFactory;
import org.jlab.geom.base.ConstantProvider;
@@ -23,8 +22,6 @@ public class TableLoader {
public TableLoader() {
}
- public static final Logger LOGGER = Logger.getLogger(TableLoader.class.getName());
-
private static boolean T2DLOADED = false;
public static final int NBINST=2000;
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/timetodistance/TimeToDistanceEstimator.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/timetodistance/TimeToDistanceEstimator.java
index 998541d165..3c249a38dd 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/timetodistance/TimeToDistanceEstimator.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/timetodistance/TimeToDistanceEstimator.java
@@ -1,7 +1,5 @@
package org.jlab.rec.dc.timetodistance;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import org.jlab.rec.dc.Constants;
import static org.jlab.rec.dc.timetodistance.TableLoader.BfieldValues;
import static org.jlab.rec.dc.timetodistance.TableLoader.calc_Time;
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/Track.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/Track.java
index 3b1023a0d1..df01cefe4f 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/Track.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/Track.java
@@ -58,8 +58,6 @@ public void setFinalStateVec(StateVec finalStateVec) {
private double _totPathLen;
private Point3D _trakOrig;
private Vector3D _pOrig;
- private Point3D _Vtx0_TiltedCS;
- private Vector3D _pAtOrig_TiltedCS;
private String _trking;
private int _FitNDF;
private double _NDFDAF;
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackCandListFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackCandListFinder.java
index b643cfccc7..f90b26236a 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackCandListFinder.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackCandListFinder.java
@@ -8,7 +8,6 @@
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
-import org.jlab.clas.clas.math.FastMath;
import org.jlab.clas.swimtools.Swim;
import org.jlab.detector.geant4.v2.DCGeant4Factory;
import org.jlab.geom.prim.Line3D;
@@ -24,8 +23,8 @@
import org.jlab.rec.dc.trajectory.Trajectory;
import org.jlab.rec.dc.trajectory.TrajectoryFinder;
-import trackfitter.fitter.LineFitPars;
-import trackfitter.fitter.LineFitter;
+import org.jlab.rec.dc.track.fit.basefit.LineFitter;
+import org.jlab.rec.dc.track.fit.basefit.LineFitPars;
import org.jlab.clas.tracking.kalmanfilter.Surface;
import org.jlab.clas.tracking.kalmanfilter.zReference.KFitter;
@@ -47,7 +46,7 @@ public class TrackCandListFinder {
private static final Logger LOGGER = Logger.getLogger(TrackCandListFinder.class.getName());
- long startTime, startTime2 = 0;
+ long startTime;
/**
* the tracking status = HitBased or TimeBased
@@ -95,47 +94,47 @@ private boolean PassNSuperlayerTracking(List crossesInTrk, Track cand) {
return pass;
}
- private double getHitBasedFitChi2ToCrosses(int sector, double x1, double y1, double z1,
- double x2, double y2, double z2, double x3,
- double y3, double z3, double p, int q, double x,
- double y, double z, double tanThX, double tanThY, Swim dcSwim) {
- double pz = p / Math.sqrt(tanThX * tanThX + tanThY * tanThY + 1);
-
- dcSwim.SetSwimParameters(x, y, z,
- -pz * tanThX, -pz * tanThY, -pz,
- -q);
- double chi2 = 0; // assume err =1 on points
- double[] R = dcSwim.SwimToPlaneTiltSecSys(sector, z3);
- if (R == null) {
- return Double.POSITIVE_INFINITY;
- }
-
- //chi2 += (R[0] - x3) * (R[0] - x3) + (R[1] - y3) * (R[1] - y3);
- chi2 += (Math.sqrt(R[0] * R[0] + R[1] * R[1]) - Math.sqrt(x3 * x3 + y3 * y3)) * (Math.sqrt(R[0] * R[0] + R[1] * R[1]) - Math.sqrt(x3 * x3 + y3 * y3));
- dcSwim.SetSwimParameters(R[0], R[1], R[2],
- R[3], R[4], R[5],
- -q);
- R = dcSwim.SwimToPlaneTiltSecSys(sector, z2);
- if (R == null) {
- return Double.POSITIVE_INFINITY;
- }
-
- dcSwim.SetSwimParameters(R[0], R[1], R[2],
- R[3], R[4], R[5],
- -q);
- chi2 += (R[0] - x2) * (R[0] - x2) + (R[1] - y2) * (R[1] - y2);
- dcSwim.SetSwimParameters(R[0], R[1], R[2],
- R[3], R[4], R[5],
- -q);
- R = dcSwim.SwimToPlaneTiltSecSys(sector, z1);
- if (R == null) {
- return Double.POSITIVE_INFINITY;
- }
-
- chi2 += (R[0] - x1) * (R[0] - x1) + (R[1] - y1) * (R[1] - y1);
-
- return chi2;
- }
+ // private double getHitBasedFitChi2ToCrosses(int sector, double x1, double y1, double z1,
+ // double x2, double y2, double z2, double x3,
+ // double y3, double z3, double p, int q, double x,
+ // double y, double z, double tanThX, double tanThY, Swim dcSwim) {
+ // double pz = p / Math.sqrt(tanThX * tanThX + tanThY * tanThY + 1);
+ //
+ // dcSwim.SetSwimParameters(x, y, z,
+ // -pz * tanThX, -pz * tanThY, -pz,
+ // -q);
+ // double chi2 = 0; // assume err =1 on points
+ // double[] R = dcSwim.SwimToPlaneTiltSecSys(sector, z3);
+ // if (R == null) {
+ // return Double.POSITIVE_INFINITY;
+ // }
+ //
+ // //chi2 += (R[0] - x3) * (R[0] - x3) + (R[1] - y3) * (R[1] - y3);
+ // chi2 += (Math.sqrt(R[0] * R[0] + R[1] * R[1]) - Math.sqrt(x3 * x3 + y3 * y3)) * (Math.sqrt(R[0] * R[0] + R[1] * R[1]) - Math.sqrt(x3 * x3 + y3 * y3));
+ // dcSwim.SetSwimParameters(R[0], R[1], R[2],
+ // R[3], R[4], R[5],
+ // -q);
+ // R = dcSwim.SwimToPlaneTiltSecSys(sector, z2);
+ // if (R == null) {
+ // return Double.POSITIVE_INFINITY;
+ // }
+ //
+ // dcSwim.SetSwimParameters(R[0], R[1], R[2],
+ // R[3], R[4], R[5],
+ // -q);
+ // chi2 += (R[0] - x2) * (R[0] - x2) + (R[1] - y2) * (R[1] - y2);
+ // dcSwim.SetSwimParameters(R[0], R[1], R[2],
+ // R[3], R[4], R[5],
+ // -q);
+ // R = dcSwim.SwimToPlaneTiltSecSys(sector, z1);
+ // if (R == null) {
+ // return Double.POSITIVE_INFINITY;
+ // }
+ //
+ // chi2 += (R[0] - x1) * (R[0] - x1) + (R[1] - y1) * (R[1] - y1);
+ //
+ // return chi2;
+ // }
/*
** a: parameter a for fitting function f(x) = a*z^2 + b*z + c in xz plane
@@ -208,7 +207,7 @@ private int calcInitTrkQ(double a, double TORSCALE) {
}
public List getTrackCandsAI(CrossList crossList, DCGeant4Factory DcDetector, Swim dcSwim, HBTrackStateEstimator hbTSEstimator){
- List cands = new ArrayList();
+ List cands = new ArrayList<>();
for (List aCrossList : crossList) {
Track cand = new Track();
@@ -260,7 +259,6 @@ public List getTrackCandsAI(CrossList crossList, DCGeant4Factory DcDetect
rk.SwimToZ(sector, initSV, dcSwim, measSurfaces.get(0).wireLine[0].end().z(), new float[3]);
KFitter kFZRef = new KFitter(true, 1, 1, dcSwim, Constants.getInstance().Z, Libr.JNP);
- Matrix initCMatrix = new Matrix();
initSV.CM = new Matrix();
kFZRef.init(measSurfaces, initSV);
@@ -319,13 +317,11 @@ public List getTrackCandsAI(CrossList crossList, DCGeant4Factory DcDetect
*/
public List getTrackCands(CrossList crossList, DCGeant4Factory DcDetector, double TORSCALE, Swim dcSwim,
boolean donotapplyCuts) {
- List cands = null;
if (Math.abs(TORSCALE) < 0.001) {
- cands = this.findStraightTracks(crossList, DcDetector, TORSCALE, dcSwim);
+ return this.findStraightTracks(crossList, DcDetector, TORSCALE, dcSwim);
} else {
- cands = this.findCurvedTracks(crossList, DcDetector, TORSCALE, dcSwim, donotapplyCuts);
+ return this.findCurvedTracks(crossList, DcDetector, TORSCALE, dcSwim, donotapplyCuts);
}
- return cands;
}
/**
@@ -375,13 +371,10 @@ private void getStraightTrack(Track cand) {
FitPars2 = linefit.getFit();
}
- double X0 = -99999;
- double Y0 = -99999;
-
if (FitPars1 != null && FitPars2 != null) {
- X0 = FitPars1.intercept();
- Y0 = FitPars2.intercept();
+ double X0 = FitPars1.intercept();
+ double Y0 = FitPars2.intercept();
Point3D trkR1X = new Point3D(FitPars1.slope() * x[0] + FitPars1.intercept(),
FitPars2.slope() * x[0] + FitPars2.intercept(), x[0]);
Point3D trkR3X = new Point3D(FitPars1.slope() * x[2] + FitPars1.intercept(),
@@ -411,30 +404,6 @@ private void getStraightTrack(Track cand) {
}
}
- /**
- * @param x x coordinate in the lab frame
- * @param y y coordinate in the lab frame
- * @return the sector in the DC lab frame system corresponding to the (x,y)
- * coordinates
- */
- private int getSector(double x, double y) {
- double phi = Math.toDegrees(FastMath.atan2(y, x));
- double ang = phi + 30;
- while (ang < 0) {
- ang += 360;
- }
- int sector = 1 + (int) (ang / 60.);
-
- if (sector == 7) {
- sector = 6;
- }
-
- if ((sector < 1) || (sector > 6)) {
- System.err.println("Track sector not found....");
- }
- return sector;
- }
-
/**
* @param cand the track candidate
* @param traj the track trajectory
@@ -534,24 +503,6 @@ public void setTrackPars(Track cand,
return;
}
- int status = 99999;
-
- int LR = 0;
- for (Cross crs : cand) {
- Segment s1 = crs.get_Segment1();
- Segment s2 = crs.get_Segment2();
-
- for (FittedHit h : s1) {
- LR += h._lr;
- }
- for (FittedHit h : s2) {
- LR += h._lr;
- }
-
- }
-
- status = LR;
-
double xOrFix = Vt[0];
double yOrFix = Vt[1];
double zOrFix = Vt[2];
@@ -724,9 +675,9 @@ private Integer getKey(Track trk) {
public void removeOverlappingTracksOld(List trkcands) {
if(Constants.DEBUG) {
- LOGGER.log(Level.FINEST, "Found "+trkcands.size()+" HB seeds ");
+ LOGGER.log(Level.FINEST, () -> "Found "+trkcands.size()+" HB seeds ");
for(int i = 0; i< trkcands.size(); i++) {
- LOGGER.log(Level.FINEST, "cand "+i);
+ LOGGER.log(Level.FINEST, "cand {0}", i);
for(Cross c : trkcands.get(i)) {
LOGGER.log(Level.FINEST, c.printInfo());
}
@@ -752,9 +703,9 @@ public void removeOverlappingTracksOld(List trkcands) {
trkcands.add(entry.getValue());
});
if(Constants.DEBUG) {
- LOGGER.log(Level.FINEST, "After Overlap Remvr "+trkcands.size()+" HB seeds ");
+ LOGGER.log(Level.FINEST, () -> "After Overlap Remvr "+trkcands.size()+" HB seeds ");
for(int i = 0; i< trkcands.size(); i++) {
- LOGGER.log(Level.FINEST, "cand "+i);
+ LOGGER.log(Level.FINEST, "cand {0}", i);
for(Cross c : trkcands.get(i)) {
LOGGER.log(Level.FINEST, c.printInfo());
}
@@ -765,9 +716,9 @@ public void removeOverlappingTracksOld(List trkcands) {
public void removeOverlappingTracks(List trkcands) {
if(Constants.DEBUG) {
- LOGGER.log(Level.FINEST, "Found "+trkcands.size()+" HB seeds ");
+ LOGGER.log(Level.FINEST, () -> "Found "+trkcands.size()+" HB seeds ");
for(int i = 0; i< trkcands.size(); i++) {
- LOGGER.log(Level.FINEST, "cand "+i);
+ LOGGER.log(Level.FINEST, "cand {0}", i);
for(Cross c : trkcands.get(i)) {
LOGGER.log(Level.FINEST, c.printInfo());
}
@@ -800,24 +751,6 @@ else if(t1.get_FitChi2()/t1.get_FitNDF()==t2.get_FitChi2()/t2.get_FitNDF() && i>
trkcands.addAll(selectedTracks);
}
- /**
- * @param selectedTracks the list of selected tracks
- * @param selectedTrk the selected track
- * @return a boolean indicating if the track is in the list
- */
- private boolean ListContainsTrack(List selectedTracks, Track selectedTrk) {
- boolean isInList = false;
- for (Track trk : selectedTracks) {
- if (trk == null) {
- continue;
- }
- if (trk.get_Id() == selectedTrk.get_Id()) {
- isInList = true;
- }
- }
- return isInList;
- }
-
/**
* @param track the track
* @param trkcands the list of candidates
@@ -928,38 +861,34 @@ public void setHitDoubletsInfo(Segment seg) {
}
}
- private double calcCurvSign(Track cand) {
- double P0x = cand.get(0).get_Point().z();
- double P1x = cand.get(1).get_Point().z();
- double P2x = cand.get(2).get_Point().z();
- double P0y = cand.get(0).get_Point().x();
- double P1y = cand.get(1).get_Point().x();
- double P2y = cand.get(2).get_Point().x();
-
- if (Math.abs(P1x - P0x) < 1.0e-18 || Math.abs(P2x - P1x) < 1.0e-18) {
- return 0.0;
- }
-
- // Find the intersection of the lines joining the innermost to middle and middle to outermost point
- double ma = (P1y - P0y) / (P1x - P0x);
- double mb = (P2y - P1y) / (P2x - P1x);
-
- if (Math.abs(mb - ma) < 1.0e-18) {
- return 0.0;
- }
-
- double xcen = 0.5 * (ma * mb * (P0y - P2y) + mb * (P0x + P1x) - ma * (P1x + P2x)) / (mb - ma);
- double ycen = (-1. / mb) * (xcen - 0.5 * (P1x + P2x)) + 0.5 * (P1y + P2y);
-
- return Math.signum(ycen);
- }
+ // private double calcCurvSign(Track cand) {
+ // double P0x = cand.get(0).get_Point().z();
+ // double P1x = cand.get(1).get_Point().z();
+ // double P2x = cand.get(2).get_Point().z();
+ // double P0y = cand.get(0).get_Point().x();
+ // double P1y = cand.get(1).get_Point().x();
+ // double P2y = cand.get(2).get_Point().x();
+ //
+ // if (Math.abs(P1x - P0x) < 1.0e-18 || Math.abs(P2x - P1x) < 1.0e-18) {
+ // return 0.0;
+ // }
+ //
+ // // Find the intersection of the lines joining the innermost to middle and middle to outermost point
+ // double ma = (P1y - P0y) / (P1x - P0x);
+ // double mb = (P2y - P1y) / (P2x - P1x);
+ //
+ // if (Math.abs(mb - ma) < 1.0e-18) {
+ // return 0.0;
+ // }
+ //
+ // double xcen = 0.5 * (ma * mb * (P0y - P2y) + mb * (P0x + P1x) - ma * (P1x + P2x)) / (mb - ma);
+ // double ycen = (-1. / mb) * (xcen - 0.5 * (P1x + P2x)) + 0.5 * (P1y + P2y);
+ //
+ // return Math.signum(ycen);
+ // }
private List findStraightTracks(CrossList crossList, DCGeant4Factory DcDetector, double TORSCALE, Swim dcSwim) {
- if(LOGGER.getLevel()==Level.FINEST) {
- startTime2 = System.currentTimeMillis();
- }
-
List cands = new ArrayList<>();
if (crossList.isEmpty()) {
return cands;
@@ -974,7 +903,7 @@ private List findStraightTracks(CrossList crossList, DCGeant4Factory DcDe
startTime = System.currentTimeMillis();
}
Trajectory traj = trjFind.findTrajectory(aCrossList, DcDetector, dcSwim);
- LOGGER.log(Level.FINEST, "Trajectory finding = " + (System.currentTimeMillis() - startTime));
+ LOGGER.log(Level.FINEST, () -> "Trajectory finding = " + (System.currentTimeMillis() - startTime));
if (traj == null) {
@@ -996,7 +925,7 @@ private List findStraightTracks(CrossList crossList, DCGeant4Factory DcDe
cand.get(0).get_Dir().y() / cand.get(0).get_Dir().z());
cand.set_StateVecAtReg1MiddlePlane(VecAtReg1MiddlePlane);
- LOGGER.log(Level.FINEST, "Kalman fitter - 2 = " + (System.currentTimeMillis() - startTime));
+ LOGGER.log(Level.FINEST, () -> "Kalman fitter - 2 = " + (System.currentTimeMillis() - startTime));
KFitterStraight kFZRef = new KFitterStraight(true, 1, 1, dcSwim, Constants.getInstance().Z, Libr.JNP);
List measSurfaces = getMeasSurfaces(cand, DcDetector);
@@ -1051,11 +980,6 @@ private List findStraightTracks(CrossList crossList, DCGeant4Factory DcDe
private List findCurvedTracks(CrossList crossList, DCGeant4Factory DcDetector, double TORSCALE, Swim dcSwim,
boolean donotapplyCuts) {
-
- if(LOGGER.getLevel()==Level.FINEST) {
- startTime2 = System.currentTimeMillis();
- }
-
List cands = new ArrayList<>();
if (crossList.isEmpty()) {
return cands;
@@ -1075,7 +999,7 @@ private List findCurvedTracks(CrossList crossList, DCGeant4Factory DcDete
}
Trajectory traj = trjFind.findTrajectory(aCrossList, DcDetector, dcSwim);
- LOGGER.log(Level.FINEST, "Trajectory finding = " + (System.currentTimeMillis() - startTime));
+ LOGGER.log(Level.FINEST, () -> "Trajectory finding = " + (System.currentTimeMillis() - startTime));
if (traj == null) {
@@ -1143,7 +1067,7 @@ private List findCurvedTracks(CrossList crossList, DCGeant4Factory DcDete
}
int q = this.calcInitTrkQ(traj.getA(), TORSCALE);
- LOGGER.log(Level.FINEST, "calcInitTrkQ = " + (System.currentTimeMillis() - startTime));
+ LOGGER.log(Level.FINEST, () -> "calcInitTrkQ = " + (System.currentTimeMillis() - startTime));
if (p > 11) {
p = 11;
@@ -1162,15 +1086,11 @@ private List findCurvedTracks(CrossList crossList, DCGeant4Factory DcDete
cand.get(0).get_Dir().y() / cand.get(0).get_Dir().z());
cand.set_StateVecAtReg1MiddlePlane(VecAtReg1MiddlePlane);
-
- StateVec fitStateVec = null;
// prefer to initialize the seed with region 2 cross due to higher background in region 1
- int crossIdxinList = 1;
- if (cand.get(1).isPseudoCross) {
- crossIdxinList = 0;
- }
+
+ final int crossIdxinList = cand.get(1).isPseudoCross ? 0 : 1;
- LOGGER.log(Level.FINEST, "Kalman fitter - 2 = " + (System.currentTimeMillis() - startTime));
+ LOGGER.log(Level.FINEST, () -> "Kalman fitter - 2 = " + (System.currentTimeMillis() - startTime));
KFitter kFZRef = new KFitter(true, 10, 1, dcSwim, Constants.getInstance().Z, Libr.JNP);
List measSurfaces = getMeasSurfaces(cand, DcDetector);
@@ -1181,12 +1101,10 @@ private List findCurvedTracks(CrossList crossList, DCGeant4Factory DcDete
kFZRef.runFitter();
- if (kFZRef.finalStateVec == null) {
- continue;
- } else {
+ if (kFZRef.finalStateVec != null) {
if (kFZRef.chi2 < Constants.MAXCHI2) {
- fitStateVec = new StateVec(kFZRef.finalStateVec.x,
+ StateVec fitStateVec = new StateVec(kFZRef.finalStateVec.x,
kFZRef.finalStateVec.y, kFZRef.finalStateVec.tx, kFZRef.finalStateVec.ty);
q = (int) Math.signum(kFZRef.finalStateVec.Q);
p = 1. / Math.abs(kFZRef.finalStateVec.Q);
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackListFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackListFinder.java
deleted file mode 100644
index a4c76843ed..0000000000
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/TrackListFinder.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.jlab.rec.dc.track;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-/**
- * This class selects the best track candidate if there are multiple candidates
- * TODO
- * @author ziegler
- *
- */
-public class TrackListFinder {
-
- public TrackListFinder() {
- // TODO Auto-generated constructor stub
- }
-
- public List getTracks(List cands) {
- List tracks = new ArrayList<>();
- if(cands.isEmpty()) {
- System.err.print("Error no tracks found");
- return cands;
- }
- int index = 0;
-
- for(Track trk : cands) {
-
- index++;
- }
- return tracks;
- }
-
-}
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/KFitterDoca.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/KFitterDoca.java
index dc93e2e965..93980b22ef 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/KFitterDoca.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/KFitterDoca.java
@@ -2,8 +2,6 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.logging.Logger;
-
import org.jlab.clas.swimtools.Swim;
import org.jlab.detector.geant4.v2.DCGeant4Factory;
import org.jlab.rec.dc.track.Track;
@@ -16,8 +14,6 @@
*/
public class KFitterDoca {
- private static final Logger LOGGER = Logger.getLogger(KFitterDoca.class.getName());
-
public boolean setFitFailed = false;
private StateVecsDoca sv;
@@ -29,10 +25,8 @@ public class KFitterDoca {
private CovMat initialCovMat;
public List kfStateVecsAlongTrajectory;
public int totNumIter = 30;
- private double newChisq = Double.POSITIVE_INFINITY;
public boolean filterOn = true;
public double chi2 = 0;
- private double chi2kf = 0;
public int NDF = 0;
public int ConvStatus = 1;
@@ -77,7 +71,6 @@ public final void init(Track trk, DCGeant4Factory DcDetector, int c) {
sv.init(trk, sv.Z[0], this, c);
}
public int interNum = 0;
- double initChi2 = Double.POSITIVE_INFINITY;
public void runFitter(int sector) {
this.chi2 = Double.POSITIVE_INFINITY;
double initChi2 = Double.POSITIVE_INFINITY;
@@ -85,7 +78,6 @@ public void runFitter(int sector) {
int svzLength = sv.Z.length;
if(TBT==true) {
- this.chi2kf = 0;
// Get the input parameters
for (int k = 0; k < svzLength - 1; k++) {
sv.transport(sector, k, k + 1,
@@ -106,7 +98,6 @@ public void runFitter(int sector) {
// IntStream.range(1,totNumIter ).parallel().forEach(i -> {
for (int i = 1; i <= totNumIter; i++) {
interNum = i;
- this.chi2kf = 0;
if (i > 1) {
//get new state vec at 1st measurement after propagating back from the last filtered state
@@ -226,7 +217,7 @@ public Matrix filterCovMat(double[] H, Matrix Ci, double V) {
return result_inv;
}
- private double KFScale = 4;
+ private final double KFScale = 4;
private void filter(int k) {
if(Double.isNaN(sv.trackTraj.get(k).x) || Double.isNaN(sv.trackTraj.get(k).y)
|| Double.isNaN(sv.trackTraj.get(k).tx) ||Double.isNaN(sv.trackTraj.get(k).ty )
@@ -274,8 +265,6 @@ private void filter(int k) {
}
//if(this.interNum>1)
// signMeas = Math.signum(h);
- double c2 = ((signMeas*Math.abs(mv.measurements.get(k).doca[0]) - sign*Math.abs(h))
- * (signMeas*Math.abs(mv.measurements.get(k).doca[0]) - sign*Math.abs(h)) / V);
//if(signMeas!=Math.signum(h) && this.interNum>1) LOGGER.log(Level.FINEST, sv.trackTraj.get(k).printInfo()+" h "+(float)h);
double x_filt = sv.trackTraj.get(k).x + K[0] * (signMeas*Math.abs(mv.measurements.get(k).doca[0]) - sign*Math.abs(h));
double y_filt = sv.trackTraj.get(k).y + K[1] * (signMeas*Math.abs(mv.measurements.get(k).doca[0]) - sign*Math.abs(h));
@@ -315,12 +304,8 @@ private void filter(int k) {
tx_filt += K[2] * (signMeas*Math.abs(mv.measurements.get(k).doca[1]) - sign*Math.abs(h));
ty_filt += K[3] * (signMeas*Math.abs(mv.measurements.get(k).doca[1]) - sign*Math.abs(h));
Q_filt += K[4] * (signMeas*Math.abs(mv.measurements.get(k).doca[1]) - sign*Math.abs(h));
-
- c2 += ((signMeas*Math.abs(mv.measurements.get(k).doca[1]) - sign*Math.abs(h))
- * (signMeas*Math.abs(mv.measurements.get(k).doca[1]) - sign*Math.abs(h)) / V);
}
- chi2kf += c2;
if(filterOn) {
sv.trackTraj.get(k).x = x_filt;
sv.trackTraj.get(k).y = y_filt;
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/MeasVecsDoca.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/MeasVecsDoca.java
index 59e3388e1c..c7e253fe7d 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/MeasVecsDoca.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/MeasVecsDoca.java
@@ -3,7 +3,6 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.logging.Logger;
import org.jlab.detector.geant4.v2.DCGeant4Factory;
import org.jlab.geom.prim.Line3D;
import org.jlab.geom.prim.Point3D;
@@ -13,9 +12,7 @@
public class MeasVecsDoca {
- private static final Logger LOGGER = Logger.getLogger(MeasVecsDoca.class.getName());
-
- public List measurements = new ArrayList();
+ public List measurements = new ArrayList<>();
public int ndf=0;
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/RungeKuttaDoca.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/RungeKuttaDoca.java
index e7c2a273c0..56121f8e0a 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/RungeKuttaDoca.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/RungeKuttaDoca.java
@@ -1,6 +1,5 @@
package org.jlab.rec.dc.track.fit;
-import java.util.ArrayList;
import org.jlab.jnp.matrix.*;
import org.jlab.clas.swimtools.Swim;
@@ -21,12 +20,11 @@ public void SwimToZ(int sector, StateVecsDoca.StateVec vec, Swim swim, double z0
swim.Bfield(sector, vec.x, vec.y, vec.z, bf);
vec.B = Math.sqrt(bf[0]*bf[0] + bf[1]*bf[1] + bf[2]*bf[2]);
- double s = vec.B;
final double travelSign = Math.signum(z0 - vec.z);
double BatMeas = 0;
while(travelSign * vec.z < travelSign * z0) {
- s = travelSign * stepSize;
+ double s = travelSign * stepSize;
if (travelSign*(vec.z+s) > travelSign*z0) s = travelSign*Math.abs(z0-vec.z);
this.RK4transport(sector, s, swim, vec);
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/StateVecsDoca.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/StateVecsDoca.java
index 27811e7f00..b3bf26cb30 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/StateVecsDoca.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/StateVecsDoca.java
@@ -3,8 +3,6 @@
import org.jlab.jnp.matrix.*;
import java.util.HashMap;
import java.util.Map;
-import java.util.logging.Logger;
-import org.jlab.clas.clas.math.FastMath;
import org.jlab.clas.pdg.PhysicsConstants;
import org.jlab.clas.swimtools.Swim;
import org.jlab.rec.dc.Constants;
@@ -16,15 +14,9 @@
*/
public class StateVecsDoca {
- private static final Logger LOGGER = Logger.getLogger(StateVecsDoca.class.getName());
-
- private final double Bmax = 2.366498; // averaged
-
- final double speedLight = 0.002997924580;
public double[] Z;
- // public List bfieldPoints = new ArrayList();
- public Map trackTraj = new HashMap();
- public Map trackCov = new HashMap();
+ public Map trackTraj = new HashMap<>();
+ public Map trackCov = new HashMap<>();
public StateVec StateVec;
@@ -32,12 +24,9 @@ public class StateVecsDoca {
public Matrix F = new Matrix();
private final Matrix fMS = new Matrix();
private final Matrix copyMatrix = new Matrix();
- private final double[] A = new double[2];
- private final double[] dA = new double[4];
private final float[] bf = new float[3];
- private final float[] lbf = new float[3];
- private Swim dcSwim;
- private RungeKuttaDoca rk;
+ private final Swim dcSwim;
+ private final RungeKuttaDoca rk;
/**
* State vector representing the track in the sector coordinate system at the measurement layer
@@ -73,23 +62,15 @@ public Matrix transport(int sector, int i, double Zf, StateVec iVec, CovMat covM
fVec.B = iVec.B;
//fCov.covMat = covMat.covMat;
Matrix5x5.copy(covMat.covMat, fCov.covMat);
- double s = 0;
double z = Z[i];
double BatMeas = iVec.B;
while(Math.signum(Zf - Z[i]) *zMath.signum(Zf - Z[i]) *Zf)
s=Math.signum(Zf - Z[i]) *Math.abs(Zf-z);
rk.RK4transport(sector, s, dcSwim, covMat, fVec, fCov);
@@ -162,25 +143,16 @@ public void transport(int sector, int i, int f, StateVec iVec, CovMat covMat) {
fVec.ty = iVec.ty;
fVec.Q = iVec.Q;
fVec.B = iVec.B;
- //fCov.covMat = covMat.covMat;
Matrix5x5.copy(covMat.covMat, fCov.covMat);
- double s = 0;
double z = Z[i];
double BatMeas = iVec.B;
while(Math.signum(Z[f] - Z[i]) *zMath.signum(Z[f] - Z[i]) *Z[f])
s=Math.signum(Z[f] - Z[i]) *Math.abs(Z[f]-z);
@@ -277,18 +249,9 @@ public void transportFixed(int sector, int i, int f, StateVec iVec, CovMat covMa
if (j == nSteps - 1) {
s = Math.signum(Z[f] - Z[i]) * Math.abs(z - Z[f]);
}
- //LOGGER.log(Level.FINEST, " RK step num "+(j+1)+" = "+(float)s+" nSteps = "+nSteps);
- double x = fVec.x;
- double y = fVec.y;
z = fVec.z;
- double tx = fVec.tx;
- double ty = fVec.ty;
- double Q = fVec.Q;
- double dPath = fVec.deltaPath;
covMat.covMat = fCov.covMat;
-
rk.RK4transport(sector, s, dcSwim, covMat, fVec, fCov);
-
}
this.trackTraj.put(f, fVec);
@@ -341,13 +304,8 @@ public void init(Track trkcand, double z0, KFitterDoca kf, int c) {
rk.SwimToZ(trkcand.get(0).get_Sector(), initSV, dcSwim, z0, bf);
- if (initSV != null) {
+ this.trackTraj.put(0, initSV);
- this.trackTraj.put(0, initSV);
- } else {
- kf.setFitFailed = true;
- return;
- }
//LOGGER.log(Level.FINEST, (0)+"] init "+this.trackTraj.get(0).x+","+this.trackTraj.get(0).y+","+
// this.trackTraj.get(0).z+","+this.trackTraj.get(0).tx+","+this.trackTraj.get(0).ty+" "+1/this.trackTraj.get(0).Q);
double err_sl1 = trkcand.get(0).get_Segment1().get_fittedCluster().get_clusterLineFitSlopeErr();
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/basefit/LineFitPars.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/basefit/LineFitPars.java
index 46d078eb01..d6414be29d 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/basefit/LineFitPars.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/basefit/LineFitPars.java
@@ -1,6 +1,6 @@
package org.jlab.rec.dc.track.fit.basefit;
-import trackfitter.fitter.utilities.ProbChi2perNDF;
+import org.jlab.clas.tracking.utilities.ProbChi2perNDF;
/**
* The fit parameters of a line fit returned by LineFitter
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/basefit/LineFitter.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/basefit/LineFitter.java
index 443db3eb7d..28f3aa6c40 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/basefit/LineFitter.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/track/fit/basefit/LineFitter.java
@@ -1,6 +1,5 @@
package org.jlab.rec.dc.track.fit.basefit;
-import java.util.ArrayList;
import java.util.List;
/** A least square fitting method
@@ -15,9 +14,9 @@ public class LineFitter {
// the constructor
public LineFitter() {
}
- private final List w = new ArrayList();
+
// fit status
- public boolean fitStatus(List x, List y, List sigma_x, List sigma_y, int nbpoints) {
+ public boolean fitStatus(double[] x, double[] y, double[] sigma_x, double[] sigma_y, int nbpoints) {
boolean fitStat = false;
if (nbpoints>=2) { // must have enough points to do the fit
@@ -25,22 +24,21 @@ public boolean fitStatus(List x, List y, List sigma_x, L
// initialize weight-sum and moments
double Sw, Sx, Sy, Sxx, Sxy;
Sw = Sx = Sy = Sxx = Sxy =0.;
+ double[] w = new double[nbpoints];
- w.clear();
- ((ArrayList) w).ensureCapacity(nbpoints);
for (int i = 0; i0
@@ -61,8 +59,8 @@ public boolean fitStatus(List x, List y, List sigma_x, L
double chi_2 = 0.;
double pointchi_2[] = new double[nbpoints]; //individual chi2 for each fitted point
for (int j = 0; j x, List y, List sigma_x, L
// if there is a fit return true
return fitStat;
}
+
+ // fit status (overload)
+ public boolean fitStatus(List x, List y, List sigma_x, List sigma_y, int nbpoints) {
+ return fitStatus(
+ x.stream().mapToDouble(Double::doubleValue).toArray(),
+ y.stream().mapToDouble(Double::doubleValue).toArray(),
+ sigma_x.stream().mapToDouble(Double::doubleValue).toArray(),
+ sigma_y.stream().mapToDouble(Double::doubleValue).toArray(),
+ nbpoints);
+ }
+
// return the fit result
public LineFitPars getFit() {
return _linefitresult;
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Surface.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Surface.java
index 542dab5405..474494a3bf 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Surface.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Surface.java
@@ -1,7 +1,6 @@
package org.jlab.rec.dc.trajectory;
import org.jlab.detector.base.DetectorType;
-import org.jlab.geom.prim.Arc3D;
import org.jlab.geom.prim.Line3D;
import org.jlab.geom.prim.Plane3D;
import org.jlab.geom.prim.Point3D;
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrackVec.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrackVec.java
index 656562eafa..149eb0c1d1 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrackVec.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrackVec.java
@@ -1,8 +1,8 @@
package org.jlab.rec.dc.trajectory;
import Jama.*;
-import org.jlab.clas.clas.math.FastMath;
import org.jlab.rec.dc.Constants;
+
/**
* Describes a track pars in the DC.
* @author ziegler
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Trajectory.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Trajectory.java
index ddb69ebf94..f2b82f3e9e 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Trajectory.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Trajectory.java
@@ -2,7 +2,6 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.logging.Logger;
import org.jlab.clas.swimtools.Swim;
import org.jlab.detector.base.DetectorType;
import org.jlab.geom.prim.Point3D;
@@ -23,8 +22,6 @@ public class Trajectory extends ArrayList {
public Trajectory() {
}
- private static final Logger LOGGER = Logger.getLogger(Trajectory.class.getName());
-
private int id;
private int sector;
private double integratedBdL;
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrajectoryFinder.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrajectoryFinder.java
index 9fa71474d4..c153425457 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrajectoryFinder.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrajectoryFinder.java
@@ -7,7 +7,7 @@
import org.jlab.geom.prim.Vector3D;
import org.jlab.rec.dc.Constants;
import org.jlab.rec.dc.cross.Cross;
-import trackfitter.fitter.LineFitter;
+import org.jlab.rec.dc.track.fit.basefit.LineFitter;
import Jama.Matrix;
/**
@@ -175,7 +175,7 @@ public void fitTrajectory(List candCrossList) {
}
lineFit = new LineFitter();
- boolean linefitstatusOK = lineFit.fitStatus(z, theta_x, new double[3], theta_x_err, 3);
+ lineFit.fitStatus(z, theta_x, new double[3], theta_x_err, 3);
TrajChisqProbFitXZ = lineFit.getFit().getProb();
x_fitCoeff = quadraticLRFit(z, x, x_err);
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrajectorySurfaces.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrajectorySurfaces.java
index 06241218dc..54decc9120 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrajectorySurfaces.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/TrajectorySurfaces.java
@@ -16,7 +16,6 @@
import org.jlab.rec.dc.Constants;
import java.io.PrintWriter;
-import java.util.logging.Logger;
import org.jlab.geom.detector.ec.ECLayer;
import org.jlab.geom.detector.ec.ECSuperlayer;
import org.jlab.geom.detector.fmt.FMTLayer;
@@ -33,8 +32,6 @@
*/
public class TrajectorySurfaces {
- public static Logger LOGGER = Logger.getLogger(TrajectorySurfaces.class.getName());
-
private List> detectorPlanes = new ArrayList<>();
public List> getDetectorPlanes() {
@@ -62,9 +59,8 @@ public void loadSurface(double targetPosition, double targetLength, DCGeant4Fact
Constants.getInstance().Z[11]= dcDetector.getWireMidpoint(0, 5, 0, 0).z;
Constants.getInstance().Z[12]= dcDetector.getWireMidpoint(0, 5, 5, 0).z;
//DcDetector.getWireMidpoint(this.get_Sector()-1, this.get_Superlayer()-1, this.get_Layer()-1, this.get_Wire()-1).z;
-
- double d = 0;
- Vector3D n,P;
+ Vector3D n;
+
for(int isector =0; isector<6; isector++) {
int sector = isector+1;
diff --git a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Vertex.java b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Vertex.java
index 3d862eec1a..1f3e89883b 100644
--- a/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Vertex.java
+++ b/reconstruction/dc/src/main/java/org/jlab/rec/dc/trajectory/Vertex.java
@@ -1,7 +1,6 @@
package org.jlab.rec.dc.trajectory;
import java.util.Random;
-//import org.apache.commons.math3.util.FastMath;
import org.jlab.clas.clas.math.FastMath;
import org.jlab.clas.swimtools.Swim;
import org.jlab.geom.prim.Line3D;
diff --git a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCEngine.java b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCEngine.java
index cd1eaddaf6..9e00490f75 100644
--- a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCEngine.java
+++ b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCEngine.java
@@ -12,7 +12,6 @@
import org.jlab.rec.dc.banks.Banks;
import org.jlab.clas.tracking.kalmanfilter.zReference.KFitter;
import org.jlab.clas.tracking.kalmanfilter.zReference.DAFilter;
-import org.jlab.rec.ai.dcHBTrackState.HBTrackStateEstimator;
public class DCEngine extends ReconstructionEngine {
@@ -218,7 +217,7 @@ private void initBanks() {
this.getBanks().init(outBankPrefix);
if(inBankPrefix!=null && outBankPrefix!=null)
this.getBanks().init(inBankPrefix, outBankPrefix);
- LOGGER.log(Level.INFO,"["+this.getName()+"] bank names set for " + this.getBanks().toString());
+ LOGGER.log(Level.INFO, () -> "["+this.getName()+"] bank names set for " + this.getBanks().toString());
}
public Banks getBanks() {
@@ -238,7 +237,7 @@ public int getRun(DataEvent event) {
return 0;
}
DataBank bank = event.getBank("RUN::config");
- LOGGER.log(Level.FINEST,"["+this.getName()+"] EVENT "+bank.getInt("event", 0));
+ LOGGER.log(Level.FINEST, () -> "["+this.getName()+"] EVENT "+bank.getInt("event", 0));
int run = bank.getInt("run", 0);
return run;
diff --git a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCHBPostClusterAI.java b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCHBPostClusterAI.java
index 75998a1325..4d5099e431 100644
--- a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCHBPostClusterAI.java
+++ b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCHBPostClusterAI.java
@@ -100,11 +100,11 @@ public boolean processDataEventUser(DataEvent event) {
CrossList crosslist = pr.RecomposeCrossList(segments, Constants.getInstance().dcDetector);
crosses = new ArrayList<>();
- LOGGER.log(Level.FINEST, "num cands = "+crosslist.size());
+ LOGGER.log(Level.FINEST, () -> "num cands = "+crosslist.size());
for (List clist : crosslist) {
crosses.addAll(clist);
for(Cross c : clist)
- LOGGER.log(Level.FINEST, "Pass Cross"+c.printInfo());
+ LOGGER.log(Level.FINEST, () -> "Pass Cross"+c.printInfo());
}
if (crosses.isEmpty()) {
for(Segment seg : segments) {
diff --git a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCHBPostClusterConv.java b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCHBPostClusterConv.java
index df442203c9..52acb25796 100644
--- a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCHBPostClusterConv.java
+++ b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCHBPostClusterConv.java
@@ -228,11 +228,11 @@ public boolean processDataEventUser(DataEvent event) {
trkcands.addAll(mistrkcands);
- LOGGER.log(Level.FINEST, "Found after 5STg "+mistrkcands.size()+" HB seeds ");
+ LOGGER.log(Level.FINEST, () -> "Found after 5STg "+mistrkcands.size()+" HB seeds ");
for(int i = 0; i< trkcands.size(); i++) {
- LOGGER.log(Level.FINEST, "cand "+i);
+ LOGGER.log(Level.FINEST, "cand {0}", i);
for(Cross c : trkcands.get(i)) {
- LOGGER.log(Level.FINEST, c.printInfo());
+ LOGGER.log(Level.FINEST, () -> c.printInfo());
}
LOGGER.log(Level.FINEST, "------------------------------------------------------------------ ");
}
diff --git a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCHBTrackingAI.java b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCHBTrackingAI.java
index 80651c3c42..38f4db4dfe 100644
--- a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCHBTrackingAI.java
+++ b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCHBTrackingAI.java
@@ -122,11 +122,11 @@ else if(Swimmer.getTorScale() > 0)
CrossList crosslist = pr.RecomposeCrossList(segments, Constants.getInstance().dcDetector);
crosses = new ArrayList<>();
- LOGGER.log(Level.FINEST, "num cands = "+crosslist.size());
+ LOGGER.log(Level.FINEST, () -> "num cands = "+crosslist.size());
for (List clist : crosslist) {
crosses.addAll(clist);
for(Cross c : clist)
- LOGGER.log(Level.FINEST, "Pass Cross"+c.printInfo());
+ LOGGER.log(Level.FINEST, () -> "Pass Cross"+c.printInfo());
}
if (crosses.isEmpty()) {
for(Segment seg : segments) {
diff --git a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCTBEngine.java b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCTBEngine.java
index a483d218e2..4bf0281c17 100644
--- a/reconstruction/dc/src/main/java/org/jlab/service/dc/DCTBEngine.java
+++ b/reconstruction/dc/src/main/java/org/jlab/service/dc/DCTBEngine.java
@@ -103,12 +103,10 @@ public boolean processDataEventUser(DataEvent event) {
ClusterCleanerUtilities ct = new ClusterCleanerUtilities();
List fhits = new ArrayList<>();
- List clusters = new ArrayList<>();
- List segments = new ArrayList<>();
List crosses = new ArrayList<>();
List trkcands = new ArrayList<>();
- LOGGER.log(Level.FINEST, "TB AI "+ this.getName());
+ LOGGER.log(Level.FINEST, () -> "TB AI "+ this.getName());
//instantiate bank writer
RecoBankWriter rbc = new RecoBankWriter(this.getBanks());
@@ -125,7 +123,7 @@ public boolean processDataEventUser(DataEvent event) {
//2) find the clusters from these hits
ClusterFinder clusFinder = new ClusterFinder();
- clusters = clusFinder.FindTimeBasedClusters(event, hits, cf, ct,
+ List clusters = clusFinder.FindTimeBasedClusters(event, hits, cf, ct,
this.getConstantsManager().getConstants(run, Constants.TIME2DIST), Constants.getInstance().dcDetector, tde);
for(FittedCluster c : clusters) {
c.set_Id(c.get(0).get_AssociatedClusterID());
@@ -140,7 +138,7 @@ public boolean processDataEventUser(DataEvent event) {
List pclusters = segFinder.selectTimeBasedSegments(clusters);
- segments = segFinder.get_Segments(pclusters, event, Constants.getInstance().dcDetector, false);
+ List segments = segFinder.get_Segments(pclusters, event, Constants.getInstance().dcDetector, false);
if(segments.isEmpty()) { // need 6 segments to make a trajectory
for(FittedCluster c : clusters) {
@@ -353,7 +351,7 @@ public boolean processDataEventUser(DataEvent event) {
//trk.set_Id(trkId);
trkcandFinder.matchHits(trk.getStateVecs(), trk, Constants.getInstance().dcDetector, dcSwim);
trk.calcTrajectory(trkId, dcSwim, trk.get_Vtx0(), trk.get_pAtOrig(), trk.get_Q());
- LOGGER.log(Level.FINEST, trk.toString());
+ LOGGER.log(Level.FINEST,() -> trk.toString());
for(Cross c : trk) {
c.set_CrossDirIntersSegWires();
@@ -596,7 +594,6 @@ public List getMeasSurfaces(Track trk, DCGeant4Factory DcDetector) {
double LR = Math.signum(trk.get_ListOfHBSegments().get(s).get(h).get_XWire()-trk.get_ListOfHBSegments().get(s).get(h).get_X());
hot._doca[0]*=-LR;
hot._hitError = trk.get_ListOfHBSegments().get(s).get(h).get_DocaErr()*trk.get_ListOfHBSegments().get(s).get(h).get_DocaErr();
- //LOGGER.log(Level.FINEST, " Z "+Z+" ferr "+(float)(hot._Unc /(hot._hitError/4.)));
hot._Unc[0] = hot._hitError;
hot.region = trk.get_ListOfHBSegments().get(s).get(h).get_Region();
hot.sector = trk.get_ListOfHBSegments().get(s).get(h).get_Sector();
@@ -693,11 +690,11 @@ private int get_Status(Track track) {
miss=l+1;
if(miss%2==0 && SegMap.containsKey(l)) { //missing sl in 2,4,6
track.setSingleSuperlayer(SegMap.get(l)); //isolated sl in 1,3,5
- LOGGER.log(Level.FINEST, "Missing superlayer "+miss+" seg "+SegMap.get(l).printInfo());
+ //LOGGER.log(Level.FINEST, "Missing superlayer {0} seg {1}", new Object[]{miss, SegMap.get(l).printInfo()});
}
else if(miss%2==1 && SegMap.containsKey(l+2)) { //missing sl in 1,3,5
track.setSingleSuperlayer(SegMap.get(l+2)); //isolated sl in 2,4,6
- LOGGER.log(Level.FINEST, "Missing superlayer "+miss+" seg "+track.getSingleSuperlayer().printInfo());
+ //LOGGER.log(Level.FINEST, "Missing superlayer {0} seg {1}", new Object[]{miss, track.getSingleSuperlayer().printInfo()});
}
}
}
diff --git a/reconstruction/eb/pom.xml b/reconstruction/eb/pom.xml
index fb99ad57a5..826d50e223 100644
--- a/reconstruction/eb/pom.xml
+++ b/reconstruction/eb/pom.xml
@@ -1,16 +1,16 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-eb
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -21,74 +21,74 @@
cnuphys
magfield
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
test
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-analysis
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
test
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
swim-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-dc
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-ec
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-tof
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-htcc
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-ltcc
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
junit
@@ -97,4 +97,4 @@
-
+
diff --git a/reconstruction/ec/pom.xml b/reconstruction/ec/pom.xml
index eafc525b3d..b6e1bad0b9 100644
--- a/reconstruction/ec/pom.xml
+++ b/reconstruction/ec/pom.xml
@@ -1,16 +1,16 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-ec
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -21,38 +21,38 @@
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-analysis
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
test
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
junit
@@ -60,4 +60,4 @@
-
+
diff --git a/reconstruction/fmt/pom.xml b/reconstruction/fmt/pom.xml
index 700b012fd6..a4aa362519 100644
--- a/reconstruction/fmt/pom.xml
+++ b/reconstruction/fmt/pom.xml
@@ -1,16 +1,16 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-fmt
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -21,37 +21,37 @@
org.jlab.clas
swim-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/reconstruction/ft/pom.xml b/reconstruction/ft/pom.xml
index e9c6649208..0cd4a0f0ff 100644
--- a/reconstruction/ft/pom.xml
+++ b/reconstruction/ft/pom.xml
@@ -1,16 +1,16 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-ft
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -21,32 +21,32 @@
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/reconstruction/htcc/pom.xml b/reconstruction/htcc/pom.xml
index 288552ff81..3188550cf6 100644
--- a/reconstruction/htcc/pom.xml
+++ b/reconstruction/htcc/pom.xml
@@ -4,35 +4,35 @@
org.jlab.clas12.detector
clas12detector-htcc
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/reconstruction/ltcc/pom.xml b/reconstruction/ltcc/pom.xml
index 7bbe1f3011..b7dcbbcf66 100644
--- a/reconstruction/ltcc/pom.xml
+++ b/reconstruction/ltcc/pom.xml
@@ -4,20 +4,16 @@
org.jlab.clas12.detector
clas12detector-ltcc
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
-
- jakarta.annotation
- jakarta.annotation-api
-
org.jlab
groot
@@ -25,27 +21,27 @@
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/reconstruction/ltcc/src/main/java/org/jlab/service/ltcc/LTCCCluster.java b/reconstruction/ltcc/src/main/java/org/jlab/service/ltcc/LTCCCluster.java
index f6a91e0bf3..1ccc7d5534 100644
--- a/reconstruction/ltcc/src/main/java/org/jlab/service/ltcc/LTCCCluster.java
+++ b/reconstruction/ltcc/src/main/java/org/jlab/service/ltcc/LTCCCluster.java
@@ -7,7 +7,6 @@
import org.jlab.io.base.DataBank;
import org.jlab.io.base.DataEvent;
-//import org.jMath.Vector.threeVec;
import java.util.List;
import java.util.ArrayList;
import org.jlab.geom.prim.Vector3D;
diff --git a/reconstruction/ltcc/src/main/java/org/jlab/service/ltcc/LTCCClusterCorrection.java b/reconstruction/ltcc/src/main/java/org/jlab/service/ltcc/LTCCClusterCorrection.java
index 086038d90d..59eebc1f8f 100644
--- a/reconstruction/ltcc/src/main/java/org/jlab/service/ltcc/LTCCClusterCorrection.java
+++ b/reconstruction/ltcc/src/main/java/org/jlab/service/ltcc/LTCCClusterCorrection.java
@@ -5,8 +5,6 @@
*/
package org.jlab.service.ltcc;
-//import org.jMath.Vector.threeVec;
-
import org.jlab.geom.prim.Vector3D;
@@ -27,13 +25,13 @@ public class LTCCClusterCorrection {
/*
* static member function calcPosition
* arguments:
- - threeVec clusterPos: estimated cluster position from the
+ - Vector3D clusterPos: estimated cluster position from the
reconstruction
- double p: track momentum
- int charge: track charge
- double torus: torus field setting
- double solenoid: solenoid field setting
- * returns (threeVec): a vector with a more accurate cluster position
+ * returns (Vector3D): a vector with a more accurate cluster position
*/
public static Vector3D calcPosition(Vector3D clusterPos, double p,
int charge, double torus, double solenoid) {
diff --git a/reconstruction/ltcc/src/main/java/org/jlab/service/ltcc/LTCCHit.java b/reconstruction/ltcc/src/main/java/org/jlab/service/ltcc/LTCCHit.java
index af0556a406..e7c152bd77 100644
--- a/reconstruction/ltcc/src/main/java/org/jlab/service/ltcc/LTCCHit.java
+++ b/reconstruction/ltcc/src/main/java/org/jlab/service/ltcc/LTCCHit.java
@@ -7,7 +7,6 @@
import java.util.LinkedList;
import java.util.List;
-import jakarta.annotation.Nullable;
import org.jlab.detector.banks.RawDataBank;
import org.jlab.geom.prim.Vector3D;
@@ -86,9 +85,9 @@ public static List loadHits(DataEvent event) {
LTCCHit(RawDataBank bank,
int index,
- @Nullable IndexedTable spe,
- @Nullable IndexedTable timing_offset,
- @Nullable IndexedTable status_table) {
+ IndexedTable spe,
+ IndexedTable timing_offset,
+ IndexedTable status_table) {
this.sector = bank.getByte("sector", index);
this.segment = bank.getShort("component", index);
this.side = bank.trueOrder(index) + 1;
diff --git a/reconstruction/mc/pom.xml b/reconstruction/mc/pom.xml
index 872c98daf7..4d09cbf610 100644
--- a/reconstruction/mc/pom.xml
+++ b/reconstruction/mc/pom.xml
@@ -1,38 +1,38 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-mc
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/reconstruction/mltn/pom.xml b/reconstruction/mltn/pom.xml
index 1de62110c9..671df16992 100644
--- a/reconstruction/mltn/pom.xml
+++ b/reconstruction/mltn/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas12.detector
clas12detector-mltn
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -38,13 +38,13 @@
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/reconstruction/mu/pom.xml b/reconstruction/mu/pom.xml
index 58f29085fb..a3cf4a5710 100644
--- a/reconstruction/mu/pom.xml
+++ b/reconstruction/mu/pom.xml
@@ -1,16 +1,16 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-mu
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -25,42 +25,42 @@
org.jlab.clas
swim-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-jcsg
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml
index 38436578e2..9e5c9c69ae 100644
--- a/reconstruction/pom.xml
+++ b/reconstruction/pom.xml
@@ -4,13 +4,13 @@
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
pom
org.jlab.clas
coatjava
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/reconstruction/raster/pom.xml b/reconstruction/raster/pom.xml
index b9795cbcaa..150f4fa472 100644
--- a/reconstruction/raster/pom.xml
+++ b/reconstruction/raster/pom.xml
@@ -1,16 +1,16 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-raster
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -21,23 +21,23 @@
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
-
+
diff --git a/reconstruction/recoil/pom.xml b/reconstruction/recoil/pom.xml
index 998ef3513a..d09f918957 100644
--- a/reconstruction/recoil/pom.xml
+++ b/reconstruction/recoil/pom.xml
@@ -1,16 +1,16 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-recoil
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -21,28 +21,28 @@
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-jcsg
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
-
+
diff --git a/reconstruction/rich/pom.xml b/reconstruction/rich/pom.xml
index a81b1a4188..5159ef804b 100644
--- a/reconstruction/rich/pom.xml
+++ b/reconstruction/rich/pom.xml
@@ -1,57 +1,57 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-rich
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.freehep
- jminuit
+ freehep-jminuit
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-jcsg
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/reconstruction/rtpc/pom.xml b/reconstruction/rtpc/pom.xml
index bd06a0366a..a298877a1a 100644
--- a/reconstruction/rtpc/pom.xml
+++ b/reconstruction/rtpc/pom.xml
@@ -1,23 +1,23 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-rtpc
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
cnuphys
magfield
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.apache.commons
@@ -26,34 +26,34 @@
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-tracking
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
compile
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
-
+
diff --git a/reconstruction/rtpc/src/main/java/org/jlab/rec/rtpc/Geometry.java b/reconstruction/rtpc/src/main/java/org/jlab/rec/rtpc/Geometry.java
index 9652c3b283..d3d43e8805 100644
--- a/reconstruction/rtpc/src/main/java/org/jlab/rec/rtpc/Geometry.java
+++ b/reconstruction/rtpc/src/main/java/org/jlab/rec/rtpc/Geometry.java
@@ -4,11 +4,6 @@
import java.io.FileNotFoundException;
import java.io.PrintWriter;
-/*import org.jMath.Vector.threeVec;
-
-import trackfitter.surface.Line;
-import trackfitter.track.Helix;*/
-
public class Geometry {
public Geometry() {
diff --git a/reconstruction/swaps/pom.xml b/reconstruction/swaps/pom.xml
index 8dc2957f43..50fa34f07a 100644
--- a/reconstruction/swaps/pom.xml
+++ b/reconstruction/swaps/pom.xml
@@ -1,16 +1,16 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-swaps
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -18,21 +18,21 @@
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
-
+
diff --git a/reconstruction/tof/pom.xml b/reconstruction/tof/pom.xml
index 3f46ab0838..1888278e21 100644
--- a/reconstruction/tof/pom.xml
+++ b/reconstruction/tof/pom.xml
@@ -1,16 +1,16 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-tof
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -18,43 +18,43 @@
org.jlab.clas
clas-jcsg
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-physics
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-utils
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
diff --git a/reconstruction/uber/pom.xml b/reconstruction/uber/pom.xml
index 31436a2ee0..bf83c3a651 100644
--- a/reconstruction/uber/pom.xml
+++ b/reconstruction/uber/pom.xml
@@ -1,114 +1,119 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-uber
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
swim-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
+
+
+ org.jlab.clas12.detector
+ clas12detector-ai
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-dc
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-ec
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-tof
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-htcc
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-ltcc
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-ft
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-cnd
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-band
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-cvt
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-raster
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-vtx
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-calib
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-rtpc
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-rich
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-eb
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-mltn
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas12.detector
clas12detector-fmt
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
-
+
diff --git a/reconstruction/uber/src/main/java/org/jlab/service/uber/Uber.java b/reconstruction/uber/src/main/java/org/jlab/service/uber/Uber.java
index e3aac26011..7258743b09 100644
--- a/reconstruction/uber/src/main/java/org/jlab/service/uber/Uber.java
+++ b/reconstruction/uber/src/main/java/org/jlab/service/uber/Uber.java
@@ -29,7 +29,10 @@
import org.jlab.service.mltn.MLTDEngine;
import org.jlab.service.rtpc.RTPCEngine;
import org.jlab.calibration.service.CalibBanksEngine;
+import org.jlab.service.ai.DCClsComboEngine;
+import org.jlab.service.ai.DCDenoiseEngine;
import org.jlab.service.dc.DCHBPostClusterConv;
+import org.jlab.service.dc.DCHBTrackingAI;
import org.jlab.service.dc.DCTBEngineAI;
import org.jlab.service.eb.EBHBAIEngine;
import org.jlab.service.eb.EBTBAIEngine;
@@ -82,8 +85,8 @@ public HitBasedCV() {
}
}
- public static class HitBasedAI extends UberEngine {
- public HitBasedAI() {
+ public static class HitBasedAIClassic extends UberEngine {
+ public HitBasedAIClassic() {
super("HB","uber","1.0");
add(new DCHBClustering(),
new MLTDEngine(),
@@ -97,8 +100,24 @@ public HitBasedAI() {
}
}
- public static class HitBasedAICV extends UberEngine {
- public HitBasedAICV() {
+ public static class HitBasedAI extends UberEngine {
+ public HitBasedAI() {
+ super("HB","uber","1.0");
+ add(new DCDenoiseEngine(),
+ new DCHBClustering(),
+ new DCClsComboEngine(),
+ new DCHBTrackingAI("HB"),
+ new BANDEngine(),
+ new HTCCReconstructionService(),
+ new LTCCEngine(),
+ new FTOFHBEngine(),
+ new ECEngine(),
+ new EBHBEngine());
+ }
+ }
+
+ public static class HitBasedAIClassicCV extends UberEngine {
+ public HitBasedAIClassicCV() {
super("HB","uber","1.0");
add(new DCHBClustering(),
new MLTDEngine(),
@@ -114,6 +133,24 @@ public HitBasedAICV() {
}
}
+ public static class HitBasedAICV extends UberEngine {
+ public HitBasedAICV() {
+ super("HB","uber","1.0");
+ add(new DCDenoiseEngine(),
+ new DCHBClustering(),
+ new DCClsComboEngine(),
+ new DCHBPostClusterConv(),
+ new DCHBTrackingAI("AI"),
+ new BANDEngine(),
+ new HTCCReconstructionService(),
+ new LTCCEngine(),
+ new FTOFHBEngine(),
+ new ECEngine(),
+ new EBHBEngine(),
+ new EBHBAIEngine());
+ }
+ }
+
public static class TimeBasedCV extends UberEngine {
public TimeBasedCV() {
super("TB","uber","1.0");
diff --git a/reconstruction/urwt/pom.xml b/reconstruction/urwt/pom.xml
index e405e05fdd..5acff1d22a 100644
--- a/reconstruction/urwt/pom.xml
+++ b/reconstruction/urwt/pom.xml
@@ -1,16 +1,16 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-urwt
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
@@ -21,28 +21,28 @@
org.jlab.clas
clas-detector
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-jcsg
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
- clas12detector-urwt
+ clas12detector-urwt
diff --git a/reconstruction/vtx/pom.xml b/reconstruction/vtx/pom.xml
index 9353773c1b..14faea5fbf 100644
--- a/reconstruction/vtx/pom.xml
+++ b/reconstruction/vtx/pom.xml
@@ -1,45 +1,45 @@
-
+
4.0.0
org.jlab.clas12.detector
clas12detector-vtx
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
org.jlab.clas12
reconstruction
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
swim-tools
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
jar
cnuphys
swimmer
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-reco
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-io
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
org.jlab.clas
clas-geometry
- 14.2.0-SNAPSHOT
+ 14.2.2-SNAPSHOT
-
+