diff --git a/common-tools/coat-libs/pom.xml b/common-tools/coat-libs/pom.xml
index 86ae62720b..5c5cee2dab 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.plugins
trackfitter
diff --git a/pom.xml b/pom.xml
index 4be635ba7e..51f98cea79 100644
--- a/pom.xml
+++ b/pom.xml
@@ -197,24 +197,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 bc95304152..0000000000
--- a/reconstruction/mltn/pom.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
- 4.0.0
-
- org.jlab.clas12.detector
- clas12detector-mltn
- 14.2.1-SNAPSHOT
- jar
-
-
- org.jlab.clas12
- reconstruction
- 14.2.1-SNAPSHOT
-
-
-
-
-
- org.jlab.jnp
- jnp-hipo4
-
-
-
- j4ml
- j4ml-neuroph
-
-
-
- j4ml
- j4ml-data
-
-
-
- j4ml
- j4ml-clas12
-
-
-
- org.jlab.clas
- clas-io
- 14.2.1-SNAPSHOT
-
-
-
- org.jlab.clas
- clas-reco
- 14.2.1-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 681cac5725..c3b50541a3 100644
--- a/reconstruction/pom.xml
+++ b/reconstruction/pom.xml
@@ -29,7 +29,6 @@
band
mc
rtpc
- mltn
swaps
raster
vtx