10 using namespace std::placeholders;
16 const auto pt = vars.at(
"pt");
17 const auto absEta =
std::abs(vars.at(
"eta"));
21 if (absEta <= etaThr) {
37 useEBModelInGap_(useEBModelInGap) {}
45 "abs(deltaEtaSuperClusterTrackAtVtx)",
46 "abs(deltaPhiSuperClusterTrackAtVtx)",
47 "full5x5_sigmaIetaIeta",
48 "full5x5_hcalOverEcal",
51 "eEleClusterOverPout",
52 "closestCtfTrackNormChi2",
53 "closestCtfTrackNLayers",
54 "gsfTrack.missing_inner_hits",
56 "dr03EcalRecHitSumEt",
58 "gsfTrack.normalizedChi2",
63 "abs(deltaEtaSeedClusterTrackAtCalo)",
67 "full5x5_sigmaIphiIphi",
68 "1_minus_full5x5_e1x5_ratio_full5x5_e5x5",
69 "full5x5_e1x5_ratio_full5x5_e5x5",
71 "gsfTrack.trackerLayersWithMeasurement",
72 "superCluster.energy",
73 "superCluster.rawEnergy",
75 "1_ratio_ecalEnergy_minus_1_ratio_trackMomentumAtVtx.R",
76 "superCluster.preshowerEnergy_ratio_superCluster.rawEnergy",
78 "superCluster.clustersSize",
79 "ecalEnergyError_ratio_ecalEnergy",
80 "superClusterFbrem_plus_superCluster.energy",
81 "superClusterFbrem_plus_superCluster.rawEnergy",
83 "trackMomentumError_ratio_pt",
84 "full5x5_e5x5_ratio_superCluster.rawEnergy",
85 "full5x5_e5x5_ratio_superCluster.energy"}};
90 variables[
"pt"] = ele.
pt();
91 variables[
"eta"] = ele.
eta();
92 variables[
"fbrem"] = ele.
fbrem();
102 variables[
"gsfTrack.missing_inner_hits"] =
107 variables[
"gsfTrack.normalizedChi2"] = ele.
gsfTrack()->normalizedChi2();
108 variables[
"superCluster.eta"] = ele.
superCluster()->eta();
121 variables[
"gsfTrack.trackerLayersWithMeasurement"] = ele.
gsfTrack()->hitPattern().trackerLayersWithMeasurement();
122 variables[
"superCluster.energy"] = ele.
superCluster()->energy();
123 variables[
"superCluster.rawEnergy"] = ele.
superCluster()->rawEnergy();
125 variables[
"1_ratio_ecalEnergy_minus_1_ratio_trackMomentumAtVtx.R"] =
127 variables[
"superCluster.preshowerEnergy_ratio_superCluster.rawEnergy"] =
130 variables[
"superCluster.clustersSize"] = ele.
superCluster()->clustersSize();
133 variables[
"superClusterFbrem_plus_superCluster.rawEnergy"] =
148 std::vector<std::map<std::string, float>>
inputs;
149 for (
const auto& ele : electrons) {
uint electronModelSelector(const std::map< std::string, float > &vars, float ptThr, float etaThr)
ElectronDNNEstimator(const egammaTools::DNNConfiguration &, const bool useEBModelInGap)
float trackMomentumError() const
double pt() const final
transverse momentum
float eSuperClusterOverP() const
float full5x5_e5x5() const
float full5x5_e1x5() const
math::XYZVectorF trackMomentumAtVtx() const
std::map< std::string, float > getInputsVars(const reco::GsfElectron &ele) const
float dr03HcalTowerSumEt(int depth=0) const
float full5x5_sigmaIphiIphi() const
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
float superClusterFbrem() const
int closestCtfTrackNLayers() const
float full5x5_sigmaIetaIeta() const
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
static const std::vector< std::string > dnnAvaibleInputs
float deltaEtaSuperClusterTrackAtVtx() const
float hadronicOverEm() const
float closestCtfTrackNormChi2() const
float deltaPhiSuperClusterTrackAtVtx() const
int numberOfBrems() const
float dr03TkSumPt() const
Abs< T >::type abs(const T &t)
float eEleClusterOverPout() const
float hcalPFClusterIso() const
float full5x5_hcalOverEcal(int depth=0) const
float ecalEnergyError() const
std::vector< tensorflow::Session * > getSessions() const
float full5x5_e2x5Max() const
float ecalPFClusterIso() const
float dr03EcalRecHitSumEt() const
bool full5x5_hcalOverEcalValid() const
float deltaEtaSeedClusterTrackAtCalo() const
float convVtxFitProb() const
bool hcalOverEcalValid() const
const egammaTools::EgammaDNNHelper dnnHelper_
std::vector< std::vector< float > > evaluate(const reco::GsfElectronCollection &ele, const std::vector< tensorflow::Session * > &sessions) const
SuperClusterRef superCluster() const override
reference to a SuperCluster
double eta() const final
momentum pseudorapidity