From 7da7b2a74283fc8504876e07ea9ae234a1b3174c Mon Sep 17 00:00:00 2001 From: tongtongcao Date: Mon, 26 Oct 2026 15:17:08 -0400 Subject: [PATCH 1/6] Momentum magnitude for forward tracks, estimated by AI, needs to be scaled by the scale factor of magnetic field --- .../main/java/org/jlab/rec/dc/track/TrackCandListFinder.java | 5 +++++ 1 file changed, 5 insertions(+) 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 f90b26236a..092e416cff 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 @@ -9,6 +9,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.jlab.clas.swimtools.Swim; +import org.jlab.clas.swimtools.Swimmer; import org.jlab.detector.geant4.v2.DCGeant4Factory; import org.jlab.geom.prim.Line3D; import org.jlab.geom.prim.Point3D; @@ -254,6 +255,10 @@ public List getTrackCandsAI(CrossList crossList, DCGeant4Factory DcDetect initSV.tx = estSV[2]; initSV.ty = estSV[3]; initSV.Q = estSV[4]; + + double absTorScale = Math.abs(Swimmer.getTorScale()); + if(absTorScale != 1 && absTorScale != 0) + initSV.Q = estSV[4] / absTorScale; // Momentum magnitude is scaled by the scale factor of magnetic field RungeKuttaDoca rk = new RungeKuttaDoca(); rk.SwimToZ(sector, initSV, dcSwim, measSurfaces.get(0).wireLine[0].end().z(), new float[3]); From 4bf9fe4d3f7495a16a13c67953182d0a53eae64a Mon Sep 17 00:00:00 2001 From: tongtongcao Date: Thu, 29 Oct 2026 16:37:59 -0400 Subject: [PATCH 2/6] polish update --- .../main/java/org/jlab/rec/dc/track/TrackCandListFinder.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 092e416cff..952d3d80ea 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 @@ -257,8 +257,7 @@ public List getTrackCandsAI(CrossList crossList, DCGeant4Factory DcDetect initSV.Q = estSV[4]; double absTorScale = Math.abs(Swimmer.getTorScale()); - if(absTorScale != 1 && absTorScale != 0) - initSV.Q = estSV[4] / absTorScale; // Momentum magnitude is scaled by the scale factor of magnetic field + initSV.Q = absTorScale>0.001 ? estSV[4]/absTorScale : estSV[4]; // Momentum magnitude is scaled by the scale factor of magnetic field RungeKuttaDoca rk = new RungeKuttaDoca(); rk.SwimToZ(sector, initSV, dcSwim, measSurfaces.get(0).wireLine[0].end().z(), new float[3]); From 05dcd0dc12883acf9ca67538f6a7b36ded660379 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 22 Oct 2026 18:30:18 -0400 Subject: [PATCH 3/6] switch kpp test to modern ai --- etc/services/kpp.yaml | 75 ++++++++----------- .../advanced-tests/run-advanced-tests.sh | 7 +- .../src/kpptracking/KppTrackingTest.java | 2 +- 3 files changed, 34 insertions(+), 50 deletions(-) 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/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 diff --git a/validation/advanced-tests/src/kpptracking/KppTrackingTest.java b/validation/advanced-tests/src/kpptracking/KppTrackingTest.java index cfdbdff198..2cb314e470 100644 --- a/validation/advanced-tests/src/kpptracking/KppTrackingTest.java +++ b/validation/advanced-tests/src/kpptracking/KppTrackingTest.java @@ -36,7 +36,7 @@ public void testKppTracking() { System.out.println("\tTotal count: " + totalCount + "\n\t2-track count: " + twoTrackCountAI); assertEquals(twoTrackCountCV > 30, true); // this should be stricter! - assertEquals(twoTrackCountAI > 30, true); // this should be stricter! + assertEquals(twoTrackCountAI > 10, true); // this should be stricter! } From 8e9715896e8c9939546e7ff9626aa7f381da567b Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 29 Oct 2026 17:25:34 -0400 Subject: [PATCH 4/6] back to 30 for ai test --- validation/advanced-tests/src/kpptracking/KppTrackingTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation/advanced-tests/src/kpptracking/KppTrackingTest.java b/validation/advanced-tests/src/kpptracking/KppTrackingTest.java index 2cb314e470..cfdbdff198 100644 --- a/validation/advanced-tests/src/kpptracking/KppTrackingTest.java +++ b/validation/advanced-tests/src/kpptracking/KppTrackingTest.java @@ -36,7 +36,7 @@ public void testKppTracking() { System.out.println("\tTotal count: " + totalCount + "\n\t2-track count: " + twoTrackCountAI); assertEquals(twoTrackCountCV > 30, true); // this should be stricter! - assertEquals(twoTrackCountAI > 10, true); // this should be stricter! + assertEquals(twoTrackCountAI > 30, true); // this should be stricter! } From 73865001574266f2f4f68a9999cc4e83777ff9e9 Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 8 Oct 2026 12:07:35 -0400 Subject: [PATCH 5/6] remove j4ml dependency --- common-tools/coat-libs/pom.xml | 10 -- pom.xml | 22 ---- reconstruction/mltn/pom.xml | 52 -------- .../org/jlab/service/mltn/MLTDEngine.java | 119 ------------------ .../org/jlab/service/mltn/MLTNEngine.java | 96 -------------- reconstruction/pom.xml | 1 - 6 files changed, 300 deletions(-) delete mode 100644 reconstruction/mltn/pom.xml delete mode 100644 reconstruction/mltn/src/main/java/org/jlab/service/mltn/MLTDEngine.java delete mode 100644 reconstruction/mltn/src/main/java/org/jlab/service/mltn/MLTNEngine.java 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/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 From 3508c98e82ca515cf1f88310887a026348e2b28b Mon Sep 17 00:00:00 2001 From: Nathan Baltzell Date: Thu, 29 Oct 2026 17:58:35 -0400 Subject: [PATCH 6/6] remove unused dependency --- reconstruction/uber/pom.xml | 5 --- .../main/java/org/jlab/service/uber/Uber.java | 33 ------------------- 2 files changed, 38 deletions(-) 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");