Psyllid
v1.12.4
Project 8 Data Acquisisition Software
|
A transformer that considers a sequence of triggered packets and decides what constitutes a contiguous event. More...
#include <event_builder.hh>
Public Types | |
typedef boost::circular_buffer< uint64_t > | pretrigger_buffer_t |
Public Member Functions | |
event_builder () | |
virtual | ~event_builder () |
mv_accessible (uint64_t, length) | |
mv_accessible (uint64_t, pretrigger) | |
mv_accessible (uint64_t, skip_tolerance) | |
mv_accessible (uint64_t, n_triggers) | |
virtual void | initialize () |
virtual void | execute (midge::diptera *a_midge=nullptr) |
virtual void | finalize () |
bool | is_triggered () const |
const pretrigger_buffer_t & | pretrigger_buffer () const |
const pretrigger_buffer_t & | skip_buffer () const |
Private Types | |
enum | state_t { untriggered, triggered, skipping, collecting_triggers } |
Private Member Functions | |
bool | write_output_from_ptbuff_front (bool a_flag, trigger_flag *a_data) |
bool | write_output_from_skipbuff_front (bool a_flag, trigger_flag *a_data) |
void | advance_output_stream (trigger_flag *a_write_flag, uint64_t a_id, bool a_trig_flag) |
Private Attributes | |
state_t | f_state |
pretrigger_buffer_t | f_pretrigger_buffer |
pretrigger_buffer_t | f_skip_buffer |
A transformer that considers a sequence of triggered packets and decides what constitutes a contiguous event.
Keeps track of the state of the packet sequence (is-triggered, or not).
When going from untriggered to triggered, adds some number of pretrigger packets.
Includes a skip tolerance for untriggered packets between two triggered packets.
In untriggered state, the flag and the high_threshold variables of the trigger flags are checked. Only if both are true the event builder switches state. If f_n_triggers > 1 the next state is collecting_triggers, otherwise triggered. In collecting_triggers state the event builder counts the incomming trigger flags with flag = true. Only if this count == f_n_triggers the state is switched to triggered.
Events are built by switching some untriggered packets to triggered packets according to the pretrigger and skip-tolerance parameters. Contiguous sequences of triggered packets constitute events.
Parameter setting is not thread-safe. Executing is thread-safe.
The cofigurable value "time-length" in the tf_roach_receiver must be set to a value greater than "pretrigger" and "skip-tolerance" (+5 is advised). Otherwise the time domain buffer gets filled and blocks further packet processing.
Node type: "packet-receiver-socket"
Available configuration values:
Input Streams:
Output Streams:
Definition at line 68 of file event_builder.hh.
typedef boost::circular_buffer< uint64_t > pretrigger_buffer_t |
Definition at line 72 of file event_builder.hh.
|
strongprivate |
Enumerator | |
---|---|
untriggered | |
triggered | |
skipping | |
collecting_triggers |
Definition at line 102 of file event_builder.hh.
event_builder | ( | ) |
Definition at line 20 of file event_builder.cc.
|
virtual |
Definition at line 31 of file event_builder.cc.
|
private |
Definition at line 557 of file event_builder.cc.
|
virtual |
Definition at line 43 of file event_builder.cc.
|
virtual |
Definition at line 566 of file event_builder.cc.
|
virtual |
Definition at line 35 of file event_builder.cc.
|
inline |
Definition at line 111 of file event_builder.hh.
mv_accessible | ( | uint64_t | , |
length | |||
) |
mv_accessible | ( | uint64_t | , |
pretrigger | |||
) |
mv_accessible | ( | uint64_t | , |
skip_tolerance | |||
) |
mv_accessible | ( | uint64_t | , |
n_triggers | |||
) |
|
inline |
Definition at line 116 of file event_builder.hh.
|
inline |
Definition at line 120 of file event_builder.hh.
|
inlineprivate |
Definition at line 125 of file event_builder.hh.
|
inlineprivate |
Definition at line 139 of file event_builder.hh.
|
private |
Definition at line 105 of file event_builder.hh.
|
private |
Definition at line 106 of file event_builder.hh.
|
private |
Definition at line 103 of file event_builder.hh.