From 3383219da1018ff4f92df0d2385f735b3637d65c Mon Sep 17 00:00:00 2001 From: Alexander Nozik Date: Tue, 18 Sep 2018 11:45:20 +0300 Subject: [PATCH] Minor fix to ColumnTable --- .../kotlin/inr/numass/data/api/NumassBlock.kt | 1 - .../scripts/PileupIntensityDependencyGun.kt | 4 +- .../inr/numass/scripts/PointSliceSpectrum.kt | 73 +++++++++++++++++++ 3 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 numass-main/src/main/kotlin/inr/numass/scripts/PointSliceSpectrum.kt diff --git a/numass-core/src/main/kotlin/inr/numass/data/api/NumassBlock.kt b/numass-core/src/main/kotlin/inr/numass/data/api/NumassBlock.kt index ac0afcce..f734e38b 100644 --- a/numass-core/src/main/kotlin/inr/numass/data/api/NumassBlock.kt +++ b/numass-core/src/main/kotlin/inr/numass/data/api/NumassBlock.kt @@ -90,5 +90,4 @@ class SimpleBlock( return SimpleBlock(startTime, length, producer()) } } - } \ No newline at end of file diff --git a/numass-main/src/main/kotlin/inr/numass/scripts/PileupIntensityDependencyGun.kt b/numass-main/src/main/kotlin/inr/numass/scripts/PileupIntensityDependencyGun.kt index eb192483..66d47153 100644 --- a/numass-main/src/main/kotlin/inr/numass/scripts/PileupIntensityDependencyGun.kt +++ b/numass-main/src/main/kotlin/inr/numass/scripts/PileupIntensityDependencyGun.kt @@ -29,7 +29,9 @@ import inr.numass.data.api.NumassSet import inr.numass.data.storage.NumassDirectory import inr.numass.displayChart - +/** + * Investigation of gun data for time chain anomaliese + */ fun main(args: Array) { val context = buildContext("NUMASS", NumassPlugin::class.java) { diff --git a/numass-main/src/main/kotlin/inr/numass/scripts/PointSliceSpectrum.kt b/numass-main/src/main/kotlin/inr/numass/scripts/PointSliceSpectrum.kt new file mode 100644 index 00000000..0b55cc64 --- /dev/null +++ b/numass-main/src/main/kotlin/inr/numass/scripts/PointSliceSpectrum.kt @@ -0,0 +1,73 @@ +package inr.numass.scripts + +import hep.dataforge.buildContext +import hep.dataforge.meta.buildMeta +import hep.dataforge.nullable +import hep.dataforge.plots.PlotGroup +import hep.dataforge.plots.data.DataPlot +import hep.dataforge.toList +import inr.numass.NumassPlugin +import inr.numass.data.analyzers.NumassAnalyzer +import inr.numass.data.analyzers.SmartAnalyzer +import inr.numass.data.analyzers.withBinning +import inr.numass.data.api.NumassSet +import inr.numass.data.api.SimpleBlock +import inr.numass.data.storage.NumassDirectory +import inr.numass.displayChart +import kotlinx.coroutines.experimental.runBlocking +import java.time.Duration + +/** + * Investigating slices of single point for differences at the beginning and end + */ +fun main(args: Array) { + val context = buildContext("NUMASS", NumassPlugin::class.java) { + rootDir = "D:\\Work\\Numass\\sterile\\2017_11" + dataDir = "D:\\Work\\Numass\\data\\2017_11" + } + //val rootDir = File("D:\\Work\\Numass\\data\\2017_05\\Fill_2") + + val storage = NumassDirectory.read(context, "Fill_3b") ?: error("Storage not found") + + + val analyzer = SmartAnalyzer() + + val meta = buildMeta { + "t0" to 15e3 + "window.lo" to 400 + "window.up" to 1600 + } + + val set = storage.provide("set_17", NumassSet::class.java).nullable ?: error("Set does not exist") + + val frame = displayChart("slices").apply { + plots.setType() + plots.configureValue("showLine", true) + } + + listOf(0,58,103).forEach { index -> + val group = PlotGroup("point_$index") + group.setType() + val point = set.find { it.index == index } ?: error("Point not found") + + + val blockSizes = point.meta.getValue("events").list.map { it.int } + val startTimes = point.meta.getValue("start_time").list.map { it.time } + + + runBlocking { + val events = point.events.toList() + var startIndex = 0 + val blocks = blockSizes.zip(startTimes).map { (size, startTime) -> + SimpleBlock.produce(startTime, Duration.ofSeconds(5)) { + events.subList(startIndex, startIndex + size) + }.also { startIndex += size } + } + + blocks.forEachIndexed { index, block -> + group.add(DataPlot.plot("block_$index", analyzer.getAmplitudeSpectrum(block).withBinning(20), NumassAnalyzer.AMPLITUDE_ADAPTER)) + } + } + frame.add(group) + } +} \ No newline at end of file