CMS 3D CMS Logo

LowPtGsfElectronIDHeavyObjectCache.h
Go to the documentation of this file.
1 #ifndef RecoEgamma_EgammaElectronProducers_LowPtGsfElectronIDHeavyObjectCache_h
2 #define RecoEgamma_EgammaElectronProducers_LowPtGsfElectronIDHeavyObjectCache_h
3 
7 #include <vector>
8 
9 namespace reco {
10  class BeamSpot;
11  class PreId;
12 }
13 
14 namespace lowptgsfeleid {
15 
16  class Features {
17  public:
18  // KF track
19  float trk_p_ = -1.;
20  float trk_nhits_ = -1.;
21  float trk_chi2red_ = -1.;
22  // GSF track
23  float gsf_nhits_ = -1.;
24  float gsf_chi2red_ = -1.;
25  // SC
26  float sc_E_ = -1.;
27  float sc_eta_ = -1.;
28  float sc_etaWidth_ = -1.;
29  float sc_phiWidth_ = -1.;
30  // Track-cluster matching
31  float match_seed_dEta_ = -1.;
32  float match_eclu_EoverP_ = -1.;
33  float match_SC_EoverP_ = -1.;
34  float match_SC_dEta_ = -1.;
35  float match_SC_dPhi_ = -1.;
36  // Shower shape vars
37  float shape_full5x5_sigmaIetaIeta_ = -1.;
38  float shape_full5x5_sigmaIphiIphi_ = -1.;
39  float shape_full5x5_HoverE_ = -1.;
40  float shape_full5x5_r9_ = -1.;
41  float shape_full5x5_circularity_ = -1.;
42  // Misc
43  float rho_ = -1.;
44  float brem_frac_ = -1.;
45  float ele_pt_ = -1.;
46  public:
47  std::vector<float> get();
48  inline void set( const reco::GsfElectronRef& ele, double rho ) { set(*ele, rho); }
49  void set( const reco::GsfElectron& ele, double rho );
50  };
51 
53 
54  public:
55 
57 
58  std::vector<std::string> modelNames() const { return names_; }
59 
60  double eval( const std::string& name, const reco::GsfElectronRef&, double rho ) const;
61 
62  private:
63 
64  std::vector<std::string> names_;
65  std::vector< std::unique_ptr<const GBRForest> > models_;
66  std::vector<double> thresholds_;
67 
68  };
69 }
70 
71 #endif // RecoEgamma_EgammaElectronProducers_LowPtGsfElectronIDHeavyObjectCache_h
std::vector< std::string > modelNames() const
std::vector< std::unique_ptr< const GBRForest > > models_
fixed size matrix