00001 #ifndef L1GCTCALIBFUNCONFIGURER_H_ 00002 #define L1GCTCALIBFUNCONFIGURER_H_ 00003 // -*- C++ -*- 00004 // 00005 // Package: GctConfigProducers 00006 // Class: L1GctCalibFunConfigurer 00007 // 00015 // 00016 // Original Author: Gregory Heath 00017 // 00018 // 00019 00020 00021 // system include files 00022 #include <memory> 00023 #include "boost/shared_ptr.hpp" 00024 00025 #include<vector> 00026 00027 // user include files 00028 00029 #include "FWCore/Framework/interface/Frameworkfwd.h" 00030 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00031 00032 #include "CondFormats/L1TObjects/interface/L1GctJetEtCalibrationFunction.h" 00033 00034 class L1CaloGeometry ; 00035 00036 // 00037 // class declaration 00038 // 00039 00040 class L1GctCalibFunConfigurer { 00041 public: 00042 L1GctCalibFunConfigurer(const edm::ParameterSet&); 00043 ~L1GctCalibFunConfigurer(); 00044 00045 typedef boost::shared_ptr<L1GctJetEtCalibrationFunction> CalibFunReturnType; 00046 00047 CalibFunReturnType produceCalibFun(const L1CaloGeometry* ); 00048 00049 private: 00050 // ----------member data --------------------------- 00051 00052 // PARAMETERS TO BE STORED IN THE CalibrationFunction 00054 double m_htScaleLSB; 00055 double m_threshold; 00056 00058 bool m_convertToEnergy; 00059 00061 std::vector< std::vector<double> > m_jetCalibFunc; 00062 std::vector< std::vector<double> > m_tauCalibFunc; 00063 00065 L1GctJetEtCalibrationFunction::CorrectionFunctionType m_corrFunType; 00066 00068 void setOrcaStyleParams(); 00069 void setOrcaStyleParamsForBin(std::vector<double>& paramsForBin); 00070 00072 void setPiecewiseCubicParams(); 00073 void setPiecewiseCubicParamsForBin(std::vector<double>& paramsForBin); 00074 00076 std::vector<double> etToEnergyConversion( const L1CaloGeometry* ) const; 00077 00078 }; 00079 00080 #endif 00081