pixie16.ui.binary_browser package

pixie16.ui.binary_browser.app module

class pixie16.ui.binary_browser.app.BinaryApp(*args: Any, **kwargs: Any)

Bases: BaseApp

The main window

click_channel(channel, button)
open_file(filename=None) None
parse_data()
set_data_model()
tab_change(i)
update_channel_selection()
update_gui()

pixie16.ui.binary_browser.channel_select module

class pixie16.ui.binary_browser.channel_select.ChannelSelect(*args: Any, **kwargs: Any)

Bases: QHBoxLayout

Horizontal list of buttons that can be changed during runtime.

add_channels()
clear_channels()
update_button_status()

pixie16.ui.binary_browser.data_model module

class pixie16.ui.binary_browser.data_model.BinaryDataModel(*args: Any, **kwargs: Any)

Bases: QAbstractTableModel

Map list mode data to single values that are shown in a row/colum in the UI.

Data is stored in a list of pypixie.read.Events.

This class is needed to map entries from the already parsed binary data to cells in a QT table.

This can also be used to highlight or otherwise format the table cells as a function of the content.

columnCount(index)
data(index, role)

Return the data.

For some True/False data, we display an icon instead. To do this, we return no data in DisplayRole, but an icon for DecorationRole.

headerData(section, orientation, role)
icon_return(value)

Return a nice icon for True or False

rowCount(index)

pixie16.ui.binary_browser.fast_trigger module

class pixie16.ui.binary_browser.fast_trigger.FastTrigger(*args: Any, **kwargs: Any)

Bases: QWidget

Create all kind of traces that are calculated on the FPGA.

add_channels()
pick_channel(i)
show_hide(name, widget)
update_energies()

Calcuate energy distribution as described in Mauricio’s thesis.

The energy calculation here is based on 20 ns time steps so currently only SlowFilterRange=1 works.

See page 33 of Mauricio’s thesis for details.

Note: the pixie16 multiplies all energies by a factor of 4

update_energy_linearity()
update_fasttrigger()

Calculate and show the Fast Trigger signal and the threshold.

We also try to give a good estimmate for the trigger threshold, but this is only based on the 10 traces. For this we calcualte the standard derivation and maximum value from all traces up to 20 ns before the first calculated trigger.

Those values will also be used to estimate the baseline for the energy calculation. The triggers are also stored, so that they can be re-used for CFD and energy calculation.

update_traces(channel)

Show the traces in FPGA cycles.

We pick 10 traces for 10 different energies in the channels, plot them and store them, so they can be used for the other plots.