Parsing of HRV and FIFO status words
As suggested in https://git.km3net.de/working_groups/operations/-/issues/7#note_18002 it is possible that there is an error in the parsing of the HRV and FIFO status words.
In particular, PMT 30 seems to never show the veto flag(s) when it should.
Activity
-
Newest first Oldest first
-
Show all activity Show comments only Show history only
- Author Developer
Here is the script I quickly adapted from @mcolomermolla : test_veto_consistency.py
Thanks for the report. That stuff is actually quite well tested (by @jschumann) so I am wondering what's happening: https://git.km3net.de/km3py/km3io/-/blob/master/tests/test_online.py#L351
Can someone cross check the values using Jpp?
According to @mdejong output file, the following line shows module ID
808981672
where the channel rate in kHz and the HRV and FIFO flags are printed one after an other for each PMT channel for summaryslice167941
inKM3NeT_00000049_00008456.root
.808981672 46.3 10 30.9 10 50.2 10 211.1 10 129.7 10 26.9 10 229.0 10 21.7 10 46.3 10 23.5 10 69.5 10 39.4 10 133.2 10 2000.0 10 2000.0 01 2000.0 01 67.7 10 116.3 10 1043.9 10 2000.0 01 119.5 10 2000.0 01 2000.0 01 2000.0 01 2000.0 01 2000.0 01 2000.0 01 71.4 10 607.3 10 2000.0 01 2000.0 01
The readout in
km3io
looks correct:[ins] In [1]: import km3io [ins] In [2]: import numpy as np [ins] In [3]: r = km3io.OnlineReader("/home/tgal/data/irods/KM3NeT_00000049_00008456.root") [ins] In [4]: summaryslice = r.summaryslices.slices[167941] [ins] In [5]: dom_id = 808981672 [ins] In [6]: dom_id_idx = np.where(summaryslice.dom_id == dom_id)[0][0] [ins] In [7]: km3io.online.get_rate(summaryslice.ch0[dom_id_idx]) Out[7]: 46316 [ins] In [8]: km3io.online.get_rate(summaryslice.ch1[dom_id_idx]) Out[8]: 30850 [ins] In [9]: km3io.online.get_rate(summaryslice.ch30[dom_id_idx]) Out[9]: 1999999 [ins] In [10]: km3io.online.get_channel_flags(summaryslice.hrv[dom_id_idx]) Out[10]: array([ True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, True, True, True, False, True, False, False, False, False, False, False, True, True, False, False]) [ins] In [11]: km3io.online.get_channel_flags(summaryslice.fifo[dom_id_idx]) Out[11]: array([False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, False, False, False, True, False, True, True, True, True, True, True, False, False, True, False])
- Tamas Gal closed
closed
Alright @mlincetto and @mcolomermolla, so I launched the script and I see:
░ tgal@staticbox:~/data/irods km3io ░ 17:21:35 > python test_veto_consistency.py Time slice for search: 167941 DOM 0 PMT 30 rate 38316.0 DOM 11 PMT 30 rate 42701.0 DOM 34 PMT 30 rate 50237.0 DOM 36 PMT 30 rate 26222.0 DOM 56 PMT 30 rate 284427.0 DOM 67 PMT 30 rate 20549.0 DOM 68 PMT 30 rate 1484629.0 DOM 74 PMT 30 rate 22900.0 DOM 76 PMT 30 rate 1999999.0 DOM 80 PMT 30 rate 26942.0 DOM 90 PMT 30 rate 33462.0 DOM 101 PMT 30 rate 31697.0 The number of high rate PMTs not in HRV with rate > 20 kHz is: 12
and to me the output looks what I get from my quick REPL session.
To wrap up: we are talking about e.g. DOM ID
806451572
, which has a rate of 38kHz on PMT channel 30.It seems that indeed both FIFO and HRV are set to
False
whereas in the Jpp output I see10
(HRV FIFO):[ins] In [38]: summaryslice.dom_id Out[38]: array([806451572, 806455814, 806465101, 806469630, 806472265, 806483369, 806487219, 806487226, 806487231, 808432835, 808435278, 808447180, 808447186, 808451904, 808451907, 808451916, 808468425, 808469129, 808469947, 808472260, 808472265, 808475060, 808488895, 808488990, 808489014, 808489117, 808493910, 808946818, 808949742, 808949744, 808951460, 808952697, 808956908, 808956919, 808956920, 808956925, 808957006, 808959411, 808960332, 808961448, 808961480, 808961504, 808961655, 808963149, 808964815, 808964852, 808964883, 808964908, 808966194, 808969848, 808969857, 808969860, 808971294, 808971812, 808972593, 808972598, 808972698, 808974721, 808974758, 808974773, 808974811, 808974972, 808976172, 808976219, 808976377, 808976933, 808977319, 808977572, 808978694, 808978703, 808979185, 808979567, 808979721, 808979729, 808981510, 808981523, 808981672, 808981812, 808981864, 808982005, 808982018, 808982041, 808982066, 808982077, 808982547, 808984711, 808987016, 808987107, 808987806, 808988327, 808988794, 808996773, 808997243, 808997793, 809006037, 809007627, 809503416, 809521500, 809524432, 809526097, 809537130, 809544058, 809544061], dtype=int32) [ins] In [39]: km3io.online.get_channel_flags(summaryslice.hrv[0])[30] Out[39]: False [ins] In [40]: km3io.online.get_channel_flags(summaryslice.fifo[0])[30] Out[40]: False
Let's reopen this...
- Tamas Gal reopened
reopened
I am really puzzled since this is Jpp:
806451572 53.0 10 28.4 10 200.0 10 24.8 10 20.0 10 67.7 10 22.3 10 10.7 00 23.5 10 17.5 00 21.1 10 12.3 00 14.1 00 16.1 00 14.1 00 20.5 10 10.4 00 12.0 00 12.6 00 14.8 00 10.4 00 17.0 00 14.4 00 18.4 00 13.7 00 16.5 00 13.3 00 37.3 10 36.3 10 16.5 00 38.3 10
and this is what I get with
km3io
:[ins] In [42]: km3io.online.get_channel_flags(summaryslice.hrv[0]) Out[42]: array([ True, True, True, True, True, True, True, False, True, False, True, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, True, True, False, False])
and only the very last element is "wrong" (
False
insteadTrue
).Edited by Tamas Gal- Tamas Gal created merge request !40 (merged) to address this issue
created merge request !40 (merged) to address this issue
- Tamas Gal mentioned in merge request !40 (merged)
mentioned in merge request !40 (merged)
- Tamas Gal closed with merge request !40 (merged)
closed with merge request !40 (merged)