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 More... | |
L1GctProcessor () | |
virtual void | process ()=0 |
process the data and set outputs More... | |
void | reset () |
complete reset of processor More... | |
void | setBxRange (const int firstBx, const int numberOfBx) |
define the bunch crossing range to process More... | |
void | setNextBx (const int bxnum) |
clear input data buffers and process a new bunch crossing More... | |
void | setTerse () |
bool | setupOk () const |
Method to check the setup for this processor. Returns true by default. More... | |
void | setVerbose () |
control output messages More... | |
virtual | ~L1GctProcessor () |
Protected Member Functions | |
int | bxAbs () const |
int | bxMax () const |
int | bxMin () const |
Support for multiple beam crossing operation. More... | |
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. More... | |
virtual void | setupObjects ()=0 |
Initialise inputs with null objects for the correct bunch crossing if required. More... | |
Protected Attributes | |
bool | m_verbose |
Flag to control output messages. More... | |
Private Attributes | |
int | m_bx |
Support for multiple beam crossing operation. More... | |
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.
|
inline |
Definition at line 24 of file L1GctProcessor.h.
|
inlinevirtual |
Definition at line 25 of file L1GctProcessor.h.
|
inlineprotected |
Definition at line 80 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().
|
inlineprotected |
|
inlineprotected |
Support for multiple beam crossing operation.
Definition at line 77 of file L1GctProcessor.h.
References m_bxStart.
Referenced by L1GctWheelEnergyFpga::getInternalEtSums(), L1GctJetLeafCard::getInternalEtSums(), L1GctJetFinderBase::getInternalEtSums(), L1GctWheelJetFpga::getInternalHtMiss(), L1GctJetLeafCard::getInternalHtMiss(), L1GctJetFinderBase::getInternalHtMiss(), and operator<<().
|
inlineprotected |
Definition at line 81 of file L1GctProcessor.h.
References m_bx, and m_bxStart.
Referenced by L1GctJetFinderBase::doEtSums(), L1GctJetFinderBase::doHtSums(), L1GctJetFinalStage::process(), L1GctElectronFinalSort::process(), L1GctWheelJetFpga::process(), L1GctWheelEnergyFpga::process(), L1GctGlobalEnergyAlgos::process(), L1GctJetLeafCard::process(), L1GctJetFinderBase::sortJets(), L1GctGlobalHfSumAlgos::storeBitCount(), and L1GctGlobalHfSumAlgos::storeEtSum().
|
pure virtual |
set the input buffers
Implemented in L1GctJetFinderBase, L1GctJetLeafCard, L1GctTdrJetFinder, L1GctGlobalEnergyAlgos, L1GctElectronSorter, L1GctWheelEnergyFpga, L1GctWheelJetFpga, L1GctElectronFinalSort, L1GctGlobalHfSumAlgos, L1GctJetFinalStage, L1GctEmLeafCard, L1GctHardwareJetFinder, and L1GctNullJetFinder.
|
inlineprotected |
Definition at line 79 of file L1GctProcessor.h.
References m_numOfBx.
Referenced by L1GctWheelEnergyFpga::getInternalEtSums(), L1GctJetLeafCard::getInternalEtSums(), L1GctJetFinderBase::getInternalEtSums(), L1GctWheelJetFpga::getInternalHtMiss(), L1GctJetLeafCard::getInternalHtMiss(), L1GctJetFinderBase::getInternalHtMiss(), L1GctGlobalHfSumAlgos::hfSumsOutput(), L1GctGlobalHfSumAlgos::hfSumsWord(), operator<<(), L1GctJetFinalStage::resetPipelines(), L1GctElectronFinalSort::resetPipelines(), L1GctGlobalHfSumAlgos::resetPipelines(), L1GctWheelEnergyFpga::resetPipelines(), L1GctWheelJetFpga::resetPipelines(), L1GctJetLeafCard::resetPipelines(), L1GctGlobalEnergyAlgos::resetPipelines(), and L1GctJetFinderBase::resetPipelines().
|
pure virtual |
process the data and set outputs
Implemented in L1GctJetFinderBase, L1GctJetLeafCard, L1GctTdrJetFinder, L1GctGlobalEnergyAlgos, L1GctElectronSorter, L1GctWheelEnergyFpga, L1GctWheelJetFpga, L1GctElectronFinalSort, L1GctGlobalHfSumAlgos, L1GctJetFinalStage, L1GctEmLeafCard, L1GctHardwareJetFinder, and L1GctNullJetFinder.
|
inline |
complete reset of processor
Definition at line 28 of file L1GctProcessor.h.
References m_bx, m_bxStart, m_numOfBx, resetPipelines(), resetProcessor(), and setupObjects().
Referenced by L1GctJetFinderBase::L1GctJetFinderBase(), L1GctNullJetFinder::L1GctNullJetFinder(), L1GctTdrJetFinder::L1GctTdrJetFinder(), L1GctHardwareJetFinder::reset(), L1GctEmLeafCard::reset(), L1GctGlobalEnergyAlgos::reset(), L1GctJetLeafCard::reset(), and L1GlobalCaloTrigger::reset().
|
protectedpure virtual |
Implemented in L1GctJetFinderBase, L1GctGlobalEnergyAlgos, L1GctJetLeafCard, L1GctWheelJetFpga, L1GctWheelEnergyFpga, L1GctElectronSorter, L1GctGlobalHfSumAlgos, L1GctEmLeafCard, L1GctElectronFinalSort, and L1GctJetFinalStage.
Referenced by reset(), and setBxRange().
|
protectedpure virtual |
Separate reset methods for the processor itself and any data stored in pipelines.
Implemented in L1GctJetFinderBase, L1GctGlobalEnergyAlgos, L1GctJetLeafCard, L1GctWheelJetFpga, L1GctWheelEnergyFpga, L1GctElectronSorter, L1GctGlobalHfSumAlgos, L1GctEmLeafCard, L1GctElectronFinalSort, and L1GctJetFinalStage.
Referenced by reset(), and setNextBx().
|
inline |
define the bunch crossing range to process
Definition at line 44 of file L1GctProcessor.h.
References m_bxStart, m_numOfBx, and resetPipelines().
Referenced by L1GlobalCaloTrigger::bxSetup(), L1GctEmLeafCard::setBxRange(), L1GctGlobalEnergyAlgos::setBxRange(), and L1GctJetLeafCard::setBxRange().
|
inline |
clear input data buffers and process a new bunch crossing
Definition at line 51 of file L1GctProcessor.h.
References m_bx, m_bxStart, m_numOfBx, resetProcessor(), and setupObjects().
Referenced by L1GlobalCaloTrigger::bxReset(), L1GctEmLeafCard::setNextBx(), L1GctGlobalEnergyAlgos::setNextBx(), and L1GctJetLeafCard::setNextBx().
|
inline |
Definition at line 66 of file L1GctProcessor.h.
References m_verbose.
Referenced by L1GlobalCaloTrigger::setTerse().
|
protectedpure virtual |
Initialise inputs with null objects for the correct bunch crossing if required.
Implemented in L1GctJetFinderBase, L1GctGlobalEnergyAlgos, L1GctJetLeafCard, L1GctWheelJetFpga, L1GctWheelEnergyFpga, L1GctElectronSorter, L1GctGlobalHfSumAlgos, L1GctEmLeafCard, L1GctElectronFinalSort, and L1GctJetFinalStage.
Referenced by reset(), and setNextBx().
|
inline |
Method to check the setup for this processor. Returns true by default.
Definition at line 62 of file L1GctProcessor.h.
|
inline |
control output messages
Definition at line 65 of file L1GctProcessor.h.
References m_verbose.
Referenced by L1GlobalCaloTrigger::setVerbose().
|
private |
Support for multiple beam crossing operation.
Definition at line 113 of file L1GctProcessor.h.
Referenced by bxAbs(), bxRel(), reset(), and setNextBx().
|
private |
Definition at line 115 of file L1GctProcessor.h.
Referenced by bxMax(), bxMin(), bxRel(), reset(), setBxRange(), and setNextBx().
|
private |
Definition at line 116 of file L1GctProcessor.h.
Referenced by bxMax(), numOfBx(), reset(), setBxRange(), and setNextBx().
|
protected |
Flag to control output messages.
Definition at line 109 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().