ABC for a GCT trigger data processing unit. More...
#include <L1GctProcessor.h>
Classes | |
struct | Pipeline |
Public Member Functions | |
virtual void | fetchInput ()=0 |
set the input buffers | |
L1GctProcessor () | |
virtual void | process ()=0 |
process the data and set outputs | |
void | reset () |
complete reset of processor | |
void | setBxRange (const int firstBx, const int numberOfBx) |
define the bunch crossing range to process | |
void | setNextBx (const int bxnum) |
clear input data buffers and process a new bunch crossing | |
void | setTerse () |
bool | setupOk () const |
Method to check the setup for this processor. Returns true by default. | |
void | setVerbose () |
control output messages | |
virtual | ~L1GctProcessor () |
Protected Member Functions | |
int | bxAbs () const |
int | bxMax () const |
int | bxMin () const |
Support for multiple beam crossing operation. | |
int | bxRel () const |
int | numOfBx () const |
virtual void | resetPipelines ()=0 |
virtual void | resetProcessor ()=0 |
Separate reset methods for the processor itself and any data stored in pipelines. | |
virtual void | setupObjects ()=0 |
Initialise inputs with null objects for the correct bunch crossing if required. | |
Protected Attributes | |
bool | m_verbose |
Flag to control output messages. | |
Private Attributes | |
int | m_bx |
Support for multiple beam crossing operation. | |
int | m_bxStart |
int | m_numOfBx |
ABC for a GCT trigger data processing unit.
A processing unit can be a card, an FPGA, a chunk of firmware. This class exists simply to enforce a common interface.
There should not be any L1GctProcessor* pointers!
Definition at line 22 of file L1GctProcessor.h.
L1GctProcessor::L1GctProcessor | ( | ) | [inline] |
virtual L1GctProcessor::~L1GctProcessor | ( | ) | [inline, virtual] |
Definition at line 27 of file L1GctProcessor.h.
{};
int L1GctProcessor::bxAbs | ( | ) | const [inline, protected] |
Definition at line 83 of file L1GctProcessor.h.
References m_bx.
Referenced by L1GctJetFinalStage::setInputCentralJet(), L1GctElectronFinalSort::setInputEmCand(), L1GctJetFinalStage::setInputForwardJet(), L1GctJetFinalStage::setInputTauJet(), L1GctElectronSorter::setupObjects(), L1GctWheelJetFpga::setupObjects(), L1GctJetFinderBase::setupObjects(), and L1GctJetFinalStage::storeJets().
{ return m_bx; }
int L1GctProcessor::bxMax | ( | ) | const [inline, protected] |
int L1GctProcessor::bxMin | ( | ) | const [inline, protected] |
Support for multiple beam crossing operation.
Definition at line 80 of file L1GctProcessor.h.
References m_bxStart.
Referenced by L1GctJetLeafCard::getInternalEtSums(), L1GctWheelEnergyFpga::getInternalEtSums(), L1GctJetFinderBase::getInternalEtSums(), L1GctJetFinderBase::getInternalHtMiss(), L1GctJetLeafCard::getInternalHtMiss(), L1GctWheelJetFpga::getInternalHtMiss(), and operator<<().
{ return m_bxStart; }
int L1GctProcessor::bxRel | ( | ) | const [inline, protected] |
Definition at line 84 of file L1GctProcessor.h.
References m_bx, and m_bxStart.
Referenced by L1GctJetFinderBase::doEtSums(), L1GctJetFinderBase::doHtSums(), L1GctWheelEnergyFpga::process(), L1GctWheelJetFpga::process(), L1GctGlobalEnergyAlgos::process(), L1GctJetLeafCard::process(), L1GctElectronFinalSort::process(), L1GctJetFinalStage::process(), L1GctJetFinderBase::sortJets(), L1GctGlobalHfSumAlgos::storeBitCount(), and L1GctGlobalHfSumAlgos::storeEtSum().
virtual void L1GctProcessor::fetchInput | ( | ) | [pure virtual] |
set the input buffers
Implemented in L1GctElectronFinalSort, L1GctElectronSorter, L1GctEmLeafCard, L1GctGlobalEnergyAlgos, L1GctGlobalHfSumAlgos, L1GctHardwareJetFinder, L1GctJetFinalStage, L1GctJetFinderBase, L1GctJetLeafCard, L1GctNullJetFinder, L1GctSimpleJetFinder, L1GctTdrJetFinder, L1GctWheelEnergyFpga, and L1GctWheelJetFpga.
int L1GctProcessor::numOfBx | ( | ) | const [inline, protected] |
Definition at line 82 of file L1GctProcessor.h.
References m_numOfBx.
Referenced by L1GctJetLeafCard::getInternalEtSums(), L1GctWheelEnergyFpga::getInternalEtSums(), L1GctJetFinderBase::getInternalEtSums(), L1GctJetFinderBase::getInternalHtMiss(), L1GctWheelJetFpga::getInternalHtMiss(), L1GctJetLeafCard::getInternalHtMiss(), L1GctGlobalHfSumAlgos::hfSumsOutput(), L1GctGlobalHfSumAlgos::hfSumsWord(), operator<<(), L1GctGlobalHfSumAlgos::resetPipelines(), L1GctJetFinderBase::resetPipelines(), L1GctJetLeafCard::resetPipelines(), L1GctJetFinalStage::resetPipelines(), L1GctWheelEnergyFpga::resetPipelines(), L1GctGlobalEnergyAlgos::resetPipelines(), L1GctWheelJetFpga::resetPipelines(), and L1GctElectronFinalSort::resetPipelines().
{ return m_numOfBx; }
virtual void L1GctProcessor::process | ( | ) | [pure virtual] |
process the data and set outputs
Implemented in L1GctElectronFinalSort, L1GctElectronSorter, L1GctEmLeafCard, L1GctGlobalEnergyAlgos, L1GctGlobalHfSumAlgos, L1GctHardwareJetFinder, L1GctJetFinalStage, L1GctJetFinderBase, L1GctJetLeafCard, L1GctNullJetFinder, L1GctSimpleJetFinder, L1GctTdrJetFinder, L1GctWheelEnergyFpga, and L1GctWheelJetFpga.
void L1GctProcessor::reset | ( | void | ) | [inline] |
complete reset of processor
Reimplemented in L1GctEmLeafCard, L1GctGlobalEnergyAlgos, L1GctHardwareJetFinder, and L1GctJetLeafCard.
Definition at line 30 of file L1GctProcessor.h.
References m_bx, m_bxStart, m_numOfBx, resetPipelines(), resetProcessor(), and setupObjects().
Referenced by L1GctJetFinderBase::L1GctJetFinderBase(), L1GctNullJetFinder::L1GctNullJetFinder(), L1GctTdrJetFinder::L1GctTdrJetFinder(), L1GctJetLeafCard::reset(), L1GlobalCaloTrigger::reset(), and L1GctGlobalEnergyAlgos::reset().
{ m_bxStart = 0; m_numOfBx = 1; m_bx = 0; resetPipelines(); resetProcessor(); setupObjects(); }
virtual void L1GctProcessor::resetPipelines | ( | ) | [protected, pure virtual] |
Implemented in L1GctElectronFinalSort, L1GctElectronSorter, L1GctEmLeafCard, L1GctGlobalEnergyAlgos, L1GctGlobalHfSumAlgos, L1GctJetFinalStage, L1GctJetFinderBase, L1GctJetLeafCard, L1GctWheelEnergyFpga, and L1GctWheelJetFpga.
Referenced by reset(), and setBxRange().
virtual void L1GctProcessor::resetProcessor | ( | ) | [protected, pure virtual] |
Separate reset methods for the processor itself and any data stored in pipelines.
Implemented in L1GctElectronFinalSort, L1GctElectronSorter, L1GctEmLeafCard, L1GctGlobalEnergyAlgos, L1GctGlobalHfSumAlgos, L1GctJetFinalStage, L1GctJetFinderBase, L1GctJetLeafCard, L1GctWheelEnergyFpga, and L1GctWheelJetFpga.
Referenced by reset(), and setNextBx().
void L1GctProcessor::setBxRange | ( | const int | firstBx, |
const int | numberOfBx | ||
) | [inline] |
define the bunch crossing range to process
Reimplemented in L1GctEmLeafCard, L1GctGlobalEnergyAlgos, and L1GctJetLeafCard.
Definition at line 46 of file L1GctProcessor.h.
References m_bxStart, m_numOfBx, and resetPipelines().
Referenced by L1GlobalCaloTrigger::bxSetup(), L1GctJetLeafCard::setBxRange(), and L1GctGlobalEnergyAlgos::setBxRange().
{ m_bxStart = firstBx; m_numOfBx = numberOfBx; resetPipelines(); }
void L1GctProcessor::setNextBx | ( | const int | bxnum | ) | [inline] |
clear input data buffers and process a new bunch crossing
Reimplemented in L1GctEmLeafCard, L1GctGlobalEnergyAlgos, and L1GctJetLeafCard.
Definition at line 53 of file L1GctProcessor.h.
References m_bx, m_bxStart, m_numOfBx, resetProcessor(), and setupObjects().
Referenced by L1GlobalCaloTrigger::bxReset(), L1GctGlobalEnergyAlgos::setNextBx(), and L1GctJetLeafCard::setNextBx().
{ if ( (bxnum-m_bxStart >= 0) && (bxnum-m_bxStart < m_numOfBx) ) { m_bx = bxnum; } else { m_bx = 0; } resetProcessor(); setupObjects(); }
void L1GctProcessor::setTerse | ( | ) | [inline] |
Definition at line 68 of file L1GctProcessor.h.
References m_verbose.
Referenced by L1GlobalCaloTrigger::setTerse().
{ m_verbose = false; }
virtual void L1GctProcessor::setupObjects | ( | ) | [protected, pure virtual] |
Initialise inputs with null objects for the correct bunch crossing if required.
Implemented in L1GctElectronFinalSort, L1GctElectronSorter, L1GctEmLeafCard, L1GctGlobalEnergyAlgos, L1GctGlobalHfSumAlgos, L1GctJetFinalStage, L1GctJetFinderBase, L1GctJetLeafCard, L1GctWheelEnergyFpga, and L1GctWheelJetFpga.
Referenced by reset(), and setNextBx().
bool L1GctProcessor::setupOk | ( | ) | const [inline] |
Method to check the setup for this processor. Returns true by default.
Reimplemented in L1GctElectronFinalSort, L1GctGlobalEnergyAlgos, L1GctGlobalHfSumAlgos, L1GctJetFinalStage, L1GctJetFinderBase, L1GctJetLeafCard, L1GctWheelEnergyFpga, and L1GctWheelJetFpga.
Definition at line 64 of file L1GctProcessor.h.
{ return true; }
void L1GctProcessor::setVerbose | ( | ) | [inline] |
control output messages
Definition at line 67 of file L1GctProcessor.h.
References m_verbose.
Referenced by L1GlobalCaloTrigger::setVerbose().
{ m_verbose = true; }
int L1GctProcessor::m_bx [private] |
Support for multiple beam crossing operation.
Definition at line 121 of file L1GctProcessor.h.
Referenced by bxAbs(), bxRel(), reset(), and setNextBx().
int L1GctProcessor::m_bxStart [private] |
Definition at line 123 of file L1GctProcessor.h.
Referenced by bxMax(), bxMin(), bxRel(), reset(), setBxRange(), and setNextBx().
int L1GctProcessor::m_numOfBx [private] |
Definition at line 124 of file L1GctProcessor.h.
Referenced by bxMax(), numOfBx(), reset(), setBxRange(), and setNextBx().
bool L1GctProcessor::m_verbose [protected] |
Flag to control output messages.
Definition at line 117 of file L1GctProcessor.h.
Referenced by L1GctWheelJetFpga::checkSetup(), L1GctWheelJetFpga::classifyJets(), L1GctJetFinderBase::etComponentForJetFinder(), L1GctElectronFinalSort::L1GctElectronFinalSort(), L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos(), L1GctGlobalHfSumAlgos::L1GctGlobalHfSumAlgos(), L1GctJetFinalStage::L1GctJetFinalStage(), L1GctJetFinderBase::L1GctJetFinderBase(), L1GctJetLeafCard::L1GctJetLeafCard(), L1GctWheelEnergyFpga::L1GctWheelEnergyFpga(), L1GctWheelJetFpga::L1GctWheelJetFpga(), L1GctWheelJetFpga::setInputJet(), L1GctJetFinderBase::setNeighbourJetFinders(), L1GctJetLeafCard::setNeighbourLeafCards(), setTerse(), and setVerbose().