CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends
L1GctGlobalHfSumAlgos Class Reference

Emulates the GCT summing and packing of Hf Et sums and tower-over-threshold counts. More...

#include <L1GctGlobalHfSumAlgos.h>

Inheritance diagram for L1GctGlobalHfSumAlgos:
L1GctProcessor

Public Types

typedef L1GctJetFinderBase::hfTowerSumsType hfTowerSumsType
 

Public Member Functions

void fetchInput () override
 get input data from sources; this is the standard way to provide input More...
 
const L1GctHfBitCountsLutgetBCLut (const L1GctHfEtSumsLut::hfLutType type) const
 Get lut pointers. More...
 
const L1GctHfEtSumsLutgetESLut (const L1GctHfEtSumsLut::hfLutType type) const
 
L1GctWheelJetFpgagetMinusWheelJetFpga () const
 provide access to input pointer, Wheel Jet Fpga 0 More...
 
L1GctWheelJetFpgagetPlusWheelJetFpga () const
 provide access to input pointer, Wheel Jet Fpga 1 More...
 
std::vector< double > getThresholds (const L1GctHfEtSumsLut::hfLutType type) const
 Get thresholds. More...
 
std::vector< uint16_t > hfSumsOutput (const L1GctHfEtSumsLut::hfLutType type) const
 Access to output quantities. More...
 
std::vector< unsigned > hfSumsWord () const
 
 L1GctGlobalHfSumAlgos (const std::vector< L1GctWheelJetFpga *> &WheelJetFpga)
 Constructor needs the Wheel card Fpgas set up first. More...
 
void process () override
 process the data, fill output buffers More...
 
void setupLuts (const L1CaloEtScale *scale)
 Setup luts. More...
 
bool setupOk () const
 check setup More...
 
 ~L1GctGlobalHfSumAlgos () override
 Destructor. More...
 
- Public Member Functions inherited from L1GctProcessor
 L1GctProcessor ()
 
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

void resetPipelines () override
 
void resetProcessor () override
 Separate reset methods for the processor itself and any data stored in pipelines. More...
 
void setupObjects () override
 Initialise inputs with null objects for the correct bunch crossing if required. More...
 
- Protected Member Functions inherited from L1GctProcessor
int bxAbs () const
 
int bxMax () const
 
int bxMin () const
 Support for multiple beam crossing operation. More...
 
int bxRel () const
 
int numOfBx () const
 

Private Member Functions

void storeBitCount (L1GctHfEtSumsLut::hfLutType type, uint16_t value)
 
void storeEtSum (L1GctHfEtSumsLut::hfLutType type, uint16_t value)
 

Private Attributes

std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfBitCountsLut * > m_bitCountLuts
 
std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfEtSumsLut * > m_etSumLuts
 
hfTowerSumsType m_hfInputSumsMinusWheel
 
hfTowerSumsType m_hfInputSumsPlusWheel
 
std::map< L1GctHfEtSumsLut::hfLutType, Pipeline< uint16_t > > m_hfOutputSumsPipe
 
L1GctWheelJetFpgam_minusWheelJetFpga
 
L1GctWheelJetFpgam_plusWheelJetFpga
 
bool m_setupOk
 

Friends

std::ostream & operator<< (std::ostream &os, const L1GctGlobalHfSumAlgos &fpga)
 Overload << operator. More...
 

Additional Inherited Members

- Protected Attributes inherited from L1GctProcessor
bool m_verbose
 Flag to control output messages. More...
 

Detailed Description

Emulates the GCT summing and packing of Hf Et sums and tower-over-threshold counts.

Gets the sums from the wheel cards and packs them into the output after compression using look-up tables

Author
Greg Heath
Date
09/09/2008

Definition at line 27 of file L1GctGlobalHfSumAlgos.h.

Member Typedef Documentation

◆ hfTowerSumsType

Definition at line 29 of file L1GctGlobalHfSumAlgos.h.

Constructor & Destructor Documentation

◆ L1GctGlobalHfSumAlgos()

