diff --git a/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/UberEngine.java b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/UberEngine.java new file mode 100644 index 0000000000..221b4f86d9 --- /dev/null +++ b/common-tools/clas-reco/src/main/java/org/jlab/clas/reco/UberEngine.java @@ -0,0 +1,83 @@ +package org.jlab.clas.reco; + +import java.util.ArrayList; +import org.jlab.clara.engine.EngineData; +import org.jlab.io.base.DataEvent; + +/** + * A ReconstructionEngine that is a chain of ReconstructionEngines. + * + * @author baltzell + */ +public abstract class UberEngine extends ReconstructionEngine { + + private final ArrayList engines = new ArrayList<>(); + + public UberEngine(String name, String author, String version) { + super(name,author,version); + } + + /** + * Add engines to the chain. + * @param e + */ + protected void add(ReconstructionEngine... e) { + for (int i=0; ipostproc recoil calib + uber diff --git a/reconstruction/uber/pom.xml b/reconstruction/uber/pom.xml new file mode 100644 index 0000000000..c34d7815df --- /dev/null +++ b/reconstruction/uber/pom.xml @@ -0,0 +1,114 @@ + + + 4.0.0 + + org.jlab.clas12.detector + clas12detector-uber + 13.4.0-SNAPSHOT + jar + + + org.jlab.clas12 + reconstruction + 13.4.0-SNAPSHOT + + + + + org.jlab.clas + clas-reco + 13.4.0-SNAPSHOT + + + org.jlab.clas + swim-tools + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-dc + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-ec + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-tof + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-htcc + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-ltcc + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-ft + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-cnd + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-band + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-cvt + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-raster + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-vtx + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-calib + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-rtpc + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-rich + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-eb + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-mltn + 13.4.0-SNAPSHOT + + + org.jlab.clas12.detector + clas12detector-fmt + 13.4.0-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 new file mode 100644 index 0000000000..e3aac26011 --- /dev/null +++ b/reconstruction/uber/src/main/java/org/jlab/service/uber/Uber.java @@ -0,0 +1,150 @@ +package org.jlab.service.uber; + +import org.jlab.clas.reco.UberEngine; + +import org.jlab.clas.swimtools.MagFieldsEngine; +import org.jlab.service.raster.RasterEngine; +import org.jlab.rec.cvt.services.CVTEngine; +import org.jlab.rec.cvt.services.CVTSecondPassEngine; +import org.jlab.rec.ft.FTEBEngine; +import org.jlab.rec.ft.cal.FTCALEngine; +import org.jlab.rec.ft.hodo.FTHODOEngine; +import org.jlab.rec.ft.trk.FTTRKEngine; +import org.jlab.rec.rich.RICHEBEngine; +import org.jlab.rec.service.vtx.VTXEngine; +import org.jlab.service.band.BANDEngine; +import org.jlab.service.cnd.CNDCalibrationEngine; +import org.jlab.service.ctof.CTOFEngine; +import org.jlab.service.dc.DCHBClustering; +import org.jlab.service.dc.DCHBPostClusterAI; +import org.jlab.service.dc.DCTBEngine; +import org.jlab.service.eb.EBHBEngine; +import org.jlab.service.eb.EBTBEngine; +import org.jlab.service.ec.ECEngine; +import org.jlab.service.fmt.FMTEngine; +import org.jlab.service.ftof.FTOFHBEngine; +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.dc.DCHBPostClusterConv; +import org.jlab.service.dc.DCTBEngineAI; +import org.jlab.service.eb.EBHBAIEngine; +import org.jlab.service.eb.EBTBAIEngine; + +/** + * A container of engine sequences for shorter YAMLs. + * + * @author baltzell + */ +public class Uber { + + public static class First extends UberEngine { + public First(){ + super("1ST","uber","1.0"); + add(new MagFieldsEngine(), + new RasterEngine()); + } + } + + public static class Central extends UberEngine { + public Central(){ + super("CD","uber","1.0"); + add(new CVTEngine(), + new CTOFEngine(), + new CNDCalibrationEngine()); + } + } + + public static class ForwardTagger extends UberEngine { + public ForwardTagger(){ + super("FT","uber","1.0"); + add(new FTCALEngine(), + new FTHODOEngine(), + new FTTRKEngine(), + new FTEBEngine()); + } + } + + public static class HitBasedCV extends UberEngine { + public HitBasedCV() { + super("HB","uber","1.0"); + add(new DCHBClustering(), + new DCHBPostClusterConv(), + 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"); + add(new DCHBClustering(), + new MLTDEngine(), + new DCHBPostClusterAI("HB"), + new BANDEngine(), + new HTCCReconstructionService(), + new LTCCEngine(), + new FTOFHBEngine(), + new ECEngine(), + new EBHBEngine()); + } + } + + public static class HitBasedAICV extends UberEngine { + public HitBasedAICV() { + 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 TimeBasedCV extends UberEngine { + public TimeBasedCV() { + super("TB","uber","1.0"); + add(new DCTBEngine(), + new FMTEngine(), + new CVTSecondPassEngine(), + new FTOFTBEngine(), + new EBTBEngine()); + } + } + + public static class TimeBasedAICV extends UberEngine { + public TimeBasedAICV() { + super("TB","uber","1.0"); + add(new DCTBEngine(), + new DCTBEngineAI(), + new FMTEngine(), + new CVTSecondPassEngine(), + new FTOFTBEngine(), + new EBTBEngine(), + new EBTBAIEngine("RECAI")); + } + } + + public static class Last extends UberEngine { + public Last() { + super("NTH","uber","1.0"); + add(new RICHEBEngine(), + new RTPCEngine(), + new VTXEngine(), + new CalibBanksEngine()); + } + } +}