pflib v3.12.0-1-g716e801
Pretty Fine HGCROC Interaction Library
Loading...
Searching...
No Matches
pflib::TRIG Class Referenceabstract

Trigger path management interface. More...

#include <TRIG.h>

Inheritance diagram for pflib::TRIG:
[legend]

Public Member Functions

virtual void reset ()
 Reset the internals.
 
virtual int n_elinks () const =0
 How many elinks are there?
 
virtual void setup_alignment_capture (int delay)=0
 Set up the alignment capture function.
 
virtual int get_alignment_capture ()=0
 Get the alignment capture function.
 
virtual std::vector< uint32_t > read_capture_buffer (int ilink)=0
 Read the capture block for the given elink.
 
virtual void set_bx_delay (int ilink, int delay)=0
 Set the BX delay for the given elink.
 
virtual int get_bx_delay (int ilink)=0
 Get the BX delay for the given elink.
 
void set_l1a_per_ror (int l1a_per_ror)
 
int get_l1a_per_ror () const
 
virtual void setup_daq (int pipeline, int econ_id, int samples_per_l1a, int presamples)=0
 Setup the data collection of raw trigger data path.
 
virtual void get_daq_setup (int &pipeline, int &econ_id, int &samples_per_l1a, int &presamples)=0
 get the data collection setup
 
virtual bool is_sample_available ()=0
 Is there a sample available?
 
virtual std::vector< uint32_t > read_sample ()=0
 Read the next sample of raw trigger path data.
 
std::vector< uint32_t > read_event ()
 Read l1a_per_ror() number of samples and concatenate them into the same buffer.
 
virtual void setup_algo (const std::vector< uint32_t > &parameters)=0
 configure the trigger algorithm
 
virtual std::vector< uint32_t > get_algo_setup ()=0
 get the trigger algorithm configuration
 
virtual bool is_algo_output_available ()=0
 Is there trigger algorithm output data?
 
virtual std::vector< uint32_t > read_algo_output_sample ()=0
 read the next sample of the output of the trigger algorithm
 
std::vector< uint32_t > read_algo_output ()
 read l1a_per_ror() number of samples of the algo output and concatenate them into the same buffer
 
virtual bool get_enable_single_shot ()=0
 
virtual int get_self_trigger_count ()=0
 
virtual void enable_single_shot (bool enable=true)=0
 
virtual bool single_shot_fired ()=0
 
virtual void reset_single_shot ()=0
 

Private Attributes

int l1a_per_ror_ {0}
 

Detailed Description

Trigger path management interface.

In full-detector configuration, the trigger path is handled mostly-independently from PFLIB. However, for teststand and debugging, the trigger path may be integrated into the same FPGA as the DAQ, motivating this software block.

Member Function Documentation

◆ get_algo_setup()

virtual std::vector< uint32_t > pflib::TRIG::get_algo_setup ( )
pure virtual

get the trigger algorithm configuration

Implemented in pflib::zcu::ZCUtrig.

◆ get_alignment_capture()

virtual int pflib::TRIG::get_alignment_capture ( )
pure virtual

Get the alignment capture function.

Implemented in pflib::zcu::ZCUtrig.

◆ get_bx_delay()

virtual int pflib::TRIG::get_bx_delay ( int ilink)
pure virtual

Get the BX delay for the given elink.

Implemented in pflib::zcu::ZCUtrig.

◆ get_daq_setup()

virtual void pflib::TRIG::get_daq_setup ( int & pipeline,
int & econ_id,
int & samples_per_l1a,
int & presamples )
pure virtual

get the data collection setup

Implemented in pflib::zcu::ZCUtrig.

◆ is_algo_output_available()

virtual bool pflib::TRIG::is_algo_output_available ( )
pure virtual

Is there trigger algorithm output data?

Implemented in pflib::zcu::ZCUtrig.

◆ is_sample_available()

virtual bool pflib::TRIG::is_sample_available ( )
pure virtual

Is there a sample available?

Implemented in pflib::zcu::ZCUtrig.

◆ n_elinks()

virtual int pflib::TRIG::n_elinks ( ) const
pure virtual

How many elinks are there?

Implemented in pflib::zcu::ZCUtrig.

◆ read_algo_output_sample()

virtual std::vector< uint32_t > pflib::TRIG::read_algo_output_sample ( )
pure virtual

read the next sample of the output of the trigger algorithm

Implemented in pflib::zcu::ZCUtrig.

◆ read_capture_buffer()

virtual std::vector< uint32_t > pflib::TRIG::read_capture_buffer ( int ilink)
pure virtual

Read the capture block for the given elink.

Implemented in pflib::zcu::ZCUtrig.

◆ read_sample()

virtual std::vector< uint32_t > pflib::TRIG::read_sample ( )
pure virtual

Read the next sample of raw trigger path data.

Implemented in pflib::zcu::ZCUtrig.

◆ reset()

virtual void pflib::TRIG::reset ( )
inlinevirtual

Reset the internals.

Reimplemented in pflib::zcu::ZCUtrig.

◆ set_bx_delay()

virtual void pflib::TRIG::set_bx_delay ( int ilink,
int delay )
pure virtual

Set the BX delay for the given elink.

Implemented in pflib::zcu::ZCUtrig.

◆ set_l1a_per_ror()

void pflib::TRIG::set_l1a_per_ror ( int l1a_per_ror)
Parameters
[in]l1a_per_rornumber of L1A sent per ReadOut Request This setting should be copied in from tgt->daq().samples_per_ror().

◆ setup_algo()

virtual void pflib::TRIG::setup_algo ( const std::vector< uint32_t > & parameters)
pure virtual

configure the trigger algorithm

The implementation defines which indices correspond to which parameters since it depends on the target and firmware that is in use.

Implemented in pflib::zcu::ZCUtrig.

◆ setup_alignment_capture()

virtual void pflib::TRIG::setup_alignment_capture ( int delay)
pure virtual

Set up the alignment capture function.

Implemented in pflib::zcu::ZCUtrig.

◆ setup_daq()

virtual void pflib::TRIG::setup_daq ( int pipeline,
int econ_id,
int samples_per_l1a,
int presamples )
pure virtual

Setup the data collection of raw trigger data path.

Parameters
[in]pipelinehow far back in time (in BX) we should start the capture
[in]econ_idid number for ECON-T we are capturing from
[in]samples_per_l1ahow many samples to caputre per L1A
[in]presamplesnumber of samples before the BX of interest (i.e. index of sample of interest)

Implemented in pflib::zcu::ZCUtrig.


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