File indexing completed on 2023-03-17 11:17:33
0001 #ifndef RecoEgamma_EgammaElectronProducers_LowPtGsfElectronSeedHeavyObjectCache_h
0002 #define RecoEgamma_EgammaElectronProducers_LowPtGsfElectronSeedHeavyObjectCache_h
0003
0004 #include "CondFormats/GBRForest/interface/GBRForest.h"
0005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0006 #include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h"
0007 #include <vector>
0008
0009 namespace reco {
0010 class BeamSpot;
0011 class PreId;
0012 }
0013
0014 namespace lowptgsfeleseed {
0015
0016 class HeavyObjectCache {
0017 public:
0018 HeavyObjectCache(const edm::ParameterSet&);
0019
0020 std::vector<std::string> modelNames() const { return names_; }
0021
0022 bool eval(const std::string& name,
0023 reco::PreId& ecal,
0024 reco::PreId& hcal,
0025 double rho,
0026 const reco::BeamSpot& spot,
0027 noZS::EcalClusterLazyTools& ecalTools) const;
0028
0029 private:
0030 std::vector<std::string> names_;
0031 std::vector<std::unique_ptr<const GBRForest> > models_;
0032 std::vector<double> thresholds_;
0033 };
0034 }
0035
0036 #endif