File tree Expand file tree Collapse file tree 1 file changed +41
-1
lines changed Expand file tree Collapse file tree 1 file changed +41
-1
lines changed Original file line number Diff line number Diff line change 2
2
Module provides LEGEND internal functions
3
3
"""
4
4
5
+ from __future__ import annotations
6
+
7
+ from collections .abc import Sequence
5
8
from importlib import import_module
6
9
7
- from lgdo .lh5 import utils
10
+ import numpy as np
11
+ from lgdo import types
12
+
13
+ from .. import utils
8
14
9
15
10
16
def metadata (params : dict ) -> list :
@@ -34,3 +40,37 @@ def metadata(params: dict) -> list:
34
40
== params ["selectors" ][k ]
35
41
]
36
42
return tmp
43
+
44
+
45
+ def convert_rawid (
46
+ datainfo : utils .DataInfo ,
47
+ tcm : utils .TCMData ,
48
+ table_names : Sequence [str ],
49
+ channel_mapping : dict ,
50
+ * ,
51
+ rawid_obj : types .VectorOfVectors | types .Array ,
52
+ ):
53
+ """Convert rawid to channel number."""
54
+
55
+ if isinstance (rawid_obj , types .VectorOfVectors ):
56
+ rawids = rawid_obj .flattened_data .nda
57
+ detector = np .array (
58
+ [
59
+ channel_mapping [datainfo .hit .table_fmt .replace ("{}" , str (rawid ))]
60
+ for rawid in rawids
61
+ ]
62
+ )
63
+ return types .VectorOfVectors (
64
+ flattened_data = detector , cumulative_length = rawid_obj .cumulative_length
65
+ )
66
+ elif isinstance (rawid_obj , types .Array ):
67
+ rawids = rawid_obj .nda
68
+ detector = np .array (
69
+ [
70
+ channel_mapping [datainfo .hit .table_fmt .replace ("{}" , str (rawid ))]
71
+ for rawid in rawids
72
+ ]
73
+ )
74
+ return types .Array (detector )
75
+ else :
76
+ raise TypeError ("rawid_obj must be a VectorOfVectors or Array" )
You can’t perform that action at this time.
0 commit comments