Added logger error for goal failure

This commit is contained in:
Alexander Nozik 2018-06-05 21:19:49 +03:00
parent 2a6c7b75a5
commit 1b3e48c94f
3 changed files with 22 additions and 13 deletions

View File

@ -28,7 +28,6 @@ import inr.numass.data.api.NumassPoint.Companion.HV_KEY
import inr.numass.data.api.NumassSet
import inr.numass.data.api.SignalProcessor
import java.lang.IllegalArgumentException
import java.util.*
import java.util.stream.Stream
/**
@ -51,7 +50,7 @@ abstract class AbstractAnalyzer @JvmOverloads constructor(private val processor:
event.amplitude.toInt() in loChannel..(upChannel - 1)
}
if (meta.getBoolean("sort", false)) {
res = res.sorted(Comparator.comparing<NumassEvent, Long> { it.timeOffset })
res = res.sorted(compareBy { it.timeOffset })
}
return res
}

View File

@ -60,9 +60,10 @@ class TimeAnalyzer(processor: SignalProcessor? = null) : AbstractAnalyzer(proces
val chunkSize = config.getInt("chunkSize", 1000)
val res = getEventsWithDelay(block, config).asSequence().chunked(chunkSize) {
analyzeSequence(it.asSequence(), t0)
}.toList().mean(config.getEnum("mean", WEIGHTED))
val res = getEventsWithDelay(block, config)
.chunked(chunkSize) { analyzeSequence(it.asSequence(), t0) }
.toList()
.mean(config.getEnum("mean", WEIGHTED))
return ValueMap.Builder(res)
.putValue(NumassAnalyzer.WINDOW_KEY, arrayOf(loChannel, upChannel))
@ -98,11 +99,9 @@ class TimeAnalyzer(processor: SignalProcessor? = null) : AbstractAnalyzer(proces
override fun analyzeParent(point: ParentBlock, config: Meta): Values {
//Average count rates, do not sum events
val res = point.blocks
.map { it -> analyze(it, config) }
.mean(config.getEnum("mean", WEIGHTED))
val res = point.blocks.map { it -> analyze(it, config) }
val map = HashMap(res.asMap())
val map = HashMap(res.mean(config.getEnum("mean", WEIGHTED)).asMap())
if (point is NumassPoint) {
map[HV_KEY] = Value.of(point.voltage)
}
@ -122,6 +121,15 @@ class TimeAnalyzer(processor: SignalProcessor? = null) : AbstractAnalyzer(proces
*/
private fun List<Values>.mean(method: AveragingMethod): Values {
if(this.isEmpty()){
return ValueMap.Builder()
.putValue(LENGTH_KEY, 0)
.putValue(COUNT_KEY, 0)
.putValue(COUNT_RATE_KEY, 0)
.putValue(COUNT_RATE_ERROR_KEY, 0)
.build()
}
val totalTime = sumByDouble { it.getDouble(LENGTH_KEY) }
val (countRate, countRateDispersion) = when (method) {

View File

@ -12,6 +12,7 @@ import inr.numass.data.analyzers.TimeAnalyzer
import inr.numass.data.api.NumassPoint
import inr.numass.data.api.NumassSet
import inr.numass.data.api.SimpleNumassPoint
import inr.numass.data.channel
import inr.numass.data.storage.NumassStorageFactory
fun main(args: Array<String>) {
@ -22,7 +23,7 @@ fun main(args: Array<String>) {
dataDir = "D:\\Work\\Numass\\data\\2018_04"
}
val storage = NumassStorageFactory.buildLocal(context, "Fill_4/Scattering_1", true, false);
val storage = NumassStorageFactory.buildLocal(context, "Fill_4", true, false);
val meta = buildMeta {
"t0" to 3000
@ -30,7 +31,7 @@ fun main(args: Array<String>) {
"t0Step" to 100
"chunkSize" to 3000
"mean" to TimeAnalyzer.AveragingMethod.ARITHMETIC
"separateParallelBlocks" to true
//"separateParallelBlocks" to true
"window" to {
"lo" to 0
"up" to 4000
@ -49,12 +50,13 @@ fun main(args: Array<String>) {
val all = NumassDataUtils.join("sum", loaders)
val hvs = listOf(18500.0, 18600.0, 18995.0, 19000.0)//listOf(12000.0, 14000.0, 16000.0)//, 15000d, 15200d, 15400d, 15600d, 15800d]
val hvs = listOf(12000.0, 14000.0, 16000.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 = all.points.filter {
it.voltage == hv
it.voltage == hv && it.channel == 0
}.toList()
if (!points.isEmpty()) {
putStatic(