From 1881c3419efa8219b37da51ce5b30b5a95ca468d Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Mon, 4 Feb 2019 13:52:51 +0300 Subject: [PATCH] Plot name fix --- .../scripts/timeanalysis/AnalyzeDantePoint.kt | 72 +++++++++++++++++++ .../kotlin/inr/numass/tasks/NumassTasks.kt | 4 +- .../kotlin/inr/numass/viewer/AmplitudeView.kt | 2 +- 3 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 numass-main/src/main/kotlin/inr/numass/scripts/timeanalysis/AnalyzeDantePoint.kt diff --git a/numass-main/src/main/kotlin/inr/numass/scripts/timeanalysis/AnalyzeDantePoint.kt b/numass-main/src/main/kotlin/inr/numass/scripts/timeanalysis/AnalyzeDantePoint.kt new file mode 100644 index 00000000..51a8beb6 --- /dev/null +++ b/numass-main/src/main/kotlin/inr/numass/scripts/timeanalysis/AnalyzeDantePoint.kt @@ -0,0 +1,72 @@ +package inr.numass.scripts.timeanalysis + +import hep.dataforge.buildContext +import hep.dataforge.data.DataSet +import hep.dataforge.fx.output.FXOutputManager +import hep.dataforge.meta.buildMeta +import hep.dataforge.plots.jfreechart.JFreeChartPlugin +import inr.numass.NumassPlugin +import inr.numass.actions.TimeAnalyzerAction +import inr.numass.data.api.NumassPoint +import inr.numass.data.api.NumassSet +import inr.numass.data.api.SimpleNumassPoint +import inr.numass.data.storage.NumassDirectory + +fun main(args: Array) { + + val context = buildContext("NUMASS", NumassPlugin::class.java, JFreeChartPlugin::class.java) { + output = FXOutputManager() + rootDir = "D:\\Work\\Numass\\sterile2018_04" + dataDir = "D:\\Work\\Numass\\data\\2018_04" + } + + val storage = NumassDirectory.read(context, "Fill_3")!! + + val meta = buildMeta { + "binNum" to 200 + //"chunkSize" to 10000 + // "mean" to TimeAnalyzer.AveragingMethod.ARITHMETIC + //"separateParallelBlocks" to true + "t0" to { + "step" to 320 + } + "analyzer" to { + "t0" to 16000 + "window" to { + "lo" to 450 + "up" to 1900 + } + } + + //"plot.showErrors" to false + } + + + val loader = storage.provide("set_9",NumassSet::class.java).get() + + val hvs = listOf(14000.0)//, 15000d, 15200d, 15400d, 15600d, 15800d] + //listOf(18500.0, 18600.0, 18995.0, 19000.0) + + val data = DataSet.edit(NumassPoint::class).apply { + hvs.forEach { hv -> + val points = loader.points.filter { + it.voltage == hv + }.map { it.channels[0]!! }.toList() + if (!points.isEmpty()) { + putStatic( + "point_${hv.toInt()}", + SimpleNumassPoint(points, hv) + ) + } + } + }.build() + + + val result = TimeAnalyzerAction.run(context, data, meta); + + result.nodeGoal().run() + + readLine() + println("Canceling task") + result.nodeGoal().cancel() +} \ No newline at end of file diff --git a/numass-main/src/main/kotlin/inr/numass/tasks/NumassTasks.kt b/numass-main/src/main/kotlin/inr/numass/tasks/NumassTasks.kt index 457641de..b8128f0c 100644 --- a/numass-main/src/main/kotlin/inr/numass/tasks/NumassTasks.kt +++ b/numass-main/src/main/kotlin/inr/numass/tasks/NumassTasks.kt @@ -348,7 +348,7 @@ val histogramTask = task("histogram") { values[NumassAnalyzer.CHANNEL_KEY] = channel counters.forEach { u, counter -> if (normalize) { - values["U$u"] = counter.get().toDouble() / times[u]!! + values["U$u"] = counter.get().toDouble() / times.getValue(u) } else { values["U$u"] = counter.get() } @@ -358,7 +358,7 @@ val histogramTask = task("histogram") { } row(values) } - }.sumByStep(NumassAnalyzer.CHANNEL_KEY, meta.getDouble("binning", 20.0)) //apply binning + }.sumByStep(NumassAnalyzer.CHANNEL_KEY, meta.getDouble("binning", 16.0)) //apply binning // send raw table to the output context.output.render(table, stage = "numass.histogram", name = name, meta = meta) diff --git a/numass-viewer/src/main/kotlin/inr/numass/viewer/AmplitudeView.kt b/numass-viewer/src/main/kotlin/inr/numass/viewer/AmplitudeView.kt index 1b244cc1..9f903b3a 100644 --- a/numass-viewer/src/main/kotlin/inr/numass/viewer/AmplitudeView.kt +++ b/numass-viewer/src/main/kotlin/inr/numass/viewer/AmplitudeView.kt @@ -58,7 +58,7 @@ class AmplitudeView : View(title = "Numass amplitude spectrum plot", icon = Imag private val container = PlotContainer(frame).apply { - val binningSelector: ChoiceBox = ChoiceBox(FXCollections.observableArrayList(1, 2, 5, 10, 20, 50)).apply { + val binningSelector: ChoiceBox = ChoiceBox(FXCollections.observableArrayList(1, 2, 8, 16, 32, 50)).apply { minWidth = 0.0 selectionModel.selectLast() binningProperty.bind(this.selectionModel.selectedItemProperty())