DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
trgtools.TAReader.TAReader Class Reference
Inheritance diagram for trgtools.TAReader.TAReader:
[legend]
Collaboration diagram for trgtools.TAReader.TAReader:
[legend]

Public Member Functions

None __init__ (self, str filename, int verbosity=0, bool batch_mode=False)
 
NDArray[ta_dt__getitem__ (self, int|str key)
 
None __setitem__ (self, int|str key, NDArray[ta_dt] value)
 
int __len__ (self)
 
NDArray read_fragment (self, str fragment_path)
 
None clear_data (self)
 
- Public Member Functions inherited from trgtools.HDF5Reader.HDF5Reader
list[str] get_fragment_paths (self)
 
None set_fragment_paths (self, list[str] fragment_paths)
 
None read_all_fragments (self)
 
None reset_fragment_paths (self)
 

Public Attributes

 ta_data = np.array([], dtype=self.ta_dt)
 
list tp_data = []
 
- Public Attributes inherited from trgtools.HDF5Reader.HDF5Reader
 run_id = self._h5_file.get_int_attribute('run_number')
 
 file_index = self._h5_file.get_int_attribute('file_index')
 

Static Public Attributes

 ta_dt
 
 tp_dt
 

Protected Member Functions

None _filter_fragment_paths (self)
 
- Protected Member Functions inherited from trgtools.HDF5Reader.HDF5Reader

Protected Attributes

 _fragment_paths = []
 
- Protected Attributes inherited from trgtools.HDF5Reader.HDF5Reader
 _h5_file = HDF5RawDataFile(filename)
 
 _fragment_paths = self._h5_file.get_all_fragment_dataset_paths()
 
 _verbosity = verbosity
 
int _num_empty = 0
 
 _batch_mode = batch_mode
 

Additional Inherited Members

- Static Protected Attributes inherited from trgtools.HDF5Reader.HDF5Reader
str _FAIL_TEXT_COLOR = '\033[91m'
 
str _WARNING_TEXT_COLOR = '\033[93m'
 
str _BOLD_TEXT = '\033[1m'
 
str _END_TEXT_COLOR = '\033[0m'
 

Detailed Description

Class that reads a given HDF5 data file and can
process the TA fragments within.

Loading fragments appends to :self.ta_data: and :self.tp_data:.
NumPy dtypes of :self.ta_data: and :self.tp_data: are available
as :TAReader.ta_dt: and :TAReader.tp_dt:.

TA reading can print information that is relevant about the
loading process by specifying the verbose level. 0 for errors
only. 1 for warnings. 2 for all information.

Definition at line 13 of file TAReader.py.

Constructor & Destructor Documentation

◆ __init__()

None trgtools.TAReader.TAReader.__init__ ( self,
str filename,
int verbosity = 0,
bool batch_mode = False )
Loads a given HDF5 file.

Parameters:
    filename (str): HDF5 file to open.
    verbosity (int): Verbose level. 0: Only errors. 1: Warnings. 2: All.

Returns nothing.

Reimplemented from trgtools.HDF5Reader.HDF5Reader.

Definition at line 58 of file TAReader.py.

58 def __init__(self, filename: str, verbosity: int = 0, batch_mode: bool = False) -> None:
59 """
60 Loads a given HDF5 file.
61
62 Parameters:
63 filename (str): HDF5 file to open.
64 verbosity (int): Verbose level. 0: Only errors. 1: Warnings. 2: All.
65
66 Returns nothing.
67 """
68 super().__init__(filename, verbosity, batch_mode)
69 self.ta_data = np.array([], dtype=self.ta_dt)
70 self.tp_data = []
71 return None
72

Member Function Documentation

◆ __getitem__()

NDArray[ta_dt] trgtools.TAReader.TAReader.__getitem__ ( self,
int | str key )

Definition at line 73 of file TAReader.py.

73 def __getitem__(self, key: int | str) -> NDArray[ta_dt]:
74 return self.ta_data[key]
75

◆ __len__()

int trgtools.TAReader.TAReader.__len__ ( self)

Definition at line 80 of file TAReader.py.

80 def __len__(self) -> int:
81 return len(self.ta_data)
82

◆ __setitem__()

None trgtools.TAReader.TAReader.__setitem__ ( self,
int | str key,
NDArray[ta_dt] value )

Definition at line 76 of file TAReader.py.

76 def __setitem__(self, key: int | str, value: NDArray[ta_dt]) -> None:
77 self.ta_data[key] = value
78 return
79

◆ _filter_fragment_paths()

None trgtools.TAReader.TAReader._filter_fragment_paths ( self)
protected
 Filter the fragment paths for TAs. 

Reimplemented from trgtools.HDF5Reader.HDF5Reader.

Definition at line 83 of file TAReader.py.

83 def _filter_fragment_paths(self) -> None:
84 """ Filter the fragment paths for TAs. """
85 fragment_paths = []
86
87 # TA fragment paths contain their name in the path.
88 for path in self._fragment_paths:
89 if "Trigger_Activity" in path:
90 fragment_paths.append(path)
91
92 self._fragment_paths = fragment_paths
93 return None
94

◆ clear_data()

None trgtools.TAReader.TAReader.clear_data ( self)
 Clear the contents of the member data. 

Reimplemented from trgtools.HDF5Reader.HDF5Reader.

Definition at line 176 of file TAReader.py.

176 def clear_data(self) -> None:
177 self.ta_data = np.array([], dtype=self.ta_dt)
178 self.tp_data = []

◆ read_fragment()

NDArray trgtools.TAReader.TAReader.read_fragment ( self,
str fragment_path )
Read from the given data fragment path.

Returns a np.ndarray of the first TA that was read and appends all TAs in the fragment to :self.ta_data:.

Reimplemented from trgtools.HDF5Reader.HDF5Reader.

Definition at line 95 of file TAReader.py.

95 def read_fragment(self, fragment_path: str) -> NDArray:
96 """
97 Read from the given data fragment path.
98
99 Returns a np.ndarray of the first TA that was read and appends all TAs in the fragment to :self.ta_data:.
100 """
101 if self._verbosity >= 2:
102 print("="*60)
103 print(f"INFO: Reading from the path\n{fragment_path}")
104
105 fragment = self._h5_file.get_frag(fragment_path)
106 fragment_data_size = fragment.get_data_size()
107 trigger_number = fragment.get_trigger_number()
108
109 if fragment_data_size == 0:
110 self._num_empty += 1
111 if self._verbosity >= 1:
112 print(
113 self._FAIL_TEXT_COLOR
114 + self._BOLD_TEXT
115 + "WARNING: Empty fragment. Returning empty array."
116 + self._END_TEXT_COLOR
117 )
118 print("="*60)
119 return np.array([], dtype=self.ta_dt)
120
121 ta_idx = 0 # Debugging output.
122 byte_idx = 0 # Variable TA sizing, must do while loop.
123 while byte_idx < fragment_data_size:
124 if self._verbosity >= 2:
125 print(f"INFO: Fragment Index: {ta_idx}.")
126 ta_idx += 1
127 print(f"INFO: Byte Index / Frag Size: {byte_idx} / {fragment_data_size}")
128
129 # Read TA data
130 ta_datum = trgdataformats.TriggerActivity(fragment.get_data(byte_idx))
131 np_ta_datum = np.array([(
132 ta_datum.data.adc_integral,
133 ta_datum.data.adc_peak,
134 ta_datum.data.algorithm,
135 ta_datum.data.channel_end,
136 ta_datum.data.channel_peak,
137 ta_datum.data.channel_start,
138 np.uint16(ta_datum.data.detid),
139 ta_datum.n_inputs(),
140 ta_datum.data.time_activity,
141 ta_datum.data.time_end,
142 ta_datum.data.time_peak,
143 ta_datum.data.time_start,
144 ta_datum.data.type,
145 np.uint16(ta_datum.data.version),
146 trigger_number)],
147 dtype=self.ta_dt)
148
149 self.ta_data = np.hstack((self.ta_data, np_ta_datum))
150
151 byte_idx += ta_datum.sizeof()
152 if self._verbosity >= 2:
153 print(f"INFO: Upcoming byte index: {byte_idx}")
154
155 # Process TP data
156 np_tp_data = np.zeros(np_ta_datum['num_tps'], dtype=self.tp_dt)
157 for tp_idx, tp in enumerate(ta_datum):
158 np_tp_data[tp_idx] = np.array([(
159 tp.adc_integral,
160 tp.adc_peak,
161 tp.channel,
162 tp.detid,
163 tp.flag,
164 tp.samples_over_threshold,
165 tp.samples_to_peak,
166 tp.time_start,
167 tp.version)],
168 dtype=self.tp_dt)
169 self.tp_data.append(np_tp_data) # Jagged array
170
171 if self._verbosity >= 2:
172 print("INFO: Finished reading.")
173 print("="*60)
174 return np_ta_datum
175

Member Data Documentation

◆ _fragment_paths

trgtools.TAReader.TAReader._fragment_paths = []
protected

Definition at line 88 of file TAReader.py.

◆ ta_data

trgtools.TAReader.TAReader.ta_data = np.array([], dtype=self.ta_dt)

Definition at line 69 of file TAReader.py.

◆ ta_dt

trgtools.TAReader.TAReader.ta_dt
static
Initial value:
= np.dtype([
('adc_integral', np.uint64),
('adc_peak', np.uint64),
('algorithm', trgdataformats.TriggerActivityData.Algorithm),
('channel_end', np.int32),
('channel_peak', np.int32),
('channel_start', np.int32),
('detid', np.uint16),
('num_tps', np.uint64), # Greedy
('time_activity', np.uint64),
('time_end', np.uint64),
('time_peak', np.uint64),
('time_start', np.uint64),
('type', trgdataformats.TriggerActivityData.Type),
('version', np.uint16),
('trigger_number', np.uint64)
])

Definition at line 27 of file TAReader.py.

◆ tp_data

list trgtools.TAReader.TAReader.tp_data = []

Definition at line 70 of file TAReader.py.

◆ tp_dt

trgtools.TAReader.TAReader.tp_dt
static
Initial value:
= np.dtype([
('adc_integral', np.uint32),
('adc_peak', np.uint16),
('channel', np.uint32),
('detid', np.uint8),
('flag', np.uint8),
('samples_over_threshold', np.uint16),
('samples_to_peak', np.uint16),
('time_start', np.uint64),
('version', np.uint8)
])

Definition at line 46 of file TAReader.py.


The documentation for this class was generated from the following file: