|
|
Go to the documentation of this file.
17 const std::vector<L1GctWheelJetFpga*>& wheelJetFpga)
19 m_plusWheelFpga(wheelFpga.at(1)),
20 m_minusWheelFpga(wheelFpga.at(0)),
21 m_plusWheelJetFpga(wheelJetFpga.at(1)),
22 m_minusWheelJetFpga(wheelJetFpga.at(0)),
23 m_metComponents(0, 0,
L1GctMet::cordicTranslate),
24 m_mhtComponents(0, 0,
L1GctMet::useHtMissLut),
46 if (wheelFpga.size() != 2) {
49 edm::LogWarning(
"L1GctSetupError") <<
"L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos() : Global Energy Algos "
50 "has been incorrectly constructed!\n"
51 <<
"This class needs two wheel card pointers. "
52 <<
"Number of wheel card pointers present is " << wheelFpga.size() <<
".\n";
56 if (wheelJetFpga.size() != 2) {
59 edm::LogWarning(
"L1GctSetupError") <<
"L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos() : Global Energy Algos "
60 "has been incorrectly constructed!\n"
61 <<
"This class needs two wheel jet fpga pointers. "
62 <<
"Number of wheel jet fpga pointers present is " << wheelJetFpga.size()
71 <<
"L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos() has been incorrectly constructed!\n"
72 <<
"Plus Wheel Fpga pointer has not been set!\n";
79 <<
"L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos() has been incorrectly constructed!\n"
80 <<
"Minus Wheel Fpga pointer has not been set!\n";
87 <<
"L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos() has been incorrectly constructed!\n"
88 <<
"Plus Wheel Jet Fpga pointer has not been set!\n";
95 <<
"L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos() has been incorrectly constructed!\n"
96 <<
"Minus Wheel Jet Fpga pointer has not been set!\n";
114 edm::LogError(
"L1GctSetupError") <<
"L1GctGlobalEnergyAlgos has been incorrectly constructed";
125 os <<
"===L1GctGlobalEnergyAlgos===" << endl;
130 os <<
"Inputs from Plus wheel:" << endl;
133 os <<
"Inputs from Minus wheel:" << endl;
136 int bxZero = -fpga.
bxMin();
137 if (bxZero >= 0 && bxZero < fpga.
numOfBx()) {
138 os <<
"Output Etmiss " << fpga.
m_outputEtMiss.contents.at(bxZero) << endl;
139 os <<
"Output Etmiss Phi " << fpga.
m_outputEtMissPhi.contents.at(bxZero) << endl;
140 os <<
"Output EtSum " << fpga.
m_outputEtSum.contents.at(bxZero) << endl;
141 os <<
"Output EtHad " << fpga.
m_outputEtHad.contents.at(bxZero) << endl;
283 static const unsigned MAX_HT_VALUE = 0x7f;
284 static const unsigned PHI_HT_MASK = 0x1f;
333 }
else if (
wheel == 1) {
346 }
else if (
wheel == 1) {
359 }
else if (
wheel == 1) {
372 }
else if (
wheel == 1) {
385 }
else if (
wheel == 1) {
398 }
else if (
wheel == 1) {
void resetPipelines() override
void setInputWheelEt(unsigned wheel, unsigned energy, bool overflow)
set input Et value per wheel (0 or 1); not used in normal operation
Pipeline< etComponentType > m_hyVlMinusPipe
void setValue(unsigned value)
Set value from unsigned.
Pipeline< etComponentType > m_hxVlMinusPipe
void reset()
clear internal buffers
void setComponents(const unsigned ex, const unsigned ey)
void fetchInput() override
get input data from sources; this is the standard way to provide input
void setInputWheelEx(unsigned wheel, int energy, bool overflow)
set input Ex value per wheel (0 or 1); not used in normal operation
Emulates the GCT summing and packing of Hf Et sums and tower-over-threshold counts.
void setNextBx(const int bxnum)
clear input data buffers and process a new bunch crossing
etTotalType getOutputEt() const
get output Et value
Pipeline< etTotalType > m_etVlMinusPipe
bool setupOk() const
check setup
Emulates the GCT global energy algorithms.
etTotalType m_etValPlusWheel
void setJetFinderParams(const L1GctJetFinderParams *const jfpars)
etComponentType m_exValPlusWheel
void setBxRange(const int firstBx, const int numberOfBx)
define the bunch crossing range to process
unsigned value() const
access value as unsigned
Pipeline< etComponentType > m_exValPlusPipe
double getHtLsbGeV() const
void fetchInput() override
get input data from sources
void setBitShift(const unsigned nbits)
Pipeline< etMissPhiType > m_outputHtMissPhi
L1GctGlobalHfSumAlgos * m_hfSumProcessor
Pipeline< etMissType > m_outputHtMiss
etComponentType m_eyVlMinusWheel
etHadType getOutputHt() const
get the output Ht
Pipeline< etComponentType > m_eyVlMinusPipe
void setValue(int value)
set value from signed int
Pipeline< etHadType > m_outputEtHad
etComponentType m_hxValPlusWheel
L1GctWheelJetFpga * m_minusWheelJetFpga
ostream & operator<<(ostream &os, const L1GctGlobalEnergyAlgos &fpga)
void setInputWheelHy(unsigned wheel, unsigned energy, bool overflow)
L1GctGlobalEnergyAlgos(const std::vector< L1GctWheelEnergyFpga * > &WheelFpga, const std::vector< L1GctWheelJetFpga * > &WheelJetFpga)
Constructor needs the Wheel card Fpgas set up first.
etHadType m_htVlMinusWheel
L1GctWheelEnergyFpga * m_minusWheelFpga
void reset()
complete reset of processor
etHadType m_htValPlusWheel
L1GctWheelEnergyFpga * m_plusWheelFpga
Pipeline< etComponentType > m_hyValPlusPipe
L1GctWheelJetFpga * m_plusWheelJetFpga
Pipeline< etTotalType > m_etValPlusPipe
etTotalType m_etVlMinusWheel
bool setupOk() const
check setup
Pipeline< etMissPhiType > m_outputEtMissPhi
void setInputWheelEy(unsigned wheel, int energy, bool overflow)
set input Ey value per wheel (0 or 1); not used in normal operation
bool m_verbose
Flag to control output messages.
void setInputWheelHx(unsigned wheel, unsigned energy, bool overflow)
set input Ht component values per wheel (0 or 1); not used in normal operation
void setHtMissScale(const L1CaloEtScale *const scale)
int bxMin() const
Support for multiple beam crossing operation.
Pipeline< etComponentType > m_exVlMinusPipe
void setBxRange(const int firstBx, const int numberOfBx)
define the bunch crossing range to process
Pipeline< etHadType > m_htValPlusPipe
etComponentType m_hyValPlusWheel
void process() override
process the data, fill output buffers
void setInputWheelHt(unsigned wheel, unsigned energy, bool overflow)
set input Ht value per wheel (0 or 1); not used in normal operation
Pipeline< etComponentType > m_eyValPlusPipe
void setEtComponentLsb(const double lsb)
etComponentType getOutputEy() const
get output Ey value
void resetProcessor() override
Separate reset methods for the processor itself and any data stored in pipelines.
etComponentType getOutputEx() const
get output Ex value
Stores Level-1 missing Et in (Ex, Ey) form, allowing it to be retrieved as (magnitude,...
etComponentType m_exVlMinusWheel
void reset()
reset value and overflow to zero
htComponentType getOutputHx() const
get the output Ht components
bool overFlow() const
access overflow
Pipeline< etMissType > m_outputEtMiss
void setOverFlow(bool oflow)
set the overflow bit
void process() override
process the data, fill output buffers
htComponentType getOutputHy() const
~L1GctGlobalEnergyAlgos() override
Destructor.
Pipeline< etHadType > m_htVlMinusPipe
void setNextBx(const int bx)
partially clear buffers
void setEtScale(const L1CaloEtScale *const fn)
void setOverFlow(bool oflow)
set the overflow bit
etComponentType m_hyVlMinusWheel
ABC for a GCT trigger data processing unit.
etComponentType m_hxVlMinusWheel
Pipeline< etTotalType > m_outputEtSum
etComponentType m_eyValPlusWheel
Pipeline< etComponentType > m_hxValPlusPipe
etmiss_vec metVector() const
void reset()
reset value and overflow to zero