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 L1TCALOSTAGE1RingSUMSALGORITHMIMP_H
0018 #define L1TCALOSTAGE1RingSUMSALGORITHMIMP_H
0019 
0020 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0021 #include "L1Trigger/L1TCalorimeter/interface/Stage1Layer2HFRingSumAlgorithm.h"
0022 #include "L1Trigger/L1TCalorimeter/interface/CaloParamsHelper.h"
0023 
0024 namespace l1t {
0025 
0026   class Stage1Layer2FlowAlgorithm : public Stage1Layer2HFRingSumAlgorithm {
0027   public:
0028     Stage1Layer2FlowAlgorithm(CaloParamsHelper const* params);
0029     ~Stage1Layer2FlowAlgorithm() override = default;
0030     void processEvent(const std::vector<l1t::CaloRegion>& regions,
0031                       const std::vector<l1t::CaloEmCand>& EMCands,
0032                       const std::vector<l1t::Tau>* taus,
0033                       l1t::CaloSpare* spare) override;
0034 
0035   private:
0036     std::vector<double> cosPhi;
0037     std::vector<double> sinPhi;
0038   };
0039 
0040   class Stage1Layer2CentralityAlgorithm : public Stage1Layer2HFRingSumAlgorithm {
0041   public:
0042     Stage1Layer2CentralityAlgorithm(CaloParamsHelper const* params);
0043     ~Stage1Layer2CentralityAlgorithm() override = default;
0044     void processEvent(const std::vector<l1t::CaloRegion>& regions,
0045                       const std::vector<l1t::CaloEmCand>& EMCands,
0046                       const std::vector<l1t::Tau>* taus,
0047                       l1t::CaloSpare* spare) override;
0048 
0049   private:
0050     CaloParamsHelper const* params_;
0051   };
0052 
0053   class Stage1Layer2DiTauAlgorithm : public Stage1Layer2HFRingSumAlgorithm {
0054   public:
0055     Stage1Layer2DiTauAlgorithm(CaloParamsHelper const* params);
0056     ~Stage1Layer2DiTauAlgorithm() override = default;
0057     void processEvent(const std::vector<l1t::CaloRegion>& regions,
0058                       const std::vector<l1t::CaloEmCand>& EMCands,
0059                       const std::vector<l1t::Tau>* taus,
0060                       l1t::CaloSpare* spare) override;
0061 
0062   private:
0063     CaloParamsHelper const* params_;
0064   };
0065 }  // namespace l1t
0066 
0067 #endif