From cb1951babd9fa4c0db2b9a34e36349cb3f226507 Mon Sep 17 00:00:00 2001 From: darksnake Date: Thu, 11 Aug 2016 15:45:53 +0300 Subject: [PATCH] fixes to grind and numass --- .../inr/numass/scripts/FindExIonRatio.groovy | 10 +---- .../groovy/inr/numass/scripts/Loss2014.groovy | 2 +- .../groovy/inr/numass/scripts/OldTest.groovy | 32 ++++++--------- .../inr/numass/scripts/ResolutionTest.groovy | 33 +++++++--------- .../numass/scripts/SignificanceTest.groovy | 2 +- .../groovy/inr/numass/scripts/Simulate.groovy | 37 +++++++----------- .../inr/numass/scripts/SimulateGun.groovy | 24 +++++------- .../inr/numass/scripts/SterileDemo.groovy | 39 ++++++------------- .../numass/scripts/SystTransmission.groovy | 35 +++++------------ .../inr/numass/scripts/Systematics.groovy | 36 ++++++----------- ...estExperimentalVariableLossSpectrum.groovy | 2 +- .../inr/numass/scripts/TestWorkspace.groovy | 10 +++++ .../inr/numass/scripts/TritiumTest.groovy | 29 +++++++------- .../inr/numass/tasks/NumassPrepareTask.java | 28 ++++++++++--- 14 files changed, 132 insertions(+), 187 deletions(-) create mode 100644 numass-main/src/main/groovy/inr/numass/scripts/TestWorkspace.groovy diff --git a/numass-main/src/main/groovy/inr/numass/scripts/FindExIonRatio.groovy b/numass-main/src/main/groovy/inr/numass/scripts/FindExIonRatio.groovy index 9eb516c7..2eea6052 100644 --- a/numass-main/src/main/groovy/inr/numass/scripts/FindExIonRatio.groovy +++ b/numass-main/src/main/groovy/inr/numass/scripts/FindExIonRatio.groovy @@ -15,20 +15,14 @@ */ package inr.numass.scripts - -import hep.dataforge.fitting.ParamSet -import hep.dataforge.maths.integration.RiemanIntegrator import hep.dataforge.maths.integration.UnivariateIntegrator import hep.dataforge.plots.PlotFrame import hep.dataforge.plots.data.PlottableXYFunction import hep.dataforge.plots.jfreechart.JFreeChartFrame +import hep.dataforge.stat.fit.ParamSet +import inr.numass.models.LossCalculator import org.apache.commons.math3.analysis.UnivariateFunction import org.apache.commons.math3.analysis.solvers.BisectionSolver -import inr.numass.models.LossCalculator -import inr.numass.models.ResolutionFunction -import inr.numass.Numass - - ParamSet params = new ParamSet() .setParValue("exPos", 12.76) diff --git a/numass-main/src/main/groovy/inr/numass/scripts/Loss2014.groovy b/numass-main/src/main/groovy/inr/numass/scripts/Loss2014.groovy index e55e36f1..2b12c0d6 100644 --- a/numass-main/src/main/groovy/inr/numass/scripts/Loss2014.groovy +++ b/numass-main/src/main/groovy/inr/numass/scripts/Loss2014.groovy @@ -17,7 +17,7 @@ package inr.numass.scripts import hep.dataforge.context.Context import hep.dataforge.data.DataNode -import hep.dataforge.fitting.FitTaskResult +import hep.dataforge.stat.fit.FitTaskResult import inr.numass.Main import inr.numass.Numass diff --git a/numass-main/src/main/groovy/inr/numass/scripts/OldTest.groovy b/numass-main/src/main/groovy/inr/numass/scripts/OldTest.groovy index bce84c8d..1538503d 100644 --- a/numass-main/src/main/groovy/inr/numass/scripts/OldTest.groovy +++ b/numass-main/src/main/groovy/inr/numass/scripts/OldTest.groovy @@ -13,31 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package inr.numass.scripts; +package inr.numass.scripts -import hep.dataforge.context.GlobalContext; -import hep.dataforge.tables.ListTable; -import hep.dataforge.fitting.FitManager; -import hep.dataforge.fitting.FitState; -import hep.dataforge.fitting.MINUITPlugin - -import hep.dataforge.fitting.ParamSet; -import hep.dataforge.fitting.models.XYModel; -import hep.dataforge.fitting.likelihood.BayesianManager +import hep.dataforge.context.GlobalContext +import hep.dataforge.stat.fit.FitManager +import hep.dataforge.stat.fit.FitState +import hep.dataforge.stat.fit.MINUITPlugin +import hep.dataforge.stat.fit.ParamSet +import hep.dataforge.stat.models.XYModel +import hep.dataforge.tables.ListTable import inr.numass.data.SpectrumDataAdapter -import inr.numass.models.BetaSpectrum; -import inr.numass.models.ModularSpectrum; - -import inr.numass.models.NBkgSpectrum; -import inr.numass.models.RangedNamedSetSpectrum; +import inr.numass.models.BetaSpectrum +import inr.numass.models.ModularSpectrum +import inr.numass.models.NBkgSpectrum import inr.numass.models.ResolutionFunction -import static inr.numass.utils.OldDataReader.readData; -import java.io.File; -import java.io.PrintWriter; -import java.util.Locale; import org.apache.commons.math3.analysis.BivariateFunction -import inr.numass.models.ResolutionFunction +import static inr.numass.utils.OldDataReader.readData PrintWriter out = GlobalContext.out(); Locale.setDefault(Locale.US); diff --git a/numass-main/src/main/groovy/inr/numass/scripts/ResolutionTest.groovy b/numass-main/src/main/groovy/inr/numass/scripts/ResolutionTest.groovy index 5fc03816..505f0d4b 100644 --- a/numass-main/src/main/groovy/inr/numass/scripts/ResolutionTest.groovy +++ b/numass-main/src/main/groovy/inr/numass/scripts/ResolutionTest.groovy @@ -13,26 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package inr.numass.scripts; +package inr.numass.scripts -import hep.dataforge.context.GlobalContext; -import static hep.dataforge.context.GlobalContext.out; -import hep.dataforge.tables.ListTable; -import hep.dataforge.fitting.FitManager; -import hep.dataforge.fitting.FitState; -import hep.dataforge.fitting.FitTask; -import hep.dataforge.fitting.ParamSet; -import hep.dataforge.fitting.models.XYModel; -import hep.dataforge.exceptions.NamingException; -import inr.numass.data.SpectrumDataAdapter; -import inr.numass.data.SpectrumGenerator; +import hep.dataforge.context.GlobalContext +import hep.dataforge.stat.fit.FitManager +import hep.dataforge.stat.fit.FitState +import hep.dataforge.stat.fit.ParamSet +import hep.dataforge.stat.models.XYModel +import hep.dataforge.tables.ListTable +import inr.numass.data.SpectrumDataAdapter +import inr.numass.data.SpectrumGenerator import inr.numass.models.BetaSpectrum -import inr.numass.models.ModularSpectrum; -import inr.numass.models.NBkgSpectrum; -import inr.numass.utils.DataModelUtils; -import java.io.FileNotFoundException; -import java.util.Locale; -import static java.util.Locale.setDefault; +import inr.numass.models.ModularSpectrum +import inr.numass.models.NBkgSpectrum +import inr.numass.utils.DataModelUtils + +import static hep.dataforge.context.GlobalContext.out +import static java.util.Locale.setDefault /** * diff --git a/numass-main/src/main/groovy/inr/numass/scripts/SignificanceTest.groovy b/numass-main/src/main/groovy/inr/numass/scripts/SignificanceTest.groovy index 904a2e87..da96f73c 100644 --- a/numass-main/src/main/groovy/inr/numass/scripts/SignificanceTest.groovy +++ b/numass-main/src/main/groovy/inr/numass/scripts/SignificanceTest.groovy @@ -17,7 +17,7 @@ package inr.numass.scripts; import hep.dataforge.meta.MetaBuilder; import hep.dataforge.context.GlobalContext; -import hep.dataforge.fitting.ParamSet; +import hep.dataforge.stat.fit.ParamSet; import inr.numass.data.SpectrumInformation; import inr.numass.models.ModularSpectrum; import inr.numass.models.BetaSpectrum; diff --git a/numass-main/src/main/groovy/inr/numass/scripts/Simulate.groovy b/numass-main/src/main/groovy/inr/numass/scripts/Simulate.groovy index eaa947ff..cd2f379c 100644 --- a/numass-main/src/main/groovy/inr/numass/scripts/Simulate.groovy +++ b/numass-main/src/main/groovy/inr/numass/scripts/Simulate.groovy @@ -13,32 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package inr.numass.scripts; +package inr.numass.scripts -import hep.dataforge.context.GlobalContext; -import static hep.dataforge.context.GlobalContext.out; -import hep.dataforge.tables.ListTable; -import hep.dataforge.fitting.FitManager; -import hep.dataforge.fitting.FitState; -import hep.dataforge.fitting.FitTask; -import hep.dataforge.fitting.MINUITPlugin - -import hep.dataforge.fitting.ParamSet; -import hep.dataforge.fitting.models.XYModel; -import hep.dataforge.exceptions.NamingException; -import hep.dataforge.exceptions.PackFormatException; -import inr.numass.data.SpectrumDataAdapter; -import inr.numass.data.SpectrumGenerator; +import hep.dataforge.stat.fit.* +import hep.dataforge.stat.models.XYModel +import hep.dataforge.tables.ListTable +import inr.numass.data.SpectrumDataAdapter +import inr.numass.data.SpectrumGenerator import inr.numass.models.BetaSpectrum -import inr.numass.models.ModularSpectrum; -import inr.numass.models.NBkgSpectrum; -import inr.numass.utils.DataModelUtils; -import hep.dataforge.plotfit.PlotFitResultAction; -import java.io.FileNotFoundException; -import java.util.Locale; -import static java.util.Locale.setDefault; -import inr.numass.utils.TritiumUtils; -import inr.numass.data.SpectrumDataAdapter; +import inr.numass.models.ModularSpectrum +import inr.numass.models.NBkgSpectrum +import inr.numass.utils.DataModelUtils +import inr.numass.utils.TritiumUtils + +import static hep.dataforge.context.GlobalContext.out +import static java.util.Locale.setDefault /** * diff --git a/numass-main/src/main/groovy/inr/numass/scripts/SimulateGun.groovy b/numass-main/src/main/groovy/inr/numass/scripts/SimulateGun.groovy index 07965b93..f4005fa0 100644 --- a/numass-main/src/main/groovy/inr/numass/scripts/SimulateGun.groovy +++ b/numass-main/src/main/groovy/inr/numass/scripts/SimulateGun.groovy @@ -13,22 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package inr.numass.scripts; +package inr.numass.scripts -import hep.dataforge.context.GlobalContext; -import hep.dataforge.fitting.FitManager; -import hep.dataforge.fitting.ParamSet; -import hep.dataforge.fitting.models.XYModel; -import hep.dataforge.exceptions.NamingException; -import hep.dataforge.io.FittingIOUtils; -import inr.numass.data.SpectrumDataAdapter; -import inr.numass.models.GunSpectrum; -import inr.numass.models.NBkgSpectrum; -import java.io.FileNotFoundException; -import java.io.PrintWriter; -import java.util.Locale; -import static java.util.Locale.setDefault; +import hep.dataforge.context.GlobalContext +import hep.dataforge.stat.fit.FitManager +import hep.dataforge.stat.fit.ParamSet +import hep.dataforge.stat.models.XYModel +import hep.dataforge.io.FittingIOUtils +import inr.numass.data.SpectrumDataAdapter +import inr.numass.models.GunSpectrum +import inr.numass.models.NBkgSpectrum +import static java.util.Locale.setDefault setDefault(Locale.US); GlobalContext global = GlobalContext.instance(); diff --git a/numass-main/src/main/groovy/inr/numass/scripts/SterileDemo.groovy b/numass-main/src/main/groovy/inr/numass/scripts/SterileDemo.groovy index 0ffb9325..882c72e3 100644 --- a/numass-main/src/main/groovy/inr/numass/scripts/SterileDemo.groovy +++ b/numass-main/src/main/groovy/inr/numass/scripts/SterileDemo.groovy @@ -13,37 +13,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package inr.numass.scripts; +package inr.numass.scripts -import hep.dataforge.context.GlobalContext; -import static hep.dataforge.context.GlobalContext.out; -import hep.dataforge.tables.ListTable; -import hep.dataforge.fitting.FitManager; -import hep.dataforge.fitting.FitState; -import hep.dataforge.fitting.FitTask; -import hep.dataforge.fitting.MINUITPlugin - -import hep.dataforge.fitting.ParamSet; -import hep.dataforge.fitting.models.XYModel; -import hep.dataforge.fitting.parametric.ParametricFunction -import hep.dataforge.exceptions.NamingException; -import hep.dataforge.exceptions.PackFormatException; -import inr.numass.data.SpectrumDataAdapter; -import inr.numass.data.SpectrumGenerator; -import inr.numass.models.BetaSpectrum -import inr.numass.models.ModularSpectrum; -import inr.numass.models.NBkgSpectrum; -import inr.numass.models.sterile.SterileNeutrinoSpectrum -import inr.numass.utils.DataModelUtils; -import hep.dataforge.plotfit.PlotFitResultAction; -import java.io.FileNotFoundException; -import java.util.Locale; -import static java.util.Locale.setDefault; -import inr.numass.utils.TritiumUtils; -import inr.numass.data.SpectrumDataAdapter; +import hep.dataforge.context.GlobalContext +import hep.dataforge.grind.GrindMetaBuilder import hep.dataforge.io.FittingIOUtils import hep.dataforge.meta.Meta -import hep.dataforge.grind.GrindMetaBuilder +import hep.dataforge.stat.fit.ParamSet +import hep.dataforge.stat.models.XYModel +import hep.dataforge.stat.parametric.ParametricFunction +import inr.numass.data.SpectrumDataAdapter +import inr.numass.models.NBkgSpectrum +import inr.numass.models.sterile.SterileNeutrinoSpectrum + +import static java.util.Locale.setDefault /** * diff --git a/numass-main/src/main/groovy/inr/numass/scripts/SystTransmission.groovy b/numass-main/src/main/groovy/inr/numass/scripts/SystTransmission.groovy index 9877144e..265549b4 100644 --- a/numass-main/src/main/groovy/inr/numass/scripts/SystTransmission.groovy +++ b/numass-main/src/main/groovy/inr/numass/scripts/SystTransmission.groovy @@ -13,36 +13,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package inr.numass.scripts; +package inr.numass.scripts -import hep.dataforge.context.GlobalContext; -import static hep.dataforge.context.GlobalContext.out; -import hep.dataforge.tables.ListTable; -import hep.dataforge.fitting.FitManager; -import hep.dataforge.fitting.FitState; -import hep.dataforge.fitting.FitTask; -import hep.dataforge.fitting.MINUITPlugin - -import hep.dataforge.fitting.ParamSet; -import hep.dataforge.fitting.models.XYModel; -import hep.dataforge.exceptions.NamingException; -import hep.dataforge.exceptions.PackFormatException; -import inr.numass.data.SpectrumDataAdapter; -import inr.numass.data.SpectrumGenerator; +import hep.dataforge.stat.fit.* +import hep.dataforge.stat.models.XYModel +import hep.dataforge.tables.ListTable +import inr.numass.data.SpectrumDataAdapter +import inr.numass.data.SpectrumGenerator import inr.numass.models.BetaSpectrum import inr.numass.models.ModularSpectrum -import inr.numass.models.NBkgSpectrum; +import inr.numass.models.NBkgSpectrum import inr.numass.models.ResolutionFunction -import inr.numass.utils.DataModelUtils; -import hep.dataforge.plotfit.PlotFitResultAction; -import hep.dataforge.plots.PlotFrame -import hep.dataforge.plots.data.PlottableXYFunction -import hep.dataforge.plots.jfreechart.JFreeChartFrame -import java.io.FileNotFoundException; -import java.util.Locale; -import org.apache.commons.math3.analysis.BivariateFunction +import inr.numass.utils.DataModelUtils -import static java.util.Locale.setDefault; +import static hep.dataforge.context.GlobalContext.out +import static java.util.Locale.setDefault /** * diff --git a/numass-main/src/main/groovy/inr/numass/scripts/Systematics.groovy b/numass-main/src/main/groovy/inr/numass/scripts/Systematics.groovy index 8c7edd99..5d43593b 100644 --- a/numass-main/src/main/groovy/inr/numass/scripts/Systematics.groovy +++ b/numass-main/src/main/groovy/inr/numass/scripts/Systematics.groovy @@ -13,36 +13,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package inr.numass.scripts; +package inr.numass.scripts -import hep.dataforge.context.GlobalContext; -import static hep.dataforge.context.GlobalContext.out; -import hep.dataforge.tables.ListTable; -import hep.dataforge.fitting.FitManager; -import hep.dataforge.fitting.FitState; -import hep.dataforge.fitting.FitTask; -import hep.dataforge.fitting.MINUITPlugin - -import hep.dataforge.fitting.ParamSet; -import hep.dataforge.fitting.models.XYModel; -import hep.dataforge.exceptions.NamingException; -import hep.dataforge.exceptions.PackFormatException; -import inr.numass.data.SpectrumDataAdapter; -import inr.numass.data.SpectrumGenerator; +import hep.dataforge.stat.fit.* +import hep.dataforge.stat.models.XYModel +import hep.dataforge.tables.ListTable +import inr.numass.data.SpectrumDataAdapter +import inr.numass.data.SpectrumGenerator import inr.numass.models.BetaSpectrum -import inr.numass.models.ModularSpectrum; -import inr.numass.models.NBkgSpectrum; +import inr.numass.models.ModularSpectrum +import inr.numass.models.NBkgSpectrum import inr.numass.models.ResolutionFunction -import inr.numass.utils.DataModelUtils; -import hep.dataforge.plotfit.PlotFitResultAction; -import hep.dataforge.plots.PlotFrame -import hep.dataforge.plots.data.PlottableXYFunction -import hep.dataforge.plots.jfreechart.JFreeChartFrame -import java.io.FileNotFoundException; -import java.util.Locale; +import inr.numass.utils.DataModelUtils import org.apache.commons.math3.analysis.BivariateFunction -import static java.util.Locale.setDefault; +import static hep.dataforge.context.GlobalContext.out +import static java.util.Locale.setDefault /** * diff --git a/numass-main/src/main/groovy/inr/numass/scripts/TestExperimentalVariableLossSpectrum.groovy b/numass-main/src/main/groovy/inr/numass/scripts/TestExperimentalVariableLossSpectrum.groovy index a3acf1ba..ed3f14c5 100644 --- a/numass-main/src/main/groovy/inr/numass/scripts/TestExperimentalVariableLossSpectrum.groovy +++ b/numass-main/src/main/groovy/inr/numass/scripts/TestExperimentalVariableLossSpectrum.groovy @@ -22,7 +22,7 @@ import inr.numass.models.ExperimentalVariableLossSpectrum import org.apache.commons.math3.analysis.UnivariateFunction import inr.numass.Numass -import hep.dataforge.fitting.ParamSet +import hep.dataforge.stat.fit.ParamSet import hep.dataforge.io.PrintFunction diff --git a/numass-main/src/main/groovy/inr/numass/scripts/TestWorkspace.groovy b/numass-main/src/main/groovy/inr/numass/scripts/TestWorkspace.groovy new file mode 100644 index 00000000..cdc51658 --- /dev/null +++ b/numass-main/src/main/groovy/inr/numass/scripts/TestWorkspace.groovy @@ -0,0 +1,10 @@ +package inr.numass.scripts + +import hep.dataforge.grind.GrindLauncher + +/** + * Created by darksnake on 11-Aug-16. + */ + + +new GrindLauncher().from { new File("D:\\Work\\Numass\\sterile2016\\workspace.groovy") }.runTask("numass.prepare", "fill_2") diff --git a/numass-main/src/main/groovy/inr/numass/scripts/TritiumTest.groovy b/numass-main/src/main/groovy/inr/numass/scripts/TritiumTest.groovy index da811cb6..ce930380 100644 --- a/numass-main/src/main/groovy/inr/numass/scripts/TritiumTest.groovy +++ b/numass-main/src/main/groovy/inr/numass/scripts/TritiumTest.groovy @@ -13,26 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package inr.numass.scripts; +package inr.numass.scripts -import hep.dataforge.context.GlobalContext; -import hep.dataforge.data.DataSet; -import hep.dataforge.tables.ListTable; -import hep.dataforge.fitting.FitManager; -import hep.dataforge.fitting.FitState; -import hep.dataforge.fitting.ParamSet; -import hep.dataforge.fitting.models.XYModel; -import hep.dataforge.fitting.likelihood.BayesianManager -import static hep.dataforge.maths.RandomUtils.setSeed; -import inr.numass.data.SpectrumGenerator; +import hep.dataforge.context.GlobalContext +import hep.dataforge.data.DataSet +import hep.dataforge.stat.fit.FitManager +import hep.dataforge.stat.fit.FitState +import hep.dataforge.stat.fit.ParamSet +import hep.dataforge.stat.likelihood.BayesianManager +import hep.dataforge.stat.models.XYModel +import hep.dataforge.tables.ListTable +import inr.numass.data.SpectrumGenerator import inr.numass.models.BetaSpectrum import inr.numass.models.ModularSpectrum -import inr.numass.models.NBkgSpectrum; -import static inr.numass.utils.DataModelUtils.getUniformSpectrumConfiguration; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.PrintWriter; +import inr.numass.models.NBkgSpectrum +import static hep.dataforge.maths.RandomUtils.setSeed +import static inr.numass.utils.DataModelUtils.getUniformSpectrumConfiguration PrintWriter out = GlobalContext.out(); FitManager fm = new FitManager(); diff --git a/numass-main/src/main/java/inr/numass/tasks/NumassPrepareTask.java b/numass-main/src/main/java/inr/numass/tasks/NumassPrepareTask.java index a7737de4..44728bab 100644 --- a/numass-main/src/main/java/inr/numass/tasks/NumassPrepareTask.java +++ b/numass-main/src/main/java/inr/numass/tasks/NumassPrepareTask.java @@ -13,23 +13,25 @@ import hep.dataforge.data.DataTree; import hep.dataforge.meta.Meta; import hep.dataforge.meta.Template; import hep.dataforge.tables.Table; +import hep.dataforge.tables.TransformTableAction; import hep.dataforge.workspace.GenericTask; import hep.dataforge.workspace.TaskModel; import hep.dataforge.workspace.TaskState; import inr.numass.actions.MergeDataAction; +import inr.numass.actions.MonitorCorrectAction; import inr.numass.actions.PrepareDataAction; import inr.numass.actions.ReadNumassStorageAction; import inr.numass.storage.NumassData; /** - * Prepare data task - * + * Prepare data task + * * @author Alexander Nozik */ public class NumassPrepareTask extends GenericTask { /* - + @@ -54,20 +56,34 @@ public class NumassPrepareTask extends GenericTask { Meta prepareMeta = Template.compileTemplate(config.getNode("prepare"), config); DataNode tables = runAction(new PrepareDataAction(), callback, context, data, prepareMeta); state.setData("prepare", tables); + + if (config.hasNode("monitor")) { + Meta monitorMeta = Template.compileTemplate(config.getNode("monitor"), config); + tables = runAction(new MonitorCorrectAction(), callback, context, tables, monitorMeta); + state.setData("monitor", tables); + } + //merging if needed if (config.hasNode("merge")) { DataTree.Builder resultBuilder = DataTree.builder(Table.class); tables.dataStream().forEach(pair -> resultBuilder.putData(pair.getKey(), pair.getValue())); + DataNode
finalTables = tables; config.getNodes("merge").forEach(mergeNode -> { Meta mergeMeta = Template.compileTemplate(mergeNode, config); - DataNode
mergeData = runAction(new MergeDataAction(), callback, context, tables, mergeMeta); + DataNode
mergeData = runAction(new MergeDataAction(), callback, context, finalTables, mergeMeta); mergeData.dataStream().forEach(pair -> { resultBuilder.putData("merge." + pair.getKey(), pair.getValue()); }); }); - } else { - state.finish(tables); + tables = resultBuilder.build(); } + + if (config.hasNode("transform")) { + Meta filterMeta = Template.compileTemplate(config.getNode("transform"), config); + tables = runAction(new TransformTableAction(), callback, context, tables, filterMeta); + } + + state.finish(tables); return state; }