L1GctGlobalHfSumAlgos::L1GctGlobalHfSumAlgos ( const std::vector< L1GctWheelJetFpga *> &  WheelJetFpga)

Constructor needs the Wheel card Fpgas set up first.

Definition at line 11 of file L1GctGlobalHfSumAlgos.cc.

References m_minusWheelJetFpga, m_plusWheelJetFpga, m_setupOk, and L1GctProcessor::m_verbose.

12  : L1GctProcessor(),
13  m_plusWheelJetFpga(wheelJetFpga.at(1)),
14  m_minusWheelJetFpga(wheelJetFpga.at(0)),
16  m_etSumLuts(),
20  m_setupOk(true) {
21  if (wheelJetFpga.size() != 2) {
22  m_setupOk = false;
23  if (m_verbose) {
24  edm::LogWarning("L1GctSetupError")
25  << "L1GctGlobalHfSumAlgos::L1GctGlobalHfSumAlgos() : Global HfSum Algos has been incorrectly constructed!\n"
26  << "This class needs two wheel jet fpga pointers. "
27  << "Number of wheel jet fpga pointers present is " << wheelJetFpga.size() << ".\n";
28  }
29  }
30 
31  if (m_plusWheelJetFpga == nullptr) {
32  m_setupOk = false;
33  if (m_verbose) {
34  edm::LogWarning("L1GctSetupError")
35  << "L1GctGlobalHfSumAlgos::L1GctGlobalHfSumAlgos() has been incorrectly constructed!\n"
36  << "Plus Wheel Jet Fpga pointer has not been set!\n";
37  }
38  }
39  if (m_minusWheelJetFpga == nullptr) {
40  m_setupOk = false;
41  if (m_verbose) {
42  edm::LogWarning("L1GctSetupError")
43  << "L1GctGlobalHfSumAlgos::L1GctGlobalHfSumAlgos() has been incorrectly constructed!\n"
44  << "Minus Wheel Jet Fpga pointer has not been set!\n";
45  }
46  }
47 
48  if (!m_setupOk && m_verbose) {
49  edm::LogError("L1GctSetupError") << "L1GctGlobalEnergyAlgos has been incorrectly constructed";
50  }
51 }
L1GctWheelJetFpga * m_minusWheelJetFpga
std::map< L1GctHfEtSumsLut::hfLutType, Pipeline< uint16_t > > m_hfOutputSumsPipe
bool m_verbose
Flag to control output messages.
hfTowerSumsType m_hfInputSumsPlusWheel
Log< level::Error, false > LogError
hfTowerSumsType m_hfInputSumsMinusWheel
std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfEtSumsLut * > m_etSumLuts
L1GctWheelJetFpga * m_plusWheelJetFpga
std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfBitCountsLut * > m_bitCountLuts
Log< level::Warning, false > LogWarning

◆ ~L1GctGlobalHfSumAlgos()

L1GctGlobalHfSumAlgos::~L1GctGlobalHfSumAlgos ( )
override

Destructor.

Definition at line 53 of file L1GctGlobalHfSumAlgos.cc.

References m_bitCountLuts, and m_etSumLuts.

53  {
54  std::map<L1GctHfEtSumsLut::hfLutType, const L1GctHfBitCountsLut*>::const_iterator bclut = m_bitCountLuts.begin();
55  while (bclut != m_bitCountLuts.end()) {
56  delete bclut->second;
57  bclut++;
58  }
59  std::map<L1GctHfEtSumsLut::hfLutType, const L1GctHfEtSumsLut*>::const_iterator eslut = m_etSumLuts.begin();
60  while (eslut != m_etSumLuts.end()) {
61  delete eslut->second;
62  eslut++;
63  }
64 }
std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfEtSumsLut * > m_etSumLuts
std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfBitCountsLut * > m_bitCountLuts

Member Function Documentation

◆ fetchInput()

void L1GctGlobalHfSumAlgos::fetchInput ( )
overridevirtual

get input data from sources; this is the standard way to provide input

Implements L1GctProcessor.

Definition at line 104 of file L1GctGlobalHfSumAlgos.cc.

References L1GctWheelJetFpga::getOutputHfSums(), m_hfInputSumsMinusWheel, m_hfInputSumsPlusWheel, m_minusWheelJetFpga, m_plusWheelJetFpga, and m_setupOk.

Referenced by L1GctGlobalEnergyAlgos::fetchInput().

104  {
105  if (m_setupOk) {
108  }
109 }
L1GctWheelJetFpga * m_minusWheelJetFpga
hfTowerSumsType m_hfInputSumsPlusWheel
hfTowerSumsType m_hfInputSumsMinusWheel
L1GctWheelJetFpga * m_plusWheelJetFpga
hfTowerSumsType getOutputHfSums() const
get the output Hf Sums

◆ getBCLut()

const L1GctHfBitCountsLut * L1GctGlobalHfSumAlgos::getBCLut ( const L1GctHfEtSumsLut::hfLutType  type) const

Get lut pointers.

Definition at line 244 of file L1GctGlobalHfSumAlgos.cc.

References m_bitCountLuts.

Referenced by L1GctPrintLuts::analyze().

244  {
245  std::map<L1GctHfEtSumsLut::hfLutType, const L1GctHfBitCountsLut*>::const_iterator bclut = m_bitCountLuts.find(type);
246  if (bclut != m_bitCountLuts.end()) {
247  return (bclut->second);
248  } else {
249  return nullptr;
250  }
251 }
std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfBitCountsLut * > m_bitCountLuts

◆ getESLut()

const L1GctHfEtSumsLut * L1GctGlobalHfSumAlgos::getESLut ( const L1GctHfEtSumsLut::hfLutType  type) const

Definition at line 253 of file L1GctGlobalHfSumAlgos.cc.

References m_etSumLuts.

Referenced by L1GctPrintLuts::analyze(), and getThresholds().

253  {
254  std::map<L1GctHfEtSumsLut::hfLutType, const L1GctHfEtSumsLut*>::const_iterator eslut = m_etSumLuts.find(type);
255  if (eslut != m_etSumLuts.end()) {
256  return (eslut->second);
257  } else {
258  return nullptr;
259  }
260 }
std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfEtSumsLut * > m_etSumLuts

◆ getMinusWheelJetFpga()

L1GctWheelJetFpga* L1GctGlobalHfSumAlgos::getMinusWheelJetFpga ( ) const
inline

provide access to input pointer, Wheel Jet Fpga 0

Definition at line 62 of file L1GctGlobalHfSumAlgos.h.

References m_minusWheelJetFpga.

62 { return m_minusWheelJetFpga; }
L1GctWheelJetFpga * m_minusWheelJetFpga

◆ getPlusWheelJetFpga()

L1GctWheelJetFpga* L1GctGlobalHfSumAlgos::getPlusWheelJetFpga ( ) const
inline

provide access to input pointer, Wheel Jet Fpga 1

Definition at line 60 of file L1GctGlobalHfSumAlgos.h.

References m_plusWheelJetFpga.

60 { return m_plusWheelJetFpga; }
L1GctWheelJetFpga * m_plusWheelJetFpga

◆ getThresholds()

std::vector< double > L1GctGlobalHfSumAlgos::getThresholds ( const L1GctHfEtSumsLut::hfLutType  type) const

Get thresholds.

Definition at line 263 of file L1GctGlobalHfSumAlgos.cc.

References getESLut(), L1CaloEtScale::getThresholds(), L1GctHfEtSumsLut::lutFunction(), and mps_fire::result.

263  {
264  std::vector<double> result;
265  const L1GctHfEtSumsLut* ESLut = getESLut(type);
266  if (ESLut != nullptr) {
267  result = ESLut->lutFunction()->getThresholds();
268  }
269  return result;
270 }
const std::vector< double > & getThresholds() const
get thresholds
Definition: L1CaloEtScale.h:66
LUT for compression of HF Et sum to output format.
const L1CaloEtScale * lutFunction() const
Return the Lut function.
const L1GctHfEtSumsLut * getESLut(const L1GctHfEtSumsLut::hfLutType type) const

