Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:22:22

0001 #ifndef L1ScalesProducers_L1ScalesTrivialProducer_h
0002 #define L1ScalesProducers_L1ScalesTrivialProducer_h
0003 
0004 // -*- C++ -*-
0005 //
0006 // Package:    L1ScalesProducers
0007 // Class:      L1ScalesTrivialProducer
0008 //
0009 /**\class L1ScalesTrivialProducer L1ScalesTrivialProducer.h L1TriggerConfig/L1ScalesProducers/interface/L1ScalesTrivialProducer.h
0010 
0011  Description: A Producer for the L1 scales available via EventSetup
0012 
0013  Implementation:
0014      <Notes on implementation>
0015 */
0016 //
0017 // Original Author:  Jim Brooke
0018 //         Created:  Wed Sep 27 17:51:32 CEST 2006
0019 //
0020 //
0021 
0022 // system include files
0023 #include <memory>
0024 #include <vector>
0025 
0026 // user include files
0027 #include "FWCore/Framework/interface/ModuleFactory.h"
0028 #include "FWCore/Framework/interface/ESProducer.h"
0029 
0030 #include "FWCore/Framework/interface/ESHandle.h"
0031 
0032 #include "CondFormats/L1TObjects/interface/L1CaloEtScale.h"
0033 #include "CondFormats/DataRecord/interface/L1EmEtScaleRcd.h"
0034 #include "CondFormats/DataRecord/interface/L1JetEtScaleRcd.h"
0035 #include "CondFormats/DataRecord/interface/L1HtMissScaleRcd.h"
0036 #include "CondFormats/DataRecord/interface/L1HfRingEtScaleRcd.h"
0037 
0038 //
0039 // class declaration
0040 //
0041 
0042 class L1ScalesTrivialProducer : public edm::ESProducer {
0043 public:
0044   L1ScalesTrivialProducer(const edm::ParameterSet&);
0045   ~L1ScalesTrivialProducer() override;
0046 
0047   std::unique_ptr<L1CaloEtScale> produceEmScale(const L1EmEtScaleRcd&);
0048   std::unique_ptr<L1CaloEtScale> produceJetScale(const L1JetEtScaleRcd&);
0049   std::unique_ptr<L1CaloEtScale> produceHtMissScale(const L1HtMissScaleRcd&);
0050   std::unique_ptr<L1CaloEtScale> produceHfRingScale(const L1HfRingEtScaleRcd&);
0051 
0052 private:
0053   // ----------member data ---------------------------
0054 
0055   double m_emEtScaleInputLsb;
0056   std::vector<double> m_emEtThresholds;
0057 
0058   double m_jetEtScaleInputLsb;
0059   std::vector<double> m_jetEtThresholds;
0060 
0061   std::vector<double> m_htMissThresholds;
0062   std::vector<double> m_hfRingThresholds;
0063 };
0064 
0065 #endif