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 /// Collects concrete algorithm implmentations.
0006 ///
0007 /// \author: R. Alex Barbieri MIT
0008 ///
0009 
0010 //
0011 // This header file contains the class definitions for all of the concrete
0012 // implementations of the firmware interface. The Stage1Layer2FirmwareFactory
0013 // selects the appropriate implementation based on the firmware version in the
0014 // configuration.
0015 //
0016 
0017 #ifndef L1TCALOSTAGE1JETALGORITHMIMP_H
0018 #define L1TCALOSTAGE1JETALGORITHMIMP_H
0019 
0020 #include "L1Trigger/L1TCalorimeter/interface/Stage1Layer2JetAlgorithm.h"
0021 #include "DataFormats/L1TCalorimeter/interface/CaloEmCand.h"
0022 #include "L1Trigger/L1TCalorimeter/interface/CaloParamsHelper.h"
0023 
0024 namespace l1t {
0025 
0026   class Stage1Layer2JetAlgorithmImpHI : public Stage1Layer2JetAlgorithm {
0027   public:
0028     Stage1Layer2JetAlgorithmImpHI(CaloParamsHelper const* params);
0029     ~Stage1Layer2JetAlgorithmImpHI() override = default;
0030     void processEvent(const std::vector<l1t::CaloRegion>& regions,
0031                       const std::vector<l1t::CaloEmCand>& EMCands,
0032                       std::vector<l1t::Jet>* jets,
0033                       std::vector<l1t::Jet>* preGtJets) override;
0034 
0035   private:
0036     CaloParamsHelper const* const params_;
0037     //double regionLSB_;
0038   };
0039 
0040   class Stage1Layer2JetAlgorithmImpPP : public Stage1Layer2JetAlgorithm {
0041   public:
0042     Stage1Layer2JetAlgorithmImpPP(CaloParamsHelper const* params);
0043     ~Stage1Layer2JetAlgorithmImpPP() override = default;
0044     void processEvent(const std::vector<l1t::CaloRegion>& regions,
0045                       const std::vector<l1t::CaloEmCand>& EMCands,
0046                       std::vector<l1t::Jet>* jets,
0047                       std::vector<l1t::Jet>* preGtJets) override;
0048 
0049   private:
0050     CaloParamsHelper const* const params_;
0051     //double regionLSB_;
0052   };
0053 
0054   class Stage1Layer2JetAlgorithmImpSimpleHW : public Stage1Layer2JetAlgorithm {
0055   public:
0056     Stage1Layer2JetAlgorithmImpSimpleHW(CaloParamsHelper const* params);
0057     ~Stage1Layer2JetAlgorithmImpSimpleHW() override = default;
0058     void processEvent(const std::vector<l1t::CaloRegion>& regions,
0059                       const std::vector<l1t::CaloEmCand>& EMCands,
0060                       std::vector<l1t::Jet>* jets,
0061                       std::vector<l1t::Jet>* preGtJets) override;
0062 
0063   private:
0064     CaloParamsHelper const* const params_;
0065     //double regionLSB_;
0066   };
0067 }  // namespace l1t
0068 
0069 #endif