18 m_whichJetFinder(jfType),
36 if (m_id < 0 || m_id > 5) {
39 edm::LogWarning(
"L1GctSetupError") <<
"L1GctJetLeafCard::L1GctJetLeafCard() : Jet Leaf Card ID " <<
m_id 40 <<
" has been incorrectly constructed!\n" 41 <<
"ID number should be between the range of 0 to 5\n";
49 edm::LogWarning(
"L1GctSetupError") <<
"L1GctJetLeafCard::L1GctJetLeafCard() : Jet Leaf Card ID " <<
m_id 50 <<
" has been incorrectly constructed!\n" 52 <<
" for this ID value \n";
80 <<
"L1GctJetLeafCard::L1GctJetLeafCard() : Jet Leaf Card ID " <<
m_id 81 <<
" has been incorrectly constructed!\n" 82 <<
"Unrecognised jetFinder type " <<
m_whichJetFinder <<
", cannot setup jetFinders\n";
87 edm::LogError(
"L1GctSetupError") <<
"Jet Leaf Card ID " <<
m_id <<
" has been incorrectly constructed";
99 std::vector<L1GctJetFinderBase*> jfNeighbours(2);
101 if (neighbours.size() == 2) {
102 jfNeighbours.at(0) = neighbours.at(0)->getJetFinderC();
111 jfNeighbours.at(1) = neighbours.at(1)->getJetFinderA();
117 edm::LogWarning(
"L1GctSetupError") <<
"L1GctJetLeafCard::setNeighbourLeafCards() : In Jet Leaf Card ID " <<
m_id 118 <<
" size of input vector should be 2, but is in fact " << neighbours.size()
127 s <<
"===L1GctJetLeafCard===" << endl;
128 s <<
"ID = " << card.
m_id << endl;
252 std::vector<L1GctInternEtSum>
result;
256 static_cast<int16_t
>(
bx -
bxMin())));
259 static_cast<int16_t
>(
bx -
bxMin())));
262 static_cast<int16_t
>(
bx -
bxMin())));
265 static_cast<int16_t
>(
bx -
bxMin())));
271 std::vector<L1GctInternHtMiss>
result;
277 static_cast<int16_t
>(
bx -
bxMin())));
std::ostream & operator<<(std::ostream &s, const L1GctJetLeafCard &card)
void reset()
complete reset of processor
Pipeline< htComponentType > m_hxSumPipe
3*3 sliding window algorithm jet finder.
htCompInternJfType getHxSum() const
Get the x component of vector Ht summed over jets above threshold.
L1GctJetFinderBase * m_jetFinderB
middle jetFinder in phi
std::vector< L1GctJetCand > JetVector
void reset()
clear internal buffers
~L1GctJetLeafCard() override
static L1GctInternEtSum fromEmulatorJetTotEt(unsigned totEt, bool overFlow, int16_t bx)
Emulator constructors.
L1GctJetFinderBase * m_jetFinderC
highest jetFinder in phi
bool m_verbose
Flag to control output messages.
std::vector< L1GctInternEtSum > getInternalEtSums() const
get the Et sums in internal component format
std::vector< L1GctJetCand > getOutputJetsC() const
Ouptut jetfinder C jets (highest jetFinder in phi)
Pipeline< etHadType > m_htSumPipe
Pipeline< etTotalType > m_etSumPipe
etHadType getHtSum() const
Get the scalar sum of Ht summed over jets above threshold.
bool setupOk() const
Check setup is Ok.
void setNeighbourLeafCards(const std::vector< L1GctJetLeafCard *> &neighbours)
set pointers to neighbours - needed to complete the setup
no-op jet finder for test purposes.
Log< level::Error, false > LogError
std::vector< L1GctJetCand > getOutputJetsB() const
Output jetfinder B jets (middle jetFinder in phi)
bool overFlow() const
access overflow
etCompInternJfType getExSum() const
Get the x component of vector Et summed over the input regions.
ABC for a GCT trigger data processing unit.
void process() override
process the data and set outputs
static L1GctInternEtSum fromEmulatorJetTotHt(unsigned totHt, bool overFlow, int16_t bx)
void process() override=0
process the data, fill output buffers; to be filled in by derived jetFinders
void resetProcessor() override
Separate reset methods for the processor itself and any data stored in pipelines. ...
int bxMin() const
Support for multiple beam crossing operation.
Pipeline< etComponentType > m_eySumPipe
Pipeline< htComponentType > m_hySumPipe
void fetchInput() override
set the input buffers
etCompInternJfType getEySum() const
Get the y component of vector Et summed over the input regions.
std::vector< L1GctJetCand > getOutputJetsA() const
Output jetfinder A jets (lowest jetFinder in phi)
void setBxRange(const int firstBx, const int numberOfBx)
define the bunch crossing range to process
JetVector getJets() const
Get the located jets.
L1GctTwosComplement< L1GctInternHtMiss::kMissHxOrHyNBits > htComponentType
void setBxRange(const int firstBx, const int numberOfBx)
define the bunch crossing range to process
jetFinderType m_whichJetFinder
bool setupOk() const
Check setup is Ok.
htCompInternJfType getHySum() const
Get the y component of vector Ht summed over jets above threshold.
void setNextBx(const int bx)
partially clear buffers
static const int MAX_JET_FINDERS
Number of jetfinders per jet leaf card.
static L1GctInternHtMiss emulatorMissHtxHty(const int htx, const int hty, const bool overFlow, const int16_t bx)
Named ctor for making missing Ht x & y components object from emulator (wheel input).
void fetchInput() override=0
get input data from sources; to be filled in by derived jetFinders
L1GctJetLeafCard(int id, int iphi, jetFinderType jfType=tdrJetFinder)
std::vector< L1GctInternHtMiss > getInternalHtMiss() const
void reset()
reset value and overflow to zero
L1GctJetFinderBase * m_jetFinderA
lowest jetFinder in phi
void setNeighbourJetFinders(const std::vector< L1GctJetFinderBase *> &neighbours)
Set pointers to neighbours - needed to complete the setup.
void setValue(unsigned value)
Set value from unsigned.
Pipeline< hfTowerSumsType > m_hfSumsPipe
void reset()
reset value and overflow to zero
Emulation of the hardware jet finder.
Pipeline< etComponentType > m_exSumPipe
static L1GctInternEtSum fromEmulatorJetMissEt(int missEtxOrEty, bool overFlow, int16_t bx)
Log< level::Warning, false > LogWarning
void setNextBx(const int bxnum)
clear input data buffers and process a new bunch crossing
etTotalType getEtSum() const
Get the scalar sum of Et summed over the input regions.
void resetPipelines() override
hfTowerSumsType getHfSums() const
Get the Hf tower Et sums and tower-over-threshold counts.
L1GctTwosComplement< L1GctInternEtSum::kMissExOrEyNBits > etComponentType