◆ hfSumsOutput()

std::vector< uint16_t > L1GctGlobalHfSumAlgos::hfSumsOutput ( const L1GctHfEtSumsLut::hfLutType  type) const

Access to output quantities.

Definition at line 160 of file L1GctGlobalHfSumAlgos.cc.

References relmon_rootfiles_spy::contents, m_hfOutputSumsPipe, L1GctProcessor::numOfBx(), and mps_fire::result.

Referenced by hfSumsWord().

160  {
161  std::vector<uint16_t> result(numOfBx());
162  std::map<L1GctHfEtSumsLut::hfLutType, Pipeline<uint16_t> >::const_iterator lut = m_hfOutputSumsPipe.find(type);
163  if (lut != m_hfOutputSumsPipe.end()) {
164  result = (lut->second).contents;
165  }
166 
167  return result;
168 }
int numOfBx() const
std::map< L1GctHfEtSumsLut::hfLutType, Pipeline< uint16_t > > m_hfOutputSumsPipe

◆ hfSumsWord()

std::vector< unsigned > L1GctGlobalHfSumAlgos::hfSumsWord ( ) const

Definition at line 170 of file L1GctGlobalHfSumAlgos.cc.

References L1GctHfEtSumsLut::bitCountNegEtaRing1, L1GctHfEtSumsLut::bitCountNegEtaRing2, L1GctHfEtSumsLut::bitCountPosEtaRing1, L1GctHfEtSumsLut::bitCountPosEtaRing2, nano_mu_digi_cff::bx, L1GctHfEtSumsLut::etSumNegEtaRing1, L1GctHfEtSumsLut::etSumNegEtaRing2, L1GctHfEtSumsLut::etSumPosEtaRing1, L1GctHfEtSumsLut::etSumPosEtaRing2, hfSumsOutput(), L1GctProcessor::numOfBx(), and mps_fire::result.

Referenced by operator<<().

170  {
171  std::vector<unsigned> result(numOfBx(), 0x00001000);
172  std::vector<uint16_t> outputBits;
173 
175  for (unsigned bx = 0; bx < outputBits.size(); bx++) {
176  result.at(bx) |= outputBits.at(bx);
177  }
178 
180  for (unsigned bx = 0; bx < outputBits.size(); bx++) {
181  result.at(bx) |= outputBits.at(bx) << 3;
182  }
183 
185  for (unsigned bx = 0; bx < outputBits.size(); bx++) {
186  result.at(bx) |= outputBits.at(bx) << 6;
187  }
188 
190  for (unsigned bx = 0; bx < outputBits.size(); bx++) {
191  result.at(bx) |= outputBits.at(bx) << 9;
192  }
193 
195  for (unsigned bx = 0; bx < outputBits.size(); bx++) {
196  result.at(bx) |= outputBits.at(bx) << 12;
197  }
198 
200  for (unsigned bx = 0; bx < outputBits.size(); bx++) {
201  result.at(bx) |= outputBits.at(bx) << 16;
202  }
203 
205  for (unsigned bx = 0; bx < outputBits.size(); bx++) {
206  result.at(bx) |= outputBits.at(bx) << 19;
207  }
208 
210  for (unsigned bx = 0; bx < outputBits.size(); bx++) {
211  result.at(bx) |= outputBits.at(bx) << 22;
212  }
213 
214  return result;
215 }
int numOfBx() const
std::vector< uint16_t > hfSumsOutput(const L1GctHfEtSumsLut::hfLutType type) const
Access to output quantities.

◆ process()

void L1GctGlobalHfSumAlgos::process ( )
overridevirtual

process the data, fill output buffers

Implements L1GctProcessor.

Definition at line 112 of file L1GctGlobalHfSumAlgos.cc.

