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 26 of file L1GctProcessor.h.
|
inlinevirtual |
Definition at line 27 of file L1GctProcessor.h.
|
inlineprotected |
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().
|
inlineprotected |
|
inlineprotected |
Support for multiple beam crossing operation.
Definition at line 80 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 84 of file L1GctProcessor.h.
References m_bx, and m_bxStart.
Referenced by L1GctJetFinderBase::doEtSums(), L1GctJetFinderBase::doHtSums(), L1GctJetFinalStage::process(), L1GctElectronFinalSort::process(), L1GctWheelEnergyFpga::process(), L1GctWheelJetFpga::process(), L1GctGlobalEnergyAlgos::process(), L1GctJetLeafCard::process(), L1GctJetFinderBase::sortJets(), L1GctGlobalHfSumAlgos::storeBitCount(), and L1GctGlobalHfSumAlgos::storeEtSum().
|
pure virtual |
set the input buffers
Implemented in L1GctJetFinderBase, L1GctJetLeafCard, L1GctTdrJetFinder, L1GctElectronSorter, L1GctGlobalEnergyAlgos, L1GctWheelJetFpga, L1GctWheelEnergyFpga, L1GctElectronFinalSort, L1GctGlobalHfSumAlgos, L1GctJetFinalStage, L1GctHardwareJetFinder, L1GctSimpleJetFinder, L1GctEmLeafCard, and L1GctNullJetFinder.
Referenced by reset().
|
inlineprotected |
Definition at line 82 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, L1GctElectronSorter, L1GctGlobalEnergyAlgos, L1GctWheelJetFpga, L1GctWheelEnergyFpga, L1GctElectronFinalSort, L1GctGlobalHfSumAlgos, L1GctJetFinalStage, L1GctHardwareJetFinder, L1GctSimpleJetFinder, L1GctEmLeafCard, and L1GctNullJetFinder.
Referenced by reset().
|
inline |
complete reset of processor
Definition at line 30 of file L1GctProcessor.h.
References fetchInput(), m_bx, m_bxStart, m_numOfBx, process(), resetPipelines(), resetProcessor(), and setupObjects().
Referenced by L1GctJetFinderBase::L1GctJetFinderBase(), L1GctNullJetFinder::L1GctNullJetFinder(), L1GctTdrJetFinder::L1GctTdrJetFinder(), L1GctEmLeafCard::reset(), L1GctHardwareJetFinder::reset(), L1GctGlobalEnergyAlgos::reset(), L1GctJetLeafCard::reset(), and L1GlobalCaloTrigger::reset().
|
protectedpure virtual |
Implemented in L1GctJetFinderBase, L1GctGlobalEnergyAlgos, L1GctJetLeafCard, L1GctWheelJetFpga, L1GctWheelEnergyFpga, L1GctElectronSorter, L1GctGlobalHfSumAlgos, L1GctElectronFinalSort, L1GctEmLeafCard, and L1GctJetFinalStage.
Referenced by reset(), setBxRange(), and setTerse().
|
protectedpure virtual |
Separate reset methods for the processor itself and any data stored in pipelines.
Implemented in L1GctJetFinderBase, L1GctGlobalEnergyAlgos, L1GctJetLeafCard, L1GctWheelJetFpga, L1GctWheelEnergyFpga, L1GctElectronSorter, L1GctGlobalHfSumAlgos, L1GctElectronFinalSort, L1GctEmLeafCard, and L1GctJetFinalStage.
Referenced by reset(), setNextBx(), and setTerse().
|
inline |
define the bunch crossing range to process
Definition at line 46 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 53 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 68 of file L1GctProcessor.h.
References m_verbose, resetPipelines(), resetProcessor(), and setupObjects().
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, L1GctElectronFinalSort, L1GctEmLeafCard, and L1GctJetFinalStage.
Referenced by reset(), setNextBx(), and setTerse().
|
inline |
Method to check the setup for this processor. Returns true by default.
Definition at line 64 of file L1GctProcessor.h.
|
inline |
control output messages
Definition at line 67 of file L1GctProcessor.h.
References m_verbose.
Referenced by L1GlobalCaloTrigger::setVerbose().
|
private |
Support for multiple beam crossing operation.
Definition at line 121 of file L1GctProcessor.h.
Referenced by bxAbs(), bxRel(), reset(), and setNextBx().
|
private |
Definition at line 123 of file L1GctProcessor.h.
Referenced by bxMax(), bxMin(), bxRel(), reset(), setBxRange(), and setNextBx().
|
private |
Definition at line 124 of file L1GctProcessor.h.
Referenced by bxMax(), numOfBx(), reset(), setBxRange(), and setNextBx().
|
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().