CMS 3D CMS Logo

L1GctGlobalHfSumAlgos.h
Go to the documentation of this file.
1 #ifndef L1GCTGLOBALHFSUMALGOS_H_
2 #define L1GCTGLOBALHFSUMALGOS_H_
3 
7 
8 #include <vector>
9 #include <map>
10 
11 class L1GctWheelJetFpga;
12 class L1GctHfLutSetup;
14 
28 public:
30 
32  L1GctGlobalHfSumAlgos(const std::vector<L1GctWheelJetFpga*>& WheelJetFpga);
34  ~L1GctGlobalHfSumAlgos() override;
35 
37  friend std::ostream& operator<<(std::ostream& os, const L1GctGlobalHfSumAlgos& fpga);
38 
40  void fetchInput() override;
41 
43  void process() override;
44 
46  std::vector<uint16_t> hfSumsOutput(const L1GctHfEtSumsLut::hfLutType type) const;
47  std::vector<unsigned> hfSumsWord() const;
48 
50  void setupLuts(const L1CaloEtScale* scale);
51 
55 
57  std::vector<double> getThresholds(const L1GctHfEtSumsLut::hfLutType type) const;
58 
63 
65  bool setupOk() const { return m_setupOk; }
66 
67 protected:
69  void resetProcessor() override;
70  void resetPipelines() override;
71 
73  void setupObjects() override {}
74 
75 private:
76  // Here are the algorithm types we get our inputs from
79 
80  // Here are the lookup tables
81  std::map<L1GctHfEtSumsLut::hfLutType, const L1GctHfBitCountsLut*> m_bitCountLuts;
82  std::map<L1GctHfEtSumsLut::hfLutType, const L1GctHfEtSumsLut*> m_etSumLuts;
83 
84  // Input data for one bunch crossing
87 
88  // Output data
89  std::map<L1GctHfEtSumsLut::hfLutType, Pipeline<uint16_t> > m_hfOutputSumsPipe;
90 
91  bool m_setupOk;
92 
93  // private methods
94  // Convert bit count value using LUT and store in the pipeline
96  // Convert et sum value using LUT and store in the pipeline
98 };
99 
100 std::ostream& operator<<(std::ostream& os, const L1GctGlobalHfSumAlgos& fpga);
101 
102 #endif /*L1GCTGLOBALHFSUMALGOS_H_*/
L1GctWheelJetFpga * m_minusWheelJetFpga
void process() override
process the data, fill output buffers
void fetchInput() override
get input data from sources; this is the standard way to provide input
std::map< L1GctHfEtSumsLut::hfLutType, Pipeline< uint16_t > > m_hfOutputSumsPipe
Represents a GCT Wheel Jet FPGA.
Emulates the GCT summing and packing of Hf Et sums and tower-over-threshold counts.
hfTowerSumsType m_hfInputSumsPlusWheel
friend std::ostream & operator<<(std::ostream &os, const L1GctGlobalHfSumAlgos &fpga)
Overload << operator.
bool setupOk() const
check setup
const L1GctHfBitCountsLut * getBCLut(const L1GctHfEtSumsLut::hfLutType type) const
Get lut pointers.
std::vector< uint16_t > hfSumsOutput(const L1GctHfEtSumsLut::hfLutType type) const
Access to output quantities.
hfTowerSumsType m_hfInputSumsMinusWheel
void resetProcessor() override
Separate reset methods for the processor itself and any data stored in pipelines. ...
std::ostream & operator<<(std::ostream &os, const L1GctGlobalHfSumAlgos &fpga)
L1GctWheelJetFpga * getPlusWheelJetFpga() const
provide access to input pointer, Wheel Jet Fpga 1
ABC for a GCT trigger data processing unit.
std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfEtSumsLut * > m_etSumLuts
void setupObjects() override
Initialise inputs with null objects for the correct bunch crossing if required.
~L1GctGlobalHfSumAlgos() override
Destructor.
L1GctWheelJetFpga * m_plusWheelJetFpga
LUT for compression of HF feature bit counts to output format.
void storeEtSum(L1GctHfEtSumsLut::hfLutType type, uint16_t value)
std::vector< double > getThresholds(const L1GctHfEtSumsLut::hfLutType type) const
Get thresholds.
LUT for compression of HF Et sum to output format.
Definition: value.py:1
std::map< L1GctHfEtSumsLut::hfLutType, const L1GctHfBitCountsLut * > m_bitCountLuts
L1GctJetFinderBase::hfTowerSumsType hfTowerSumsType
std::vector< unsigned > hfSumsWord() const
const L1GctHfEtSumsLut * getESLut(const L1GctHfEtSumsLut::hfLutType type) const
L1GctGlobalHfSumAlgos(const std::vector< L1GctWheelJetFpga *> &WheelJetFpga)
Constructor needs the Wheel card Fpgas set up first.
void setupLuts(const L1CaloEtScale *scale)
Setup luts.
L1GctWheelJetFpga * getMinusWheelJetFpga() const
provide access to input pointer, Wheel Jet Fpga 0
void storeBitCount(L1GctHfEtSumsLut::hfLutType type, uint16_t value)