Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:56:41

0001 #ifndef L1GCTCONFIGPRODUCERS_H_
0002 #define L1GCTCONFIGPRODUCERS_H_
0003 // -*- C++ -*-
0004 //
0005 // Package:    GctConfigProducers
0006 // Class:      L1GctConfigProducers
0007 //
0008 /**\class L1GctConfigProducers L1GctConfigProducers.h L1Trigger/L1GctConfigProducers/interface/L1GctConfigProducers.h
0009 
0010  Description: <one line class summary>
0011 
0012  Implementation:
0013      <Notes on implementation>
0014 */
0015 //
0016 // Original Author:  Gregory Heath
0017 //         Created:  Thu Mar  1 15:10:47 CET 2007
0018 //
0019 //
0020 
0021 // system include files
0022 #include <memory>
0023 
0024 #include <vector>
0025 
0026 // user include files
0027 
0028 #include "FWCore/Framework/interface/Frameworkfwd.h"
0029 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0030 #include "FWCore/Framework/interface/ModuleFactory.h"
0031 #include "FWCore/Framework/interface/ESProducer.h"
0032 
0033 #include "FWCore/Framework/interface/ESHandle.h"
0034 
0035 class L1CaloGeometry;
0036 
0037 class L1GctJetFinderParams;
0038 class L1GctChannelMask;
0039 
0040 class L1GctJetFinderParamsRcd;
0041 class L1GctChannelMaskRcd;
0042 class L1CaloGeometryRecord;
0043 
0044 //
0045 // class declaration
0046 //
0047 
0048 class L1GctConfigProducers : public edm::ESProducer {
0049 public:
0050   L1GctConfigProducers(const edm::ParameterSet&);
0051   ~L1GctConfigProducers() override;
0052 
0053   using JfParamsReturnType = std::unique_ptr<L1GctJetFinderParams>;
0054   using ChanMaskReturnType = std::unique_ptr<L1GctChannelMask>;
0055 
0056   JfParamsReturnType produceJfParams(const L1GctJetFinderParamsRcd&);
0057   ChanMaskReturnType produceChanMask(const L1GctChannelMaskRcd&);
0058 
0059   std::vector<double> etToEnergyConversion(const L1CaloGeometry* geom) const;
0060 
0061 private:
0062   // ----------member data ---------------------------
0063   double m_rgnEtLsb;
0064   double m_htLsb;
0065   double m_CenJetSeed;
0066   double m_FwdJetSeed;
0067   double m_TauJetSeed;
0068   double m_tauIsoThresh;
0069   double m_htJetThresh;
0070   double m_mhtJetThresh;
0071   unsigned m_EtaBoundry;
0072   unsigned m_corrFunType;
0073   bool m_convertToEnergy;
0074 
0075   std::vector<std::vector<double> > m_jetCalibFunc;
0076   std::vector<std::vector<double> > m_tauCalibFunc;
0077 
0078   edm::ESGetToken<L1CaloGeometry, L1CaloGeometryRecord> m_caloGeomToken;
0079 
0080   unsigned m_metEtaMask;
0081   unsigned m_tetEtaMask;
0082   unsigned m_mhtEtaMask;
0083   unsigned m_thtEtaMask;
0084 };
0085 
0086 #endif