pflib v3.9.4-7-gb2e7f4f
Pretty Fine HGCROC Interaction Library
Loading...
Searching...
No Matches
pflib::EcalModule Class Reference

Class holding a set of ROCs and ECONs representing a HexaModule. More...

#include <Ecal.h>

Collaboration diagram for pflib::EcalModule:
[legend]

Public Member Functions

 EcalModule (lpGBT &lpgbt, int i2cbus, int modulenumber, uint8_t roc_mask)
 Construct access to an EcalModule given the DAQ lpGBT it talks through.
 
int nrocs () const
 number of hgcrocs
 
int necons () const
 number of econs
 
bool have_roc (int iroc) const
 do we have a roc with this id?
 
bool have_econ (int iecon) const
 do we have an econ with this id?
 
std::vector< int > roc_ids () const
 get a list of the IDs we have set up
 
std::vector< int > econ_ids () const
 get a list of the econ IDs we have set up
 
ROCroc (int which)
 Get a ROC interface for the given HGCROC.
 
ECONecon (int which)
 get a ECON interface for the given ECON
 
void hardResetROCs ()
 Generate a hard reset to all the HGCROC boards.
 
void hardResetECONs ()
 generate a hard reset to all the ECON boards
 
void softResetROC ()
 Generate a soft reset.
 
void softResetECON ()
 Generate a soft reset.
 

Static Public Member Functions

static const std::vector< std::pair< int, int > > & getRocErxMapping ()
 Get the mapping of ROC channels to ERX channels.
 

Static Public Attributes

static constexpr const int ECON_D = 0
 
static constexpr const int ECON_T = 1
 

Protected Attributes

lpGBTlpGBT_
 
int i2cbus_
 
int imodule_
 
std::shared_ptr< I2Ci2c_
 
int n_rocs_
 number of ROCs that are enabled
 
std::array< std::unique_ptr< ROC >, 6 > rocs_
 up to 6 ROCs some of which could be disabled
 
int n_econs_
 number of ECONs that are enabled
 
std::array< std::unique_ptr< ECON >, 2 > econs_
 two ECONs
 

Static Private Attributes

static const std::vector< std::pair< int, int > > roc_to_erx_map_
 mapping of ROC halves to ECON-D eRx channels
 

Detailed Description

Class holding a set of ROCs and ECONs representing a HexaModule.

Constructor & Destructor Documentation

◆ EcalModule()

pflib::EcalModule::EcalModule ( lpGBT & lpgbt,
int i2cbus,
int modulenumber,
uint8_t roc_mask )

Construct access to an EcalModule given the DAQ lpGBT it talks through.

Parameters
[in]lpgbtaccessor to the lpgbt
[in]i2cbusbus on which the EcalModule is
[in]modulenumbermodule ID number
[in]roc_maskbit-mask saying if a board is activate/enabled (1) or inactive/disabled (0) - position i represents ROC i

Member Data Documentation

◆ roc_to_erx_map_

const std::vector< std::pair< int, int > > pflib::EcalModule::roc_to_erx_map_
staticprivate
Initial value:
= {
{9, 10}, {5, 6}, {0, 1}, {11, 8}, {7, 4}, {3, 2}}

mapping of ROC halves to ECON-D eRx channels


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