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 Stage1Layer2MainProcessorFirmware_H
0014 #define Stage1Layer2MainProcessorFirmware_H
0015 
0016 #include "L1Trigger/L1TCalorimeter/interface/Stage1Layer2MainProcessor.h"
0017 #include "L1Trigger/L1TCalorimeter/interface/CaloParamsHelper.h"
0018 
0019 #include "Stage1Layer2EGammaAlgorithm.h"
0020 #include "Stage1Layer2EtSumAlgorithm.h"
0021 #include "Stage1Layer2JetAlgorithm.h"
0022 #include "Stage1Layer2TauAlgorithm.h"
0023 #include "Stage1Layer2HFRingSumAlgorithm.h"
0024 #include "Stage1Layer2HFBitCountAlgorithm.h"
0025 
0026 #include <memory>
0027 
0028 namespace l1t {
0029 
0030   class Stage1Layer2MainProcessorFirmwareImp1 : public Stage1Layer2MainProcessor {
0031   public:
0032     //Stage1Layer2MainProcessorFirmwareImp1(const FirmwareVersion & fwv /*const CaloParamsHelper & dbPars*/);
0033     Stage1Layer2MainProcessorFirmwareImp1(const int fwv, CaloParamsHelper const *dbPars);
0034     ~Stage1Layer2MainProcessorFirmwareImp1() override = default;
0035     void processEvent(const std::vector<CaloEmCand> &,
0036                       const std::vector<CaloRegion> &,
0037                       std::vector<EGamma> *egammas,
0038                       std::vector<Tau> *taus,
0039                       std::vector<Tau> *isoTaus,
0040                       std::vector<Jet> *jets,
0041                       std::vector<Jet> *preGtJets,
0042                       std::vector<EtSum> *etsums,
0043                       CaloSpare *hfSums,
0044                       CaloSpare *hfCounts) override;
0045 
0046   private:
0047     int m_fwv;
0048 
0049     std::unique_ptr<Stage1Layer2EGammaAlgorithm> m_egAlgo;
0050     std::unique_ptr<Stage1Layer2TauAlgorithm> m_tauAlgo;
0051     std::unique_ptr<Stage1Layer2JetAlgorithm> m_jetAlgo;
0052     std::unique_ptr<Stage1Layer2EtSumAlgorithm> m_sumAlgo;
0053     std::unique_ptr<Stage1Layer2HFRingSumAlgorithm> m_hfRingAlgo;
0054     std::unique_ptr<Stage1Layer2HFBitCountAlgorithm> m_hfBitAlgo;
0055   };
0056 
0057 }  // namespace l1t
0058 
0059 #endif