#include "RcuConfig.h" RcuConfig::RcuConfig(int32_t configType, uint32_t debuglevel) { fdebuglevel = debuglevel; fconfigType = configType; } RcuConfig::~RcuConfig() { } uint32_t RcuConfig::getState(uint32_t side, uint32_t sector, uint32_t rcu){ // State of the RCU (on/off). By default we assume all RCUs are on. uint32_t retval = 1; if ( fconfigType == fTPC.RCUlab() ) { // In RCU lab there are just a few RCUs if ( (side == 0) && (sector==14) && (rcu<3) ) retval = 1; else retval = 0; } return retval; } uint32_t RcuConfig::getALTROIF_NSAM_EV(uint32_t side, uint32_t sector, uint32_t rcu){ // ALTROIF_NSAM_EV uint32_t retval = 900; if (fconfigType == fTPC.laserRun()) retval = 1000; return retval; } uint32_t RcuConfig::getALTROIF_CLK_RATIO(uint32_t side, uint32_t sector, uint32_t rcu){ // ALTROIF_CLK_RATIO T_LHC/T_SAMPLING // 0 -> ratio=2 (50ns) // 1 -> ratio=4 (100ns) // 2 -> ratio=8 (200ns) // 3 -> ratio=2 (400ns) uint32_t retval = 1; /* if ( 5MHz sampling ) { retval = 2; // 200ns } */ return retval; } uint32_t RcuConfig::getALTROIF_CSTB_DELAY(uint32_t side, uint32_t sector, uint32_t rcu){ // ALTROIF_CSTB_DELAY uint32_t retval = 3; return retval; } uint32_t RcuConfig::getRDOMOD_SPARSE_RDO(uint32_t side, uint32_t sector, uint32_t rcu){ // RDOMOD_SPARSE_RDO uint32_t retval = 0; if ( fconfigType == fTPC.ppRun() ) retval = 1; if ( fconfigType == fTPC.pp2Run() ) retval = 1; if ( fconfigType == fTPC.pp3Run() ) retval = 1; if ( fconfigType == fTPC.laserRun() ) retval = 1; if ( fconfigType == fTPC.HI1Run() ) retval = 1; if ( fconfigType == fTPC.HI2Run() ) retval = 1; if ( fconfigType == fTPC.HI5Run() ) retval = 1; return retval; } uint32_t RcuConfig::getRDOMOD_MEB_MODE(uint32_t side,uint32_t sector, uint32_t rcu){ // RDOMOD_MEB_MODE // number of multi event buffers (0x0 -> 4 buffers; 0x1 -> 8 buffers) uint32_t retval = 0; return retval; } uint32_t RcuConfig::getRDOMOD_DISABLE_RDYRX(uint32_t side, uint32_t sector, uint32_t rcu){ // RDOMOD_DISABLE_RDYRX // disable ready-to-receive uint32_t retval = 0; return retval; } uint32_t RcuConfig::getTTC_CONTROL_CDH_VERSION (uint32_t side, uint32_t sector, uint32_t rcu){ // TTC_CONTROL_CDH_VERSION uint32_t retval = 2; return retval; } uint32_t RcuConfig::getTTC_L1_LATENCY(uint32_t side, uint32_t sector, uint32_t rcu){ // TTC_L1_LATENCY uint32_t retval = 0x104; return retval; } uint32_t RcuConfig::getTTC_L1_LATENCY_WINDOW(uint32_t side, uint32_t sector, uint32_t rcu){ // TTC_L1_LATENCY_WINDOW uint32_t retval = 2; return retval; } uint32_t RcuConfig::getTTC_L1_MSG_LATENCY_MIN(uint32_t side, uint32_t sector, uint32_t rcu){ // TTC_L1_MSG_LATENCY_MIN uint32_t retval = 0xe0; return retval; } uint32_t RcuConfig::getTTC_L1_MSG_LATENCY_MAX(uint32_t side, uint32_t sector, uint32_t rcu){ // TTC_L1_MSG_LATENCY_MAX uint32_t retval = 0x4e20; return retval; } uint32_t RcuConfig::getTTC_L2_LATENCY_MIN(uint32_t side, uint32_t sector, uint32_t rcu){ // TTC_L2_LATENCY_MIN uint32_t retval = 0xc80; return retval; } uint32_t RcuConfig::getTTC_L2_LATENCY_MAX(uint32_t side, uint32_t sector, uint32_t rcu){ // TTC_L2_LATENCY_MAX uint32_t retval = 0x4e20; return retval; } uint32_t RcuConfig::getTTC_ROI_CONFIG1(uint32_t side, uint32_t sector, uint32_t rcu){ // TTC_ROI_CONFIG1 uint32_t retval = 0; return retval; } uint32_t RcuConfig::getTTC_ROI_CONFIG2(uint32_t side, uint32_t sector, uint32_t rcu){ // TTC_ROI_CONFIG2 uint32_t retval = 0; return retval; } uint32_t RcuConfig::getTTC_ROI_LATENCY_MIN(uint32_t side, uint32_t sector, uint32_t rcu){ // TTC_ROI_LATENCY_MIN uint32_t retval = 0; return retval; } uint32_t RcuConfig::getTTC_ROI_LATENCY_MAX(uint32_t side, uint32_t sector, uint32_t rcu){ // TTC_ROI_LATENCY_MAX uint32_t retval = 0; return retval; } uint32_t RcuConfig::getRDOMOD_SKIP_EMPTY(uint32_t side, uint32_t sector, uint32_t rcu){ // RDOMOD_SKIP_EMPTY // 1 = RCU will skip the empty channel while performing “Full Readout” // 0 = RCU will not skip the empty channel while performing “Full Readout” uint32_t retval = 0; if ( fconfigType == fTPC.HI1Run() ) retval = 1; if ( fconfigType == fTPC.HI2Run() ) retval = 1; if ( fconfigType == fTPC.HI3Run() ) retval = 1; if ( fconfigType == fTPC.HI4Run() ) retval = 1; if ( fconfigType == fTPC.HI6Run() ) retval = 1; if ( fconfigType == fTPC.playbackRun() ) retval = 1; if ( fconfigType == fTPC.pp4Run() ) retval = 1; return retval; } uint32_t RcuConfig::getEN_INT_BA(uint32_t side, uint32_t sector, uint32_t rcu){ // EN_INT_BA // Enables the RCU to switch off the FEC branch in case the interrupt signals uint32_t retval = 0; return retval; } uint32_t RcuConfig::getPLACEHOLDER(uint32_t side, uint32_t sector, uint32_t rcu){ // PLACEHOLDER uint32_t retval = 0; return retval; } uint32_t RcuConfig::getState(){ return getState(0,0,0); } uint32_t RcuConfig::getALTROIF_NSAM_EV(){ return getALTROIF_NSAM_EV(0,0,0); } uint32_t RcuConfig::getALTROIF_CLK_RATIO(){ return getALTROIF_CLK_RATIO(0,0,0); } uint32_t RcuConfig::getALTROIF_CSTB_DELAY(){ return getALTROIF_CSTB_DELAY(0,0,0); } uint32_t RcuConfig::getRDOMOD_SPARSE_RDO(){ return getRDOMOD_SPARSE_RDO(0,0,0); } uint32_t RcuConfig::getRDOMOD_MEB_MODE(){ return getRDOMOD_MEB_MODE(0,0,0); } uint32_t RcuConfig::getRDOMOD_DISABLE_RDYRX(){ return getRDOMOD_DISABLE_RDYRX(0,0,0); } uint32_t RcuConfig::getTTC_CONTROL_CDH_VERSION(){ return getTTC_CONTROL_CDH_VERSION(0,0,0); } uint32_t RcuConfig::getTTC_L1_LATENCY(){ return getTTC_L1_LATENCY(0,0,0); } uint32_t RcuConfig::getTTC_L1_LATENCY_WINDOW(){ return getTTC_L1_LATENCY_WINDOW(0,0,0); } uint32_t RcuConfig::getTTC_L1_MSG_LATENCY_MIN(){ return getTTC_L1_MSG_LATENCY_MIN(0,0,0); } uint32_t RcuConfig::getTTC_L1_MSG_LATENCY_MAX(){ return getTTC_L1_MSG_LATENCY_MAX(0,0,0); } uint32_t RcuConfig::getTTC_L2_LATENCY_MIN(){ return getTTC_L2_LATENCY_MIN(0,0,0); } uint32_t RcuConfig::getTTC_L2_LATENCY_MAX(){ return getTTC_L2_LATENCY_MAX(0,0,0); } uint32_t RcuConfig::getTTC_ROI_CONFIG1(){ return getTTC_ROI_CONFIG1(0,0,0); } uint32_t RcuConfig::getTTC_ROI_CONFIG2(){ return getTTC_ROI_CONFIG2(0,0,0); } uint32_t RcuConfig::getTTC_ROI_LATENCY_MIN(){ return getTTC_ROI_LATENCY_MIN(0,0,0); } uint32_t RcuConfig::getTTC_ROI_LATENCY_MAX(){ return getTTC_ROI_LATENCY_MAX(0,0,0); } uint32_t RcuConfig::getRDOMOD_SKIP_EMPTY(){ return getRDOMOD_SKIP_EMPTY(0,0,0); } uint32_t RcuConfig::getEN_INT_BA(){ return getEN_INT_BA(0,0,0); } uint32_t RcuConfig::getPLACEHOLDER(){ return getPLACEHOLDER(0,0,0); }