References L1GctHfEtSumsLut::bitCountNegEtaRing1, L1GctHfEtSumsLut::bitCountNegEtaRing2, L1GctHfEtSumsLut::bitCountPosEtaRing1, L1GctHfEtSumsLut::bitCountPosEtaRing2, L1GctJetFinderBase::hfTowerSumsType::etSum0, L1GctJetFinderBase::hfTowerSumsType::etSum1, L1GctHfEtSumsLut::etSumNegEtaRing1, L1GctHfEtSumsLut::etSumNegEtaRing2, L1GctHfEtSumsLut::etSumPosEtaRing1, L1GctHfEtSumsLut::etSumPosEtaRing2, m_hfInputSumsMinusWheel, m_hfInputSumsPlusWheel, m_setupOk, L1GctJetFinderBase::hfTowerSumsType::nOverThreshold0, L1GctJetFinderBase::hfTowerSumsType::nOverThreshold1, storeBitCount(), storeEtSum(), and L1GctUnsignedInt< nBits >::value().

Referenced by L1GctGlobalEnergyAlgos::process().

112  {
113  if (m_setupOk) {
114  // step through the different types of Hf summed quantity
115  // and store each one in turn into the relevant pipeline
116 
117  // bit count, positive eta, ring 1
119 
120  // bit count, negative eta, ring 1
122 
123  // bit count, positive eta, ring 2
125 
126  // bit count, negative eta, ring 2
128 
129  // et sum, positive eta, ring 1
131 
132  // et sum, negative eta, ring 1
134 
135  // et sum, positive eta, ring 2
137 
138  // et sum, negative eta, ring 2
140  }
141 }
L1GctJetCount< kHfCountBits > nOverThreshold1
unsigned value() const
access value as unsigned
hfTowerSumsType m_hfInputSumsPlusWheel
L1GctJetCount< kHfEtSumBits > etSum1
hfTowerSumsType m_hfInputSumsMinusWheel
void storeEtSum(L1GctHfEtSumsLut::hfLutType type, uint16_t value)
L1GctJetCount< kHfCountBits > nOverThreshold0
L1GctJetCount< kHfEtSumBits > etSum0
void storeBitCount(L1GctHfEtSumsLut::hfLutType type, uint16_t value)

◆ resetPipelines()

void L1GctGlobalHfSumAlgos::resetPipelines ( )
overrideprotectedvirtual

Implements L1GctProcessor.

Definition at line 94 of file L1GctGlobalHfSumAlgos.cc.

References m_hfOutputSumsPipe, L1GctHfEtSumsLut::numberOfLutTypes, L1GctProcessor::numOfBx(), submitPVValidationJobs::t, and groupFilesInBlocks::temp.

94  {
95  m_hfOutputSumsPipe.clear();
96  Pipeline<uint16_t> temp(numOfBx());
97  // Make one copy of the empty pipeline for each type of Hf lut
98  unsigned nTypes = (unsigned)L1GctHfEtSumsLut::numberOfLutTypes;
99  for (unsigned t = 0; t < nTypes; ++t) {
101  }
102 }
int numOfBx() const
std::map< L1GctHfEtSumsLut::hfLutType, Pipeline< uint16_t > > m_hfOutputSumsPipe

◆ resetProcessor()

void L1GctGlobalHfSumAlgos::resetProcessor ( )
overrideprotectedvirtual

Separate reset methods for the processor itself and any data stored in pipelines.

Implements L1GctProcessor.

Definition at line 89 of file L1GctGlobalHfSumAlgos.cc.

References m_hfInputSumsMinusWheel, m_hfInputSumsPlusWheel, and L1GctJetFinderBase::hfTowerSumsType::reset().

◆ setupLuts()

void L1GctGlobalHfSumAlgos::setupLuts ( const L1CaloEtScale scale)

Setup luts.

Definition at line 218 of file L1GctGlobalHfSumAlgos.cc.

References L1GctHfEtSumsLut::bitCountNegEtaRing1, L1GctHfEtSumsLut::bitCountNegEtaRing2, L1GctHfEtSumsLut::bitCountPosEtaRing1, L1GctHfEtSumsLut::bitCountPosEtaRing2, L1GctHfEtSumsLut::etSumNegEtaRing1, L1GctHfEtSumsLut::etSumNegEtaRing2, L1GctHfEtSumsLut::etSumPosEtaRing1, L1GctHfEtSumsLut::etSumPosEtaRing2, m_bitCountLuts, m_etSumLuts, and pfClustersFromCombinedCaloHF_cfi::scale.

