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

Public Member Functions

None __init__ (self, str filename, int verbosity=0, bool batch_mode=False)
 
NDArray[tp_dt__getitem__ (self, int|str key)
 
None __setitem__ (self, int|str key, NDArray[tp_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

 tp_data = np.array([], dtype=self.tp_dt)
 
int tp_data = 2:
 
- 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

 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 TP fragments within.

Loading fragments appends to :self.tp_data:. The
NumPy dtypes of :self.tp_data: is available as
:TPReader.tp_dt:.

TP 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 TPReader.py.

Constructor & Destructor Documentation

◆ __init__()

None trgtools.TPReader.TPReader.__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 39 of file TPReader.py.

39 def __init__(self, filename: str, verbosity: int = 0, batch_mode: bool = False) -> None:
40 """
41 Loads a given HDF5 file.
42
43 Parameters:
44 filename (str): HDF5 file to open.
45 verbosity (int): Verbose level. 0: Only errors. 1: Warnings. 2: All.
46
47 Returns nothing.
48 """
49 super().__init__(filename, verbosity, batch_mode)
50 self.tp_data = np.array([], dtype=self.tp_dt)
51 return None
52

Member Function Documentation

◆ __getitem__()

NDArray[tp_dt] trgtools.TPReader.TPReader.__getitem__ ( self,
int | str key )

Definition at line 53 of file TPReader.py.

53 def __getitem__(self, key: int | str) -> NDArray[tp_dt]:
54 return self.tp_data[key]
55

◆ __len__()

int trgtools.TPReader.TPReader.__len__ ( self)

Definition at line 60 of file TPReader.py.

60 def __len__(self) -> int:
61 return len(self.tp_data)
62

◆ __setitem__()

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

Definition at line 56 of file TPReader.py.

56 def __setitem__(self, key: int | str, value: NDArray[tp_dt]) -> None:
57 self.tp_data[key] = value
58 return
59

◆ _filter_fragment_paths()

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

Reimplemented from trgtools.HDF5Reader.HDF5Reader.

Definition at line 63 of file TPReader.py.

63 def _filter_fragment_paths(self) -> None:
64 """ Filter the fragment paths for TAs. """
65 fragment_paths = []
66
67 # TA fragment paths contain their name in the path.
68 for path in self._fragment_paths:
69 if "Trigger_Primitive" in path:
70 fragment_paths.append(path)
71
72 self._fragment_paths = fragment_paths
73 return None
74

◆ clear_data()

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

Reimplemented from trgtools.HDF5Reader.HDF5Reader.

Definition at line 128 of file TPReader.py.

128 def clear_data(self) -> None:
129 self.tp_data = np.array([], dtype=self.tp_dt)

◆ read_fragment()

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

Returns a np.ndarray of the TPs that were read and appends to
:self.tp_data:.

Reimplemented from trgtools.HDF5Reader.HDF5Reader.

Definition at line 75 of file TPReader.py.

75 def read_fragment(self, fragment_path: str) -> NDArray:
76 """
77 Read from the given data fragment path.
78
79 Returns a np.ndarray of the TPs that were read and appends to
80 :self.tp_data:.
81 """
82 if self._verbosity >= 2:
83 print("="*60)
84 print(f"INFO: Reading from the path\n{fragment_path}")
85
86 fragment = self._h5_file.get_frag(fragment_path)
87 fragment_data_size = fragment.get_data_size()
88
89 if fragment_data_size == 0:
90 self._num_empty += 1
91 if self._verbosity >= 1:
92 print(
93 self._FAIL_TEXT_COLOR
94 + self._BOLD_TEXT
95 + "WARNING: Empty fragment. Returning empty array."
96 + self._END_TEXT_COLOR
97 )
98 print("="*60)
99 return np.array([], dtype=self.tp_dt)
100
101 tp_size = trgdataformats.TriggerPrimitive.sizeof()
102 num_tps = fragment_data_size // tp_size
103 if self._verbosity >= 2:
104 print(f"INFO: Loaded fragment with {num_tps} TPs.")
105
106 np_tp_data = np.zeros((num_tps,), dtype=self.tp_dt)
107 for idx, byte_idx in enumerate(range(0, fragment_data_size, tp_size)): # Increment by TP size
108 tp_datum = trgdataformats.TriggerPrimitive(fragment.get_data(byte_idx))
109
110 np_tp_data[idx] = np.array([(
111 tp_datum.adc_integral,
112 tp_datum.adc_peak,
113 tp_datum.channel,
114 tp_datum.detid,
115 tp_datum.flag,
116 tp_datum.samples_over_threshold,
117 tp_datum.samples_to_peak,
118 tp_datum.time_start,
119 tp_datum.version)],
120 dtype=self.tp_dt)
121 self.tp_data = np.hstack((self.tp_data, np_tp_data))
122
123 if self._verbosity >= 2:
124 print("INFO: Finished reading.")
125 print("="*60)
126 return np_tp_data
127

Member Data Documentation

◆ _fragment_paths

trgtools.TPReader.TPReader._fragment_paths = []
protected

Definition at line 68 of file TPReader.py.

◆ tp_data [1/2]

trgtools.TPReader.TPReader.tp_data = np.array([], dtype=self.tp_dt)

Definition at line 50 of file TPReader.py.

◆ tp_data [2/2]

int trgtools.TPReader.TPReader.tp_data = 2:

Definition at line 121 of file TPReader.py.

◆ tp_dt

trgtools.TPReader.TPReader.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 27 of file TPReader.py.


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