CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes
L1GctProcessor Class Referenceabstract

ABC for a GCT trigger data processing unit. More...

#include <L1GctProcessor.h>

Inheritance diagram for L1GctProcessor:
L1GctElectronFinalSort L1GctElectronSorter L1GctEmLeafCard L1GctGlobalEnergyAlgos L1GctGlobalHfSumAlgos L1GctJetFinalStage L1GctJetFinderBase L1GctJetLeafCard L1GctWheelEnergyFpga L1GctWheelJetFpga

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
 

Detailed Description

ABC for a GCT trigger data processing unit.

Author
Jim Brooke
Date
April 2006

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.

Constructor & Destructor Documentation

◆ L1GctProcessor()

L1GctProcessor::L1GctProcessor ( )
inline

Definition at line 24 of file L1GctProcessor.h.

24 : m_verbose(false), m_bx(0), m_bxStart(0), m_numOfBx(1) {}
bool m_verbose
Flag to control output messages.
int m_bx
Support for multiple beam crossing operation.

◆ ~L1GctProcessor()

virtual L1GctProcessor::~L1GctProcessor ( )
inlinevirtual

Definition at line 25 of file L1GctProcessor.h.

25 {}

Member Function Documentation

◆ bxAbs()

int L1GctProcessor::bxAbs ( ) const
inlineprotected

◆ bxMax()

int L1GctProcessor::bxMax ( ) const
inlineprotected

Definition at line 78 of file L1GctProcessor.h.

References m_bxStart, and m_numOfBx.

78 { return (m_bxStart + m_numOfBx - 1); }

◆ bxMin()

int L1GctProcessor::bxMin ( ) const
inlineprotected

◆ bxRel()

int L1GctProcessor::bxRel ( ) const
inlineprotected

◆ fetchInput()

virtual void L1GctProcessor::fetchInput ( )
pure virtual

◆ numOfBx()

int L1GctProcessor::numOfBx ( ) const
inlineprotected

◆ process()

virtual void L1GctProcessor::process ( )
pure virtual

◆ reset()

void L1GctProcessor::reset ( void  )
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().

28  {
29  m_bxStart = 0;
30  m_numOfBx = 1;
31  m_bx = 0;
34  setupObjects();
35  }
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.
int m_bx
Support for multiple beam crossing operation.

◆ resetPipelines()

virtual void L1GctProcessor::resetPipelines ( )
protectedpure virtual

◆ resetProcessor()

virtual void L1GctProcessor::resetProcessor ( )
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().

◆ setBxRange()

void L1GctProcessor::setBxRange ( const int  firstBx,
const int  numberOfBx 
)
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().

44  {
45  m_bxStart = firstBx;
46  m_numOfBx = numberOfBx;
48  }
virtual void resetPipelines()=0

◆ setNextBx()

void L1GctProcessor::setNextBx ( const int  bxnum)
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().

51  {
52  if ((bxnum - m_bxStart >= 0) && (bxnum - m_bxStart < m_numOfBx)) {
53  m_bx = bxnum;
54  } else {
55  m_bx = 0;
56  }
58  setupObjects();
59  }
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.
int m_bx
Support for multiple beam crossing operation.

◆ setTerse()

void L1GctProcessor::setTerse ( )
inline

Definition at line 66 of file L1GctProcessor.h.

References m_verbose.

Referenced by L1GlobalCaloTrigger::setTerse().

66 { m_verbose = false; }
bool m_verbose
Flag to control output messages.

◆ setupObjects()

virtual void L1GctProcessor::setupObjects ( )
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().

◆ setupOk()

bool L1GctProcessor::setupOk ( ) const
inline

Method to check the setup for this processor. Returns true by default.

Definition at line 62 of file L1GctProcessor.h.

62 { return true; }

◆ setVerbose()

void L1GctProcessor::setVerbose ( )
inline

control output messages

Definition at line 65 of file L1GctProcessor.h.

References m_verbose.

Referenced by L1GlobalCaloTrigger::setVerbose().

65 { m_verbose = true; }
bool m_verbose
Flag to control output messages.

Member Data Documentation

◆ m_bx

int L1GctProcessor::m_bx
private

Support for multiple beam crossing operation.

Definition at line 113 of file L1GctProcessor.h.

Referenced by bxAbs(), bxRel(), reset(), and setNextBx().

◆ m_bxStart

int L1GctProcessor::m_bxStart
private

Definition at line 115 of file L1GctProcessor.h.

Referenced by bxMax(), bxMin(), bxRel(), reset(), setBxRange(), and setNextBx().

◆ m_numOfBx

int L1GctProcessor::m_numOfBx
private

Definition at line 116 of file L1GctProcessor.h.

Referenced by bxMax(), numOfBx(), reset(), setBxRange(), and setNextBx().

◆ m_verbose

bool L1GctProcessor::m_verbose
protected