Referenced by L1GlobalCaloTrigger::setupHfSumLuts().

218  {
219  // Replaces existing list of luts with a new one
220  while (!m_bitCountLuts.empty()) {
221  delete m_bitCountLuts.begin()->second;
222  m_bitCountLuts.erase(m_bitCountLuts.begin());
223  }
232 
233  while (!m_etSumLuts.empty()) {
234  delete m_etSumLuts.begin()->second;
235  m_etSumLuts.erase(m_etSumLuts.begin());
236  }
241 }
std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfEtSumsLut * > m_etSumLuts
LUT for compression of HF feature bit counts to output format.
LUT for compression of HF Et sum to output format.
std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfBitCountsLut * > m_bitCountLuts

◆ setupObjects()

void L1GctGlobalHfSumAlgos::setupObjects ( )
inlineoverrideprotectedvirtual

Initialise inputs with null objects for the correct bunch crossing if required.

Implements L1GctProcessor.

Definition at line 73 of file L1GctGlobalHfSumAlgos.h.

73 {}

◆ setupOk()

bool L1GctGlobalHfSumAlgos::setupOk ( ) const
inline

◆ storeBitCount()

void L1GctGlobalHfSumAlgos::storeBitCount ( L1GctHfEtSumsLut::hfLutType  type,
uint16_t  value 
)
private

Definition at line 144 of file L1GctGlobalHfSumAlgos.cc.

References L1GctProcessor::bxRel(), m_bitCountLuts, and m_hfOutputSumsPipe.

Referenced by process().

144  {
145  std::map<L1GctHfEtSumsLut::hfLutType, const L1GctHfBitCountsLut*>::const_iterator bclut = m_bitCountLuts.find(type);
146  if (bclut != m_bitCountLuts.end()) {
147  m_hfOutputSumsPipe[type].store((*bclut->second)[value], bxRel());
148  }
149 }
std::map< L1GctHfEtSumsLut::hfLutType, Pipeline< uint16_t > > m_hfOutputSumsPipe
int bxRel() const
Definition: value.py:1
std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfBitCountsLut * > m_bitCountLuts

◆ storeEtSum()

void L1GctGlobalHfSumAlgos::storeEtSum ( L1GctHfEtSumsLut::hfLutType  type,
uint16_t  value 
)
private

Definition at line 152 of file L1GctGlobalHfSumAlgos.cc.

References L1GctProcessor::bxRel(), m_etSumLuts, and m_hfOutputSumsPipe.

Referenced by process().

152  {
153  std::map<L1GctHfEtSumsLut::hfLutType, const L1GctHfEtSumsLut*>::const_iterator eslut = m_etSumLuts.find(type);
154  if (eslut != m_etSumLuts.end()) {
155  m_hfOutputSumsPipe[type].store((*eslut->second)[value], bxRel());
156  }
157 }
std::map< L1GctHfEtSumsLut::hfLutType, Pipeline< uint16_t > > m_hfOutputSumsPipe
int bxRel() const
std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfEtSumsLut * > m_etSumLuts
Definition: value.py:1

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
const L1GctGlobalHfSumAlgos fpga 
)
friend

Overload << operator.

Definition at line 66 of file L1GctGlobalHfSumAlgos.cc.

