|
DUNE-DAQ
DUNE Trigger and Data Acquisition software
|
TPG driving class. More...
#include <TPGenerator.hpp>
Public Member Functions | |
| void | configure (const std::vector< std::pair< std::string, nlohmann::json > > &configs, const std::vector< std::pair< dunedaq::trgdataformats::channel_t, int16_t > > channel_plane_numbers, const float sample_tick_difference) |
| Setup and configure the AVX pipelines. | |
| void | reset () |
| Remove all pipelines and reset member variables to default state. | |
| void | set_sot_minima (const std::vector< uint16_t > &sot_minima) |
| Set the minimum samples over threshold for a TP according to plane. | |
| std::vector< std::pair< std::shared_ptr< AbstractProcessor< __m256i > >, int > > | get_all_processor_references_with_pipeline_index () |
| Return reference to all processors, under all pipelines, where the index of the pipeline is tagged along with the reference. | |
| template<typename T > | |
| std::vector< dunedaq::trgdataformats::TriggerPrimitive > | operator() (const T *frame) |
| Driving function for the TPG. | |
Private Member Functions | |
| __m256i | expand_frame (const __m256i ®i) |
| __m256i | old_expand_frame (const __m256i ®i) |
| Expansion from 14-bit signals to 16-bit. | |
Private Attributes | |
| bool | m_configured {false} |
| uint8_t | m_num_pipelines = 0 |
| std::vector< AVXPipeline > | m_tpg_pipelines |
| float | m_sample_tick_difference = 0 |
| std::vector< uint16_t > | m_sot_minima {1,1,1} |
Static Private Attributes | |
| static const uint8_t | m_num_channels_per_pipeline = 16 |
TPG driving class.
This is the interface that receives raw data frames to process and outputs the TPs accordingly.
Definition at line 31 of file TPGenerator.hpp.
| void tpglibs::TPGenerator::configure | ( | const std::vector< std::pair< std::string, nlohmann::json > > & | configs, |
| const std::vector< std::pair< dunedaq::trgdataformats::channel_t, int16_t > > | channel_plane_numbers, | ||
| const float | sample_tick_difference ) |
Setup and configure the AVX pipelines.
| configs | A vector of pairs: AVX pipeline to use and its configuration. |
| channel_plane_numbers | A vector of channel numbers and their plane numbers. |
| sample_tick_difference | Number of ticks between time samples in expected data frames. |
Definition at line 14 of file TPGenerator.cpp.
|
private |
Definition at line 63 of file TPGenerator.cpp.
| std::vector< std::pair< std::shared_ptr< AbstractProcessor< __m256i > >, int > > tpglibs::TPGenerator::get_all_processor_references_with_pipeline_index | ( | ) |
Return reference to all processors, under all pipelines, where the index of the pipeline is tagged along with the reference.
Definition at line 36 of file TPGenerator.cpp.
|
private |
Expansion from 14-bit signals to 16-bit.
Definition at line 83 of file TPGenerator.cpp.
|
inline |
Driving function for the TPG.
This function receives the frames, expands, sends down AVX pipelines, and returns TPs that were generated.
| frame | A data frame to process and generate TPs from. |
Definition at line 80 of file TPGenerator.hpp.
| void tpglibs::TPGenerator::reset | ( | ) |
Remove all pipelines and reset member variables to default state.
Definition at line 48 of file TPGenerator.cpp.
| void tpglibs::TPGenerator::set_sot_minima | ( | const std::vector< uint16_t > & | sot_minima | ) |
Set the minimum samples over threshold for a TP according to plane.
| sot_minima | TPs from plane i will have at least sot_minima[i] value for its samples_over_threshold. |
Definition at line 57 of file TPGenerator.cpp.
|
private |
Definition at line 33 of file TPGenerator.hpp.
|
staticprivate |
Definition at line 32 of file TPGenerator.hpp.
|
private |
Definition at line 34 of file TPGenerator.hpp.
|
private |
Definition at line 36 of file TPGenerator.hpp.
|
private |
Definition at line 37 of file TPGenerator.hpp.
|
private |
Definition at line 35 of file TPGenerator.hpp.