Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:19:51

0001 #ifndef L1GCTHFBITCOUNTSLUT_H_
0002 #define L1GCTHFBITCOUNTSLUT_H_
0003 
0004 #include "L1Trigger/GlobalCaloTrigger/interface/L1GctLut.h"
0005 #include "L1Trigger/GlobalCaloTrigger/interface/L1GctHfEtSumsLut.h"
0006 
0007 #include <vector>
0008 
0009 /*!
0010  * \author Greg Heath
0011  * \date September 2008
0012  */
0013 
0014 /*! \class L1GctHfBitCountsLut
0015  * \brief LUT for compression of HF feature bit counts to output format
0016  *
0017  */
0018 
0019 class L1GctHfBitCountsLut : public L1GctLut<5, 3>
0020 
0021 {
0022 public:
0023   // Definitions.
0024   static const int NAddress, NData;
0025 
0026   /// Constructor for use with emulator - which type of Lut?
0027   L1GctHfBitCountsLut(const L1GctHfEtSumsLut::hfLutType& type);
0028   /// Default constructor
0029   L1GctHfBitCountsLut();
0030   /// Copy constructor
0031   L1GctHfBitCountsLut(const L1GctHfBitCountsLut& lut);
0032   /// Destructor
0033   ~L1GctHfBitCountsLut() override;
0034 
0035   /// Overload = operator
0036   L1GctHfBitCountsLut operator=(const L1GctHfBitCountsLut& lut);
0037 
0038   /// Overload << operator
0039   friend std::ostream& operator<<(std::ostream& os, const L1GctHfBitCountsLut& lut);
0040 
0041   /// Return the type of Lut
0042   L1GctHfEtSumsLut::hfLutType lutType() const { return m_lutType; }
0043 
0044   /// Get thresholds
0045   std::vector<unsigned> getThresholdsGct() const;
0046 
0047 protected:
0048   uint16_t value(const uint16_t lutAddress) const override;
0049 
0050 private:
0051   L1GctHfEtSumsLut::hfLutType m_lutType;
0052 };
0053 
0054 std::ostream& operator<<(std::ostream& os, const L1GctHfBitCountsLut& lut);
0055 
0056 #endif /*L1GCTHFBITCOUNTSLUT_H_*/