diff --git a/common-tools/coat-libs/pom.xml b/common-tools/coat-libs/pom.xml
index 2e53c3b098..10faf7b577 100644
--- a/common-tools/coat-libs/pom.xml
+++ b/common-tools/coat-libs/pom.xml
@@ -26,16 +26,6 @@
et
-
- j4ml
- j4ml-neuroph
-
-
-
- j4ml
- j4ml-clas12
-
-
org.jlab.clas
clas-io
diff --git a/etc/services/kpp.yaml b/etc/services/kpp.yaml
index f0a37eac5f..0be7189bb1 100644
--- a/etc/services/kpp.yaml
+++ b/etc/services/kpp.yaml
@@ -1,10 +1,17 @@
-io-services:
- reader:
- class: org.jlab.io.clara.Clas12Reader
- name: Clas12Reader
- writer:
- class: org.jlab.io.clara.Clas12Writer
- name: Clas12Writer
+configuration:
+ services:
+ MAGFIELDS:
+ magfieldSolenoidMap: Symm_solenoid_r601_phi1_z1201_13June2018.dat
+ magfieldTorusMap: Full_torus_r251_phi181_z251_25Jan2021.dat
+ DCCR:
+ rawBankGroup: "NODENOISE"
+ DCHTAI:
+ outputBankPrefix: "AI"
+ DCTAI:
+ outputBankPrefix: "AI"
+ EBTAI:
+ outputBankPrefix: "RECAI"
+
services:
- class: org.jlab.clas.reco.DecoderEngine
name: DECO
@@ -20,18 +27,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
@@ -72,36 +77,18 @@ services:
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
-configuration:
- services:
- MAGFIELDS:
- magfieldSolenoidMap: Symm_solenoid_r601_phi1_z1201_13June2018.dat
- magfieldTorusMap: Symm_torus_r2501_phi16_z251_24Apr2018.dat
-# examples of yaml settings for magfields
-# magfieldSolenoidShift: "0.0"
-# magfieldTorusXShift: "0.0"
-# magfieldTorusYShift: "0.0"
-# magfieldTorusZShift: "0.0"
-# examples of yaml settings for DC services
-# DCRC:
-# dcGeometryVariation: rga_spring2018
-# dcT2DFunc: "Polynomial"
-# dcWireDistortion: "true"
-# example of how to set variation and timestamp for a service, uncomment to use
-# EBTB:
-# variation: default
-# timestamp: 08/22/2018
- DCCR:
- dcT2DFunc: "Exponential"
- DCHB:
- dcT2DFunc: "Exponential"
- DCHAI:
- dcT2DFunc: "Exponential"
- DCTB:
- dcT2DFunc: "Exponential"
- DCTAI:
- dcT2DFunc: "Exponential"
+
+io-services:
+ reader:
+ class: org.jlab.io.clara.Clas12Reader
+ name: Clas12Reader
+ writer:
+ class: org.jlab.io.clara.Clas12Writer
+ name: Clas12Writer
+
mime-types:
- binary/data-hipo
diff --git a/pom.xml b/pom.xml
index 18f7bad34c..cb7765d7dc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -200,28 +200,6 @@
4.5
-
- j4ml
- j4ml-neuroph
- 0.9-SNAPSHOT
-
-
-
- j4ml
- j4ml-data
- 0.9-SNAPSHOT
-
-
-
- j4ml
- j4ml-clas12
- 0.9-SNAPSHOT
-
-
org.jlab.ccdbrcdb
ccdbrcdb
diff --git a/reconstruction/mltn/pom.xml b/reconstruction/mltn/pom.xml
deleted file mode 100644
index 671df16992..0000000000
--- a/reconstruction/mltn/pom.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
- 4.0.0
-
- org.jlab.clas12.detector
- clas12detector-mltn
- 14.2.2-SNAPSHOT
- jar
-
-
- org.jlab.clas12
- reconstruction
- 14.2.2-SNAPSHOT
-
-
-
-
-
- org.jlab.jnp
- jnp-hipo4
-
-
-
- j4ml
- j4ml-neuroph
-
-
-
- j4ml
- j4ml-data
-
-
-
- j4ml
- j4ml-clas12
-
-
-
- org.jlab.clas
- clas-io
- 14.2.2-SNAPSHOT
-
-
-
- org.jlab.clas
- clas-reco
- 14.2.2-SNAPSHOT
-
-
-
-
-
diff --git a/reconstruction/mltn/src/main/java/org/jlab/service/mltn/MLTDEngine.java b/reconstruction/mltn/src/main/java/org/jlab/service/mltn/MLTDEngine.java
deleted file mode 100644
index 6dce3c09cd..0000000000
--- a/reconstruction/mltn/src/main/java/org/jlab/service/mltn/MLTDEngine.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package org.jlab.service.mltn;
-
-import j4ml.clas12.ejml.ArchiveProvider;
-import j4ml.clas12.ejml.EJMLTrackNeuralNetwork;
-import j4ml.clas12.network.Clas12TrackFinder;
-import j4ml.clas12.tracking.ClusterCombinations;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-import org.jlab.clas.reco.ReconstructionEngine;
-import org.jlab.io.base.DataBank;
-import org.jlab.io.base.DataEvent;
-import org.jlab.io.hipo.HipoDataBank;
-import org.jlab.utils.CLASResources;
-
-/**
- *
- * @author gavalian
- */
-public class MLTDEngine extends ReconstructionEngine {
-
- EJMLTrackNeuralNetwork network = null;
- private String networkFlavor = "default";
- private Integer userRunNumber = -1;
- private String inputBankPrefix = "";
- private String outputBankPrefix = "ai";
- private String inputBank = null;
- private String outputBank = null;
-
- public MLTDEngine(){
- super("MLTD","gavalian","1.0");
- }
-
- @Override
- public boolean init() {
- inputBankPrefix = Optional.ofNullable(this.getEngineConfigString("inputBankPrefix")).orElse("");
- outputBankPrefix = Optional.ofNullable(this.getEngineConfigString("outputBankPrefix")).orElse("ai");
- inputBank = "HitBasedTrkg::"+inputBankPrefix+"Clusters";
- outputBank = outputBankPrefix+"::tracks";
- networkFlavor = Optional.ofNullable(this.getEngineConfigString("flavor")).orElse("default");
- userRunNumber = Integer.valueOf(Optional.ofNullable(this.getEngineConfigString("run")).orElse("-1"));
- return true;
- }
-
- public boolean load(int run) {
- String path = CLASResources.getResourcePath("etc/data/nnet/ejml/ejmlclas12.network");
- if(this.getEngineConfigString("network")!=null)
- path = this.getEngineConfigString("network");
- System.out.println("[neural-network] info : Loading neural network from " + path);
- network = new EJMLTrackNeuralNetwork();
- Map files = new HashMap<>();
- files.put("classifier", "trackClassifier.network");
- files.put("fixer", "trackFixer.network");
-
- ArchiveProvider provider = new ArchiveProvider(path.trim());
-
- //----- This will find in the archive the last run number closest
- //----- to provided run number that contains trained network.
- //----- it works similar to CCDB, but not exatly, for provided
- //----- run number it looks for run that has smaller number,
- //----- however it the provided run # it lower than anything
- //----- existing in the arhive, it will return the closest run
- //----- number entry.
- int adjustedRun = provider.findEntry(run);
-
- String directory = String.format("network/%d/%s", adjustedRun, networkFlavor);
- network.initZip(path.trim(),directory, files);
-
- //trackFinder = Clas12TrackFinder.createEJML("CLAS12DIR","etc/ejml/ejmlclas12.network");
- //classifier.setEnvDirectory("CLAS12DIR");
- //classifier.setEnvPath("etc/nnet/neuroph");
- //classifier.load("trackClassifier.nnet", "trackFixer.nnet");
- System.out.println("[neural-network] info : Loading neural network files done...");
- System.out.println("[neural-network] info : Only network is initialized...");
- //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
- return true;
- }
-
- @Override
- public void detectorChanged(int runNumber) {
- if (userRunNumber < 0) {
- load(runNumber);
- }
- else if (network == null) {
- load(userRunNumber);
- }
- }
-
- @Override
- public boolean processDataEventUser(DataEvent de) {
- if(de.hasBank(inputBank)==true){
- DataBank bank = de.getBank(inputBank);
- HipoDataBank hipoBank = (HipoDataBank) bank;
- Clas12TrackFinder trackFinder = new Clas12TrackFinder();
- trackFinder.setTrackingNetwork(network);
- trackFinder.process(hipoBank.getBank());
- writeBank(de,trackFinder.getResults());
- }
- return true;
- }
-
- public void writeBank(DataEvent event, ClusterCombinations combi){
- DataBank bank = event.createBank(outputBank, combi.getSize());
- for(int i = 0; i < combi.getSize(); i++){
- bank.setByte("id", i, (byte) (i+1));
- bank.setByte("sector", i, (byte) 1);
- bank.setByte("charge", i, (byte) combi.setRow(i).getStatus());
- bank.setFloat("prob", i, (float) combi.setRow(i).getProbability());
- int[] ids = combi.getLabels(i);
- for(int c = 0; c < 6; c++){
- int order = c+1;
- bank.setShort("c"+order, i, (short) ids[c]);
- }
- }
- event.removeBank(outputBank);
- event.appendBank(bank);
- }
-
-}
diff --git a/reconstruction/mltn/src/main/java/org/jlab/service/mltn/MLTNEngine.java b/reconstruction/mltn/src/main/java/org/jlab/service/mltn/MLTNEngine.java
deleted file mode 100644
index 0d2c3ce339..0000000000
--- a/reconstruction/mltn/src/main/java/org/jlab/service/mltn/MLTNEngine.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.jlab.service.mltn;
-
-import j4ml.clas12.Clas12TrackAnalyzer;
-import j4ml.clas12.Clas12TrackClassifier;
-import j4ml.clas12.track.ClusterCombinations;
-import org.jlab.clas.reco.ReconstructionEngine;
-import org.jlab.io.base.DataBank;
-import org.jlab.io.base.DataEvent;
-import org.jlab.io.hipo.HipoDataBank;
-
-/**
- *
- * @author gavalian
- @Deprecated
- */
-public class MLTNEngine extends ReconstructionEngine {
-
- Clas12TrackClassifier classifier = new Clas12TrackClassifier();
-
- public MLTNEngine(){
- super("MLTN","gavalian","1.0");
- }
-
- @Override
- public boolean init() {
- classifier.setEnvDirectory("CLAS12DIR");
- classifier.setEnvPath("etc/data/nnet/neuroph");
- classifier.load("trackClassifier.nnet", "trackFixer.nnet");
- System.out.println("Loading neural network files done...");
- return true;
- }
-
- @Override
- public void detectorChanged(int runNumber) {}
-
- @Override
- public boolean processDataEventUser(DataEvent de) {
- if(de.hasBank("HitBasedTrkg::Clusters")==true){
- DataBank bank = de.getBank("HitBasedTrkg::Clusters");
-
-
- HipoDataBank hipoBank = (HipoDataBank) bank;
- //classifier.processBank(hipoBank.getBank());
-
- Clas12TrackAnalyzer analyzer = new Clas12TrackAnalyzer();
- for(int sector = 1; sector <=6; sector++){
- analyzer.readBank(hipoBank.getBank(), sector);
- classifier.evaluate(analyzer.getCombinations());
- //analyzer.getCombinations().analyze();
- //System.out.println(analyzer.getCombinations());
- classifier.evaluate5(analyzer.getCombinationsPartial());
- analyzer.analyze();
- }
-
- writeBank(de,analyzer.getTracks());
-
- }
- return true;
- }
-
- public void writeBank(DataEvent event, ClusterCombinations combi){
- //ClusterCombinations combi = cl.getTracks();
- //System.out.println(">>> writing ai bank with entries = " + combi.getSize());
- DataBank bank = event.createBank("ai::tracks", combi.getSize());
- for(int i = 0; i < combi.getSize(); i++){
- bank.setByte("id", i, (byte) (i+1));
- bank.setByte("sector", i, (byte) 1);
- bank.setByte("charge", i, (byte) combi.setRow(i).getStatus());
- bank.setFloat("prob", i, (float) combi.setRow(i).getProbability());
- int[] ids = combi.getLabels(i);
- for(int c = 0; c < 6; c++){
- int order = c+1;
- bank.setShort("c"+order, i, (short) ids[c]);
- }
- }
- //System.out.println("appending bank");
- event.appendBank(bank);
- }
-
- /*public void writeBank(DataEvent event, Clas12TrackClassifier cl){
- ClusterCombinations combi = cl.getTracks();
- //System.out.println(">>> writing ai bank with entries = " + combi.getSize());
- DataBank bank = event.createBank("ai::tracks", combi.getSize());
- for(int i = 0; i < combi.getSize(); i++){
- bank.setByte("id", i, (byte) (i+1));
- bank.setByte("sector", i, (byte) 1);
- int[] ids = combi.getLabels(i);
- for(int c = 0; c < 6; c++){
- int order = c+1;
- bank.setShort("c"+order, i, (short) ids[c]);
- }
- }
- //System.out.println("appending bank");
- event.appendBank(bank);
- }*/
-}
diff --git a/reconstruction/pom.xml b/reconstruction/pom.xml
index 9e5c9c69ae..0d4e0ee5bb 100644
--- a/reconstruction/pom.xml
+++ b/reconstruction/pom.xml
@@ -29,7 +29,6 @@
band
mc
rtpc
- mltn
swaps
raster
vtx
diff --git a/reconstruction/uber/pom.xml b/reconstruction/uber/pom.xml
index bf83c3a651..554cafca90 100644
--- a/reconstruction/uber/pom.xml
+++ b/reconstruction/uber/pom.xml
@@ -104,11 +104,6 @@
clas12detector-eb
14.2.2-SNAPSHOT
-
- org.jlab.clas12.detector
- clas12detector-mltn
- 14.2.2-SNAPSHOT
-
org.jlab.clas12.detector
clas12detector-fmt
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 7258743b09..6a10ad68cf 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
@@ -26,7 +26,6 @@
import org.jlab.service.ftof.FTOFTBEngine;
import org.jlab.service.htcc.HTCCReconstructionService;
import org.jlab.service.ltcc.LTCCEngine;
-import org.jlab.service.mltn.MLTDEngine;
import org.jlab.service.rtpc.RTPCEngine;
import org.jlab.calibration.service.CalibBanksEngine;
import org.jlab.service.ai.DCClsComboEngine;
@@ -85,21 +84,6 @@ public HitBasedCV() {
}
}
- public static class HitBasedAIClassic extends UberEngine {
- public HitBasedAIClassic() {
- super("HB","uber","1.0");
- add(new DCHBClustering(),
- new MLTDEngine(),
- new DCHBPostClusterAI("HB"),
- new BANDEngine(),
- new HTCCReconstructionService(),
- new LTCCEngine(),
- new FTOFHBEngine(),
- new ECEngine(),
- new EBHBEngine());
- }
- }
-
public static class HitBasedAI extends UberEngine {
public HitBasedAI() {
super("HB","uber","1.0");
@@ -116,23 +100,6 @@ public HitBasedAI() {
}
}
- public static class HitBasedAIClassicCV extends UberEngine {
- public HitBasedAIClassicCV() {
- super("HB","uber","1.0");
- add(new DCHBClustering(),
- new MLTDEngine(),
- new DCHBPostClusterConv(),
- new DCHBPostClusterAI("AI"),
- new BANDEngine(),
- new HTCCReconstructionService(),
- new LTCCEngine(),
- new FTOFHBEngine(),
- new ECEngine(),
- new EBHBEngine(),
- new EBHBAIEngine());
- }
- }
-
public static class HitBasedAICV extends UberEngine {
public HitBasedAICV() {
super("HB","uber","1.0");
diff --git a/validation/advanced-tests/run-advanced-tests.sh b/validation/advanced-tests/run-advanced-tests.sh
index c96599669a..c375c64f06 100755
--- a/validation/advanced-tests/run-advanced-tests.sh
+++ b/validation/advanced-tests/run-advanced-tests.sh
@@ -11,12 +11,8 @@ COAT=$CLARA_HOME/plugins/clas12/
source $COAT/libexec/env.sh
classPath="${COATJAVA_CLASSPATH}:../lib/*:src/"
-# download test files
-#wget --no-check-certificate http://clasweb.jlab.org/clas12offline/distribution/coatjava/validation_files/twoTrackEvents_809_raw.evio.tar.gz
-#[ $? -ne 0 ] && echo "wget validation files failure" && exit 2
-#tar -zxvf twoTrackEvents_809_raw.evio.tar.gz
-
# run decoder
+rm -f twoTrackEvents_809.hipo
$COAT/bin/decoder -t -0.5 -s 0.0 -i ./data/twoTrackEvents_809_raw.evio -o ./twoTrackEvents_809.hipo -c 2
[ $? -ne 0 ] && echo "decoder failure" && exit 3
@@ -24,6 +20,7 @@ $COAT/bin/decoder -t -0.5 -s 0.0 -i ./data/twoTrackEvents_809_raw.evio -o ./twoT
$COAT/bin/hipo-utils -stats ./twoTrackEvents_809.hipo
# run clara
+rm -f rec_twoTrackEvents_809.hipo
$COAT/bin/run-clara -y $COAT/etc/services/kpp.yaml ./twoTrackEvents_809.hipo
[ $? -ne 0 ] && echo "reconstruction with clara failure" && exit 4