2 #ifndef L1GCTPROCESSOR_H_ 3 #define L1GCTPROCESSOR_H_ 46 inline void setBxRange(
const int firstBx,
const int numberOfBx) {
93 Pipeline(
const unsigned size) : contents(size), entriesPerBx(size) {}
99 void reset(
const unsigned nBx) {
101 contents.resize(nBx*entriesPerBx);
104 void store(
const T& thisBx,
const int bxNum) {
105 contents.at(bxNum) = thisBx;
108 void store(
const std::vector<T>& thisBx,
const int bxNum) {
109 unsigned pos = entriesPerBx*bxNum;
111 contents.at(pos++) = thisBx.at(
i);
void reset()
complete reset of processor
virtual ~L1GctProcessor()
bool setupOk() const
Method to check the setup for this processor. Returns true by default.
Pipeline(const unsigned size)
void store(const T &thisBx, const int bxNum)
bool m_verbose
Flag to control output messages.
int bxMin() const
Support for multiple beam crossing operation.
void store(const std::vector< T > &thisBx, const int bxNum)
ABC for a GCT trigger data processing unit.
void setVerbose()
control output messages
void resize(const unsigned size)
void setBxRange(const int firstBx, const int numberOfBx)
define the bunch crossing range to process
virtual void process()=0
process the data and set outputs
void reset(const unsigned nBx)
virtual void resetPipelines()=0
virtual void resetProcessor()=0
Separate reset methods for the processor itself and any data stored in pipelines. ...
void setNextBx(const int bxnum)
clear input data buffers and process a new bunch crossing
std::vector< T > contents
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.
virtual void fetchInput()=0
set the input buffers