00001 #ifndef L1ScalesProducers_L1ScalesTrivialProducer_h 00002 #define L1ScalesProducers_L1ScalesTrivialProducer_h 00003 00004 // -*- C++ -*- 00005 // 00006 // Package: L1ScalesProducers 00007 // Class: L1ScalesTrivialProducer 00008 // 00016 // 00017 // Original Author: Jim Brooke 00018 // Created: Wed Sep 27 17:51:32 CEST 2006 00019 // $Id: L1ScalesTrivialProducer.h,v 1.3 2009/03/25 23:17:55 jbrooke Exp $ 00020 // 00021 // 00022 00023 00024 // system include files 00025 #include <memory> 00026 #include <boost/shared_ptr.hpp> 00027 #include <vector> 00028 00029 // user include files 00030 #include "FWCore/Framework/interface/ModuleFactory.h" 00031 #include "FWCore/Framework/interface/ESProducer.h" 00032 00033 #include "FWCore/Framework/interface/ESHandle.h" 00034 00035 #include "CondFormats/L1TObjects/interface/L1CaloEtScale.h" 00036 #include "CondFormats/DataRecord/interface/L1EmEtScaleRcd.h" 00037 #include "CondFormats/DataRecord/interface/L1JetEtScaleRcd.h" 00038 #include "CondFormats/DataRecord/interface/L1HtMissScaleRcd.h" 00039 #include "CondFormats/DataRecord/interface/L1HfRingEtScaleRcd.h" 00040 00041 00042 // 00043 // class declaration 00044 // 00045 00046 class L1ScalesTrivialProducer : public edm::ESProducer { 00047 public: 00048 L1ScalesTrivialProducer(const edm::ParameterSet&); 00049 ~L1ScalesTrivialProducer(); 00050 00051 std::auto_ptr<L1CaloEtScale> produceEmScale(const L1EmEtScaleRcd&); 00052 std::auto_ptr<L1CaloEtScale> produceJetScale(const L1JetEtScaleRcd&); 00053 std::auto_ptr<L1CaloEtScale> produceHtMissScale(const L1HtMissScaleRcd&); 00054 std::auto_ptr<L1CaloEtScale> produceHfRingScale(const L1HfRingEtScaleRcd&); 00055 00056 private: 00057 // ----------member data --------------------------- 00058 00059 double m_emEtScaleInputLsb; 00060 std::vector<double> m_emEtThresholds; 00061 00062 double m_jetEtScaleInputLsb; 00063 std::vector<double> m_jetEtThresholds; 00064 00065 std::vector<double> m_htMissThresholds; 00066 std::vector<double> m_hfRingThresholds; 00067 00068 }; 00069 00070 #endif