Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:24:50

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 }  // namespace reco
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 }  // namespace lowptgsfeleseed
0035 
0036 #endif  // RecoEgamma_EgammaElectronProducers_LowPtGsfElectronSeedHeavyObjectCache_h