66  {
67  os << "===L1GctGlobalHfSumAlgos===" << std::endl;
68  os << "WheelJetFpga* plus = " << fpga.m_plusWheelJetFpga << std::endl;
69  os << "Plus wheel inputs:" << std::endl;
70  os << "Bit counts ring 1: " << fpga.m_hfInputSumsPlusWheel.nOverThreshold0
71  << ", ring 2: " << fpga.m_hfInputSumsPlusWheel.nOverThreshold1 << std::endl;
72  os << "Et sums ring 1: " << fpga.m_hfInputSumsPlusWheel.etSum0 << ", ring 2: " << fpga.m_hfInputSumsPlusWheel.etSum1
73  << std::endl;
74  os << "WheelJetFpga* minus = " << fpga.m_minusWheelJetFpga << std::endl;
75  os << "Minus wheel inputs:" << std::endl;
76  os << "Bit counts ring 1: " << fpga.m_hfInputSumsMinusWheel.nOverThreshold0
77  << ", ring 2: " << fpga.m_hfInputSumsMinusWheel.nOverThreshold1 << std::endl;
78  os << "Et sums ring 1: " << fpga.m_hfInputSumsMinusWheel.etSum0 << ", ring 2: " << fpga.m_hfInputSumsMinusWheel.etSum1
79  << std::endl;
80 
81  int bxZero = -fpga.bxMin();
82  if (bxZero >= 0 && bxZero < fpga.numOfBx()) {
83  os << "Output word " << std::hex << fpga.hfSumsWord().at(bxZero) << std::dec << std::endl;
84  }
85 
86  return os;
87 }
int numOfBx() const
L1GctWheelJetFpga * m_minusWheelJetFpga
L1GctJetCount< kHfCountBits > nOverThreshold1
hfTowerSumsType m_hfInputSumsPlusWheel
L1GctJetCount< kHfEtSumBits > etSum1
hfTowerSumsType m_hfInputSumsMinusWheel
int bxMin() const
Support for multiple beam crossing operation.
L1GctWheelJetFpga * m_plusWheelJetFpga
L1GctJetCount< kHfCountBits > nOverThreshold0
std::vector< unsigned > hfSumsWord() const
L1GctJetCount< kHfEtSumBits > etSum0

Member Data Documentation

◆ m_bitCountLuts

std::map<L1GctHfEtSumsLut::hfLutType, const L1GctHfBitCountsLut*> L1GctGlobalHfSumAlgos::m_bitCountLuts
private

Definition at line 81 of file L1GctGlobalHfSumAlgos.h.

Referenced by getBCLut(), setupLuts(), storeBitCount(), and ~L1GctGlobalHfSumAlgos().

◆ m_etSumLuts

std::map<L1GctHfEtSumsLut::hfLutType, const L1GctHfEtSumsLut*> L1GctGlobalHfSumAlgos::m_etSumLuts
private

Definition at line 82 of file L1GctGlobalHfSumAlgos.h.

Referenced by getESLut(), setupLuts(), storeEtSum(), and ~L1GctGlobalHfSumAlgos().

◆ m_hfInputSumsMinusWheel

hfTowerSumsType L1GctGlobalHfSumAlgos::m_hfInputSumsMinusWheel
private

Definition at line 86 of file L1GctGlobalHfSumAlgos.h.

Referenced by fetchInput(), operator<<(), process(), and resetProcessor().

◆ m_hfInputSumsPlusWheel

hfTowerSumsType L1GctGlobalHfSumAlgos::m_hfInputSumsPlusWheel
private

Definition at line 85 of file L1GctGlobalHfSumAlgos.h.

Referenced by fetchInput(), operator<<(), process(), and resetProcessor().

◆ m_hfOutputSumsPipe

std::map<L1GctHfEtSumsLut::hfLutType, Pipeline<uint16_t> > L1GctGlobalHfSumAlgos::m_hfOutputSumsPipe
private

Definition at line 89 of file L1GctGlobalHfSumAlgos.h.

Referenced by hfSumsOutput(), resetPipelines(), storeBitCount(), and storeEtSum().

◆ m_minusWheelJetFpga

L1GctWheelJetFpga* L1GctGlobalHfSumAlgos::m_minusWheelJetFpga
private

◆ m_plusWheelJetFpga

L1GctWheelJetFpga* L1GctGlobalHfSumAlgos::m_plusWheelJetFpga
private

◆ m_setupOk

bool L1GctGlobalHfSumAlgos::m_setupOk
private

Definition at line 91 of file L1GctGlobalHfSumAlgos.h.

Referenced by fetchInput(), L1GctGlobalHfSumAlgos(), process(), and setupOk().