File indexing completed on 2023-10-25 09:56:41
0001 #ifndef L1GCTCONFIGPRODUCERS_H_
0002 #define L1GCTCONFIGPRODUCERS_H_
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include <memory>
0023
0024 #include <vector>
0025
0026
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
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
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