Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:20:17

0001 ///
0002 /// Description: Firmware headers
0003 ///
0004 /// Implementation:
0005 ///    Concrete firmware implementations
0006 ///
0007 /// \author: Jim Brooke - University of Bristol
0008 ///
0009 
0010 //
0011 //
0012 
0013 #ifndef Stage2PreProcessorFirmware_H
0014 #define Stage2PreProcessorFirmware_H
0015 
0016 #include "L1Trigger/L1TCalorimeter/interface/Stage2PreProcessor.h"
0017 #include "L1Trigger/L1TCalorimeter/interface/Stage2TowerCompressAlgorithm.h"
0018 #include "L1Trigger/L1TCalorimeter/interface/CaloParamsHelper.h"
0019 #include <memory>
0020 
0021 namespace l1t {
0022 
0023   // first iteration
0024   class Stage2PreProcessorFirmwareImp1 : public Stage2PreProcessor {
0025   public:
0026     Stage2PreProcessorFirmwareImp1(unsigned fwv, CaloParamsHelper const* params);
0027 
0028     void processEvent(const std::vector<l1t::CaloTower>& inTowers, std::vector<l1t::CaloTower>& outTowers) override;
0029 
0030     void print(std::ostream&) const;
0031 
0032     friend std::ostream& operator<<(std::ostream& o, const Stage2PreProcessorFirmwareImp1& p) {
0033       p.print(o);
0034       return o;
0035     }
0036 
0037   private:
0038     //FirmwareVersion const & m_fwv;
0039     std::unique_ptr<Stage2TowerCompressAlgorithm> m_towerAlgo;
0040   };
0041 
0042 }  // namespace l1t
0043 
0044 #endif