17 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),
25 m_exValPlusWheel(), m_eyValPlusWheel(),
26 m_etValPlusWheel(), m_htValPlusWheel(),
27 m_exVlMinusWheel(), m_eyVlMinusWheel(),
28 m_etVlMinusWheel(), m_htVlMinusWheel(),
29 m_exValPlusPipe(), m_eyValPlusPipe(),
30 m_etValPlusPipe(), m_htValPlusPipe(),
31 m_exVlMinusPipe(), m_eyVlMinusPipe(),
32 m_etVlMinusPipe(), m_htVlMinusPipe(),
33 m_outputEtMiss(), m_outputEtMissPhi(),
34 m_outputEtSum(), m_outputEtHad(),
37 if(wheelFpga.size() != 2)
42 <<
"L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos() : Global Energy Algos has been incorrectly constructed!\n"
43 <<
"This class needs two wheel card pointers. "
44 <<
"Number of wheel card pointers present is " << wheelFpga.size() <<
".\n";
48 if(wheelJetFpga.size() != 2)
53 <<
"L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos() : Global Energy Algos has been incorrectly constructed!\n"
54 <<
"This class needs two wheel jet fpga pointers. "
55 <<
"Number of wheel jet fpga pointers present is " << wheelJetFpga.size() <<
".\n";
64 <<
"L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos() has been incorrectly constructed!\n"
65 <<
"Plus Wheel Fpga pointer has not been set!\n";
73 <<
"L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos() has been incorrectly constructed!\n"
74 <<
"Minus Wheel Fpga pointer has not been set!\n";
82 <<
"L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos() has been incorrectly constructed!\n"
83 <<
"Plus Wheel Jet Fpga pointer has not been set!\n";
91 <<
"L1GctGlobalEnergyAlgos::L1GctGlobalEnergyAlgos() has been incorrectly constructed!\n"
92 <<
"Minus Wheel Jet Fpga pointer has not been set!\n";
110 edm::LogError(
"L1GctSetupError") <<
"L1GctGlobalEnergyAlgos has been incorrectly constructed";
123 os <<
"===L1GctGlobalEnergyAlgos===" << endl;
128 os <<
"Inputs from Plus wheel:" << endl;
131 os <<
"Inputs from Minus wheel:" << endl;
134 int bxZero = -fpga.
bxMin();
135 if (bxZero>=0 && bxZero<fpga.
numOfBx()) {
136 os <<
"Output Etmiss " << fpga.
m_outputEtMiss.contents.at(bxZero) << endl;
137 os <<
"Output Etmiss Phi " << fpga.
m_outputEtMissPhi.contents.at(bxZero) << endl;
138 os <<
"Output EtSum " << fpga.
m_outputEtSum.contents.at(bxZero) << endl;
139 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;
339 }
else if (wheel==1) {
353 }
else if (wheel==1) {
367 }
else if (wheel==1) {
381 }
else if (wheel==1) {
396 }
else if (wheel==1) {
411 }
else if (wheel==1) {
etTotalType m_etValPlusWheel
void setOverFlow(bool oflow)
set the overflow bit
void reset()
complete reset of processor
bool setupOk() const
check setup
bool setupOk() const
check setup
void reset()
clear internal buffers
htComponentType getOutputHy() const
Pipeline< etMissType > m_outputHtMiss
void setOverFlow(bool oflow)
set the overflow bit
etComponentType m_eyValPlusWheel
Emulates the GCT summing and packing of Hf Et sums and tower-over-threshold counts.
etComponentType m_exValPlusWheel
Pipeline< etTotalType > m_etVlMinusPipe
bool m_verbose
Flag to control output messages.
void setInputWheelEx(unsigned wheel, int energy, bool overflow)
set input Ex value per wheel (0 or 1); not used in normal operation
Pipeline< etMissPhiType > m_outputHtMissPhi
etComponentType m_hxValPlusWheel
etComponentType getOutputEy() const
get output Ey value
void setInputWheelHy(unsigned wheel, unsigned energy, bool overflow)
void setJetFinderParams(const L1GctJetFinderParams *const jfpars)
int bxMin() const
Support for multiple beam crossing operation.
Pipeline< etComponentType > m_exValPlusPipe
virtual void fetchInput()
get input data from sources; this is the standard way to provide input
L1GctWheelJetFpga * m_plusWheelJetFpga
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Pipeline< etComponentType > m_eyVlMinusPipe
double getHtLsbGeV() const
virtual void process()
process the data, fill output buffers
Pipeline< etComponentType > m_hyVlMinusPipe
Stores Level-1 missing Et in (Ex, Ey) form, allowing it to be retrieved as (magnitude, angle)
void setComponents(const unsigned ex, const unsigned ey)
etComponentType m_eyVlMinusWheel
void setHtMissScale(const L1CaloEtScale *const scale)
ABC for a GCT trigger data processing unit.
void setEtScale(const L1CaloEtScale *const fn)
unsigned value() const
access value as unsigned
Pipeline< etHadType > m_outputEtHad
virtual void resetProcessor()
Separate reset methods for the processor itself and any data stored in pipelines. ...
virtual void fetchInput()
get input data from sources
L1GctWheelEnergyFpga * m_minusWheelFpga
const T & max(const T &a, const T &b)
void setInputWheelHx(unsigned wheel, unsigned energy, bool overflow)
set input Ht component values per wheel (0 or 1); not used in normal operation
etComponentType getOutputEx() const
get output Ex value
L1GctGlobalEnergyAlgos(std::vector< L1GctWheelEnergyFpga * > WheelFpga, std::vector< L1GctWheelJetFpga * > WheelJetFpga)
Constructor needs the Wheel card Fpgas set up first.
L1GctGlobalHfSumAlgos * m_hfSumProcessor
Emulates the GCT global energy algorithms.
virtual void process()
process the data, fill output buffers
etHadType m_htValPlusWheel
etTotalType m_etVlMinusWheel
void setBxRange(const int firstBx, const int numberOfBx)
define the bunch crossing range to process
void setBxRange(const int firstBx, const int numberOfBx)
define the bunch crossing range to process
void setValue(int value)
set value from signed int
virtual void resetPipelines()
etHadType getOutputHt() const
get the output Ht
void setInputWheelHt(unsigned wheel, unsigned energy, bool overflow)
set input Ht value per wheel (0 or 1); not used in normal operation
etComponentType m_exVlMinusWheel
L1GctWheelJetFpga * m_minusWheelJetFpga
void setInputWheelEy(unsigned wheel, int energy, bool overflow)
set input Ey value per wheel (0 or 1); not used in normal operation
Pipeline< etMissPhiType > m_outputEtMissPhi
Pipeline< etComponentType > m_hyValPlusPipe
L1GctWheelEnergyFpga * m_plusWheelFpga
etmiss_vec metVector() const
etHadType m_htVlMinusWheel
etTotalType getOutputEt() const
get output Et value
Pipeline< etComponentType > m_eyValPlusPipe
Pipeline< etMissType > m_outputEtMiss
Pipeline< etComponentType > m_exVlMinusPipe
void reset()
reset value and overflow to zero
htComponentType getOutputHx() const
get the output Ht components
void setValue(unsigned value)
Set value from unsigned.
etComponentType m_hyVlMinusWheel
Pipeline< etComponentType > m_hxVlMinusPipe
etComponentType m_hyValPlusWheel
void reset()
reset value and overflow to zero
Pipeline< etHadType > m_htValPlusPipe
etComponentType m_hxVlMinusWheel
void setNextBx(const int bx)
partially clear buffers
bool overFlow() const
access overflow
void setNextBx(const int bxnum)
clear input data buffers and process a new bunch crossing
Pipeline< etTotalType > m_outputEtSum
Pipeline< etTotalType > m_etValPlusPipe
Pipeline< etComponentType > m_hxValPlusPipe
void setInputWheelEt(unsigned wheel, unsigned energy, bool overflow)
set input Et value per wheel (0 or 1); not used in normal operation
void setBitShift(const unsigned nbits)
~L1GctGlobalEnergyAlgos()
Destructor.
void setEtComponentLsb(const double lsb)
Pipeline< etHadType > m_htVlMinusPipe