18 : isInitialized_(
false),
19 mva_NoEleMatch_woGwoGSF_BL_(0),
20 mva_NoEleMatch_wGwoGSF_BL_(0),
23 mva_NoEleMatch_woGwoGSF_EC_(0),
24 mva_NoEleMatch_wGwoGSF_EC_(0),
30 if(cfg.
exists(
"inputFileName")){
32 }
else throw cms::Exception(
"MVA input not defined") <<
"Requested to load tau MVA input from ROOT file but no file provided in cfg file";
91 throw cms::Exception(
"PFRecoTauDiscriminationAgainstElectronMVA6::loadMVA")
92 <<
" Failed to load MVA = " << mvaName.data() <<
" from file " <<
" !!\n";
137 Float_t TauEtaAtEcalEntrance,
139 Float_t TauLeadChargedPFCandPt,
140 Float_t TauLeadChargedPFCandEtaAtEcalEntrance,
141 Float_t TauEmFraction,
142 Float_t TauLeadPFChargedHadrHoP,
143 Float_t TauLeadPFChargedHadrEoP,
144 Float_t TauVisMassIn,
145 Float_t TaudCrackEta,
146 Float_t TaudCrackPhi,
148 Int_t TauSignalPFGammaCandsIn,
149 Int_t TauSignalPFGammaCandsOut,
150 const std::vector<Float_t>& GammasdEtaInSigCone,
151 const std::vector<Float_t>& GammasdPhiInSigCone,
152 const std::vector<Float_t>& GammasPtInSigCone,
153 const std::vector<Float_t>& GammasdEtaOutSigCone,
154 const std::vector<Float_t>& GammasdPhiOutSigCone,
155 const std::vector<Float_t>& GammasPtOutSigCone,
158 Float_t ElecEtotOverPin,
159 Float_t ElecChi2NormGSF,
160 Float_t ElecChi2NormKF,
161 Float_t ElecGSFNumHits,
162 Float_t ElecKFNumHits,
163 Float_t ElecGSFTrackResol,
164 Float_t ElecGSFTracklnPt,
168 Float_t ElecDeltaEta,
169 Float_t ElecDeltaPhi,
170 Float_t ElecMvaInSigmaEtaEta,
171 Float_t ElecMvaInHadEnergy,
172 Float_t ElecMvaInDeltaEta)
180 for (
unsigned int i = 0 ;
i < GammasPtInSigCone.size() ; ++
i ) {
181 double pt_i = GammasPtInSigCone[
i];
182 double phi_i = GammasdPhiInSigCone[
i];
183 if ( GammasdPhiInSigCone[
i] >
M_PI ) phi_i = GammasdPhiInSigCone[
i] - 2*
M_PI;
184 else if ( GammasdPhiInSigCone[
i] < -M_PI ) phi_i = GammasdPhiInSigCone[
i] + 2*
M_PI;
185 double eta_i = GammasdEtaInSigCone[
i];
187 sumPt2 += (pt_i*pt_i);
188 dEta += (pt_i*eta_i);
189 dEta2 += (pt_i*eta_i*eta_i);
190 dPhi += (pt_i*phi_i);
191 dPhi2 += (pt_i*phi_i*phi_i);
194 Float_t TauGammaEnFracIn = -99.;
196 TauGammaEnFracIn = sumPt/TauPt;
215 for (
unsigned int i = 0 ;
i < GammasPtOutSigCone.size() ; ++
i ) {
216 double pt_i = GammasPtOutSigCone[
i];
217 double phi_i = GammasdPhiOutSigCone[
i];
218 if ( GammasdPhiOutSigCone[
i] >
M_PI ) phi_i = GammasdPhiOutSigCone[
i] - 2*
M_PI;
219 else if ( GammasdPhiOutSigCone[
i] < -M_PI ) phi_i = GammasdPhiOutSigCone[
i] + 2*
M_PI;
220 double eta_i = GammasdEtaOutSigCone[
i];
222 sumPt2 += (pt_i*pt_i);
223 dEta += (pt_i*eta_i);
224 dEta2 += (pt_i*eta_i*eta_i);
225 dPhi += (pt_i*phi_i);
226 dPhi2 += (pt_i*phi_i*phi_i);
229 Float_t TauGammaEnFracOut = sumPt/TauPt;
242 TauEtaAtEcalEntrance,
244 TauLeadChargedPFCandPt,
245 TauLeadChargedPFCandEtaAtEcalEntrance,
247 TauLeadPFChargedHadrHoP,
248 TauLeadPFChargedHadrEoP,
253 TauSignalPFGammaCandsIn,
254 TauSignalPFGammaCandsOut,
275 ElecMvaInSigmaEtaEta,
281 Float_t TauEtaAtEcalEntrance,
283 Float_t TauLeadChargedPFCandPt,
284 Float_t TauLeadChargedPFCandEtaAtEcalEntrance,
285 Float_t TauEmFraction,
286 Float_t TauLeadPFChargedHadrHoP,
287 Float_t TauLeadPFChargedHadrEoP,
288 Float_t TauVisMassIn,
289 Float_t TaudCrackEta,
290 Float_t TaudCrackPhi,
292 Int_t TauSignalPFGammaCandsIn,
293 Int_t TauSignalPFGammaCandsOut,
294 Float_t TauGammaEtaMomIn,
295 Float_t TauGammaEtaMomOut,
296 Float_t TauGammaPhiMomIn,
297 Float_t TauGammaPhiMomOut,
298 Float_t TauGammaEnFracIn,
299 Float_t TauGammaEnFracOut,
302 Float_t ElecEtotOverPin,
303 Float_t ElecChi2NormGSF,
304 Float_t ElecChi2NormKF,
305 Float_t ElecGSFNumHits,
306 Float_t ElecKFNumHits,
307 Float_t ElecGSFTrackResol,
308 Float_t ElecGSFTracklnPt,
312 Float_t ElecDeltaEta,
313 Float_t ElecDeltaPhi,
314 Float_t ElecMvaInSigmaEtaEta,
315 Float_t ElecMvaInHadEnergy,
316 Float_t ElecMvaInDeltaEta)
321 <<
" AntiElectronMVA not properly initialized !!\n";
324 double mvaValue = -99.;
326 const float ECALBarrelEndcapEtaBorder = 1.479;
327 float ElecDeltaPinPoutOverPin = (ElecPin > 0.0) ? (
std::abs(ElecPin - ElecPout)/ElecPin) : 1.0;
328 float ElecEecalOverPout = (ElecPout > 0.0) ? (ElecEecal/ElecPout) : 20.0;
329 float ElecNumHitsDiffOverSum = ((ElecGSFNumHits + ElecKFNumHits) > 0.0) ?
330 ((ElecGSFNumHits - ElecKFNumHits)/(ElecGSFNumHits + ElecKFNumHits)) : 1.0;
332 if (
deltaR(TauEtaAtEcalEntrance, TauPhi, ElecEta, ElecPhi) > 0.3 && TauSignalPFGammaCandsIn == 0 && TauHasGsf < 0.5) {
333 if (
std::abs(TauEtaAtEcalEntrance) < ECALBarrelEndcapEtaBorder ){
358 else if (
deltaR(TauEtaAtEcalEntrance, TauPhi, ElecEta, ElecPhi) > 0.3 && TauSignalPFGammaCandsIn > 0 && TauHasGsf < 0.5 ) {
359 if (
std::abs(TauEtaAtEcalEntrance) < ECALBarrelEndcapEtaBorder ){
400 else if ( TauSignalPFGammaCandsIn == 0 && TauHasGsf > 0.5 ) {
401 if (
std::abs(TauEtaAtEcalEntrance) < ECALBarrelEndcapEtaBorder ) {
454 else if ( TauSignalPFGammaCandsIn > 0 && TauHasGsf > 0.5 ) {
455 if (
std::abs(TauEtaAtEcalEntrance) < ECALBarrelEndcapEtaBorder ) {
532 float TauEtaAtEcalEntrance = -99.;
533 float sumEtaTimesEnergy = 0.;
534 float sumEnergy = 0.;
535 const std::vector<reco::PFCandidatePtr>& signalPFCands = thePFTau.
signalPFCands();
536 for ( std::vector<reco::PFCandidatePtr>::const_iterator pfCandidate = signalPFCands.begin();
537 pfCandidate != signalPFCands.end(); ++pfCandidate ) {
538 sumEtaTimesEnergy += (*pfCandidate)->positionAtECALEntrance().eta()*(*pfCandidate)->energy();
539 sumEnergy += (*pfCandidate)->energy();
541 if ( sumEnergy > 0. ) {
542 TauEtaAtEcalEntrance = sumEtaTimesEnergy/sumEnergy;
545 float TauLeadChargedPFCandEtaAtEcalEntrance = -99.;
546 float TauLeadChargedPFCandPt = -99.;
547 for ( std::vector<reco::PFCandidatePtr>::const_iterator pfCandidate = signalPFCands.begin();
548 pfCandidate != signalPFCands.end(); ++pfCandidate ) {
550 if ( (*pfCandidate)->trackRef().isNonnull() ) track = (*pfCandidate)->trackRef().get();
551 else if ( (*pfCandidate)->muonRef().isNonnull() && (*pfCandidate)->muonRef()->innerTrack().isNonnull() ) track = (*pfCandidate)->muonRef()->innerTrack().get();
552 else if ( (*pfCandidate)->muonRef().isNonnull() && (*pfCandidate)->muonRef()->globalTrack().isNonnull() ) track = (*pfCandidate)->muonRef()->globalTrack().get();
553 else if ( (*pfCandidate)->muonRef().isNonnull() && (*pfCandidate)->muonRef()->outerTrack().isNonnull() ) track = (*pfCandidate)->muonRef()->outerTrack().get();
554 else if ( (*pfCandidate)->gsfTrackRef().isNonnull() ) track = (*pfCandidate)->gsfTrackRef().get();
556 if ( track->
pt() > TauLeadChargedPFCandPt ) {
557 TauLeadChargedPFCandEtaAtEcalEntrance = (*pfCandidate)->positionAtECALEntrance().
eta();
558 TauLeadChargedPFCandPt = track->
pt();
563 Float_t TauPt = thePFTau.
pt();
565 Float_t TauLeadPFChargedHadrHoP = 0.;
566 Float_t TauLeadPFChargedHadrEoP = 0.;
572 std::vector<Float_t> GammasdEtaInSigCone;
573 std::vector<Float_t> GammasdPhiInSigCone;
574 std::vector<Float_t> GammasPtInSigCone;
575 std::vector<Float_t> GammasdEtaOutSigCone;
576 std::vector<Float_t> GammasdPhiOutSigCone;
577 std::vector<Float_t> GammasPtOutSigCone;
587 if (dR < signalrad) {
593 GammasdEtaInSigCone.push_back(gamma->eta() - thePFTau.
eta());
594 GammasdPhiInSigCone.push_back(gamma->phi() - thePFTau.
phi());
596 GammasPtInSigCone.push_back(gamma->pt());
597 pfGammaSum += gamma->p4();
606 GammasdEtaOutSigCone.push_back(gamma->eta() - thePFTau.
eta());
607 GammasdPhiOutSigCone.push_back(gamma->phi() - thePFTau.
phi());
609 GammasPtOutSigCone.push_back(gamma->pt());
619 if (dR < signalrad) {
620 pfChargedSum += charged->p4();
624 Int_t TauSignalPFGammaCandsIn = GammasPtInSigCone.size();
625 Int_t TauSignalPFGammaCandsOut = GammasPtOutSigCone.size();
626 Float_t TauVisMassIn = (pfGammaSum + pfChargedSum).mass();
628 Float_t TauPhi = thePFTau.
phi();
629 float sumPhiTimesEnergy = 0.;
630 float sumEnergyPhi = 0.;
631 for ( std::vector<reco::PFCandidatePtr>::const_iterator pfCandidate = signalPFCands.begin();
632 pfCandidate != signalPFCands.end(); ++pfCandidate ) {
633 sumPhiTimesEnergy += (*pfCandidate)->positionAtECALEntrance().phi()*(*pfCandidate)->energy();
634 sumEnergyPhi += (*pfCandidate)->energy();
636 if ( sumEnergyPhi > 0. ) {
637 TauPhi = sumPhiTimesEnergy/sumEnergyPhi;
639 Float_t TaudCrackPhi =
dCrackPhi(TauPhi, TauEtaAtEcalEntrance);
640 Float_t TaudCrackEta =
dCrackEta(TauEtaAtEcalEntrance);
645 Float_t ElecEta = theGsfEle.
eta();
646 Float_t ElecPhi = theGsfEle.
phi();
650 Float_t ElecEgamma = 0.;
654 pfCluster != pfSuperCluster->clustersEnd(); ++pfCluster ) {
655 double pfClusterEn = (*pfCluster)->energy();
656 if ( pfCluster == pfSuperCluster->clustersBegin() ) ElecEe += pfClusterEn;
657 else ElecEgamma += pfClusterEn;
663 Float_t ElecEtotOverPin = (ElecPin > 0.0) ? ((ElecEe + ElecEgamma)/ElecPin) : -0.1;
667 Float_t ElecMvaInSigmaEtaEta = (theGsfEle).mvaInput().sigmaEtaEta;
668 Float_t ElecMvaInHadEnergy = (theGsfEle).mvaInput().hadEnergy;
669 Float_t ElecMvaInDeltaEta = (theGsfEle).mvaInput().deltaEta;
672 Float_t ElecChi2NormGSF = -99.;
673 Float_t ElecGSFNumHits = -99.;
674 Float_t ElecGSFTrackResol = -99.;
675 Float_t ElecGSFTracklnPt = -99.;
677 ElecChi2NormGSF = (theGsfEle).gsfTrack()->normalizedChi2();
678 ElecGSFNumHits = (theGsfEle).gsfTrack()->numberOfValidHits();
679 if ( theGsfEle.
gsfTrack()->pt() > 0. ) {
680 ElecGSFTrackResol = theGsfEle.
gsfTrack()->ptError()/theGsfEle.
gsfTrack()->pt();
681 ElecGSFTracklnPt =
log(theGsfEle.
gsfTrack()->pt())*M_LN10;
686 Float_t ElecChi2NormKF = -99.;
687 Float_t ElecKFNumHits = -99.;
689 ElecChi2NormKF = (theGsfEle).closestCtfTrackRef()->normalizedChi2();
690 ElecKFNumHits = (theGsfEle).closestCtfTrackRef()->numberOfValidHits();
694 TauEtaAtEcalEntrance,
696 TauLeadChargedPFCandPt,
697 TauLeadChargedPFCandEtaAtEcalEntrance,
699 TauLeadPFChargedHadrHoP,
700 TauLeadPFChargedHadrEoP,
705 TauSignalPFGammaCandsIn,
706 TauSignalPFGammaCandsOut,
710 GammasdEtaOutSigCone,
711 GammasdPhiOutSigCone,
727 ElecMvaInSigmaEtaEta,
735 float TauEtaAtEcalEntrance = -99.;
736 float sumEtaTimesEnergy = 0.;
737 float sumEnergy = 0.;
738 const std::vector<reco::PFCandidatePtr>& signalPFCands = thePFTau.
signalPFCands();
739 for ( std::vector<reco::PFCandidatePtr>::const_iterator pfCandidate = signalPFCands.begin();
740 pfCandidate != signalPFCands.end(); ++pfCandidate ) {
741 sumEtaTimesEnergy += (*pfCandidate)->positionAtECALEntrance().eta()*(*pfCandidate)->energy();
742 sumEnergy += (*pfCandidate)->energy();
744 if ( sumEnergy > 0. ) {
745 TauEtaAtEcalEntrance = sumEtaTimesEnergy/sumEnergy;
748 float TauLeadChargedPFCandEtaAtEcalEntrance = -99.;
749 float TauLeadChargedPFCandPt = -99.;
750 for ( std::vector<reco::PFCandidatePtr>::const_iterator pfCandidate = signalPFCands.begin();
751 pfCandidate != signalPFCands.end(); ++pfCandidate ) {
753 if ( (*pfCandidate)->trackRef().isNonnull() ) track = (*pfCandidate)->trackRef().get();
754 else if ( (*pfCandidate)->muonRef().isNonnull() && (*pfCandidate)->muonRef()->innerTrack().isNonnull() ) track = (*pfCandidate)->muonRef()->innerTrack().get();
755 else if ( (*pfCandidate)->muonRef().isNonnull() && (*pfCandidate)->muonRef()->globalTrack().isNonnull() ) track = (*pfCandidate)->muonRef()->globalTrack().get();
756 else if ( (*pfCandidate)->muonRef().isNonnull() && (*pfCandidate)->muonRef()->outerTrack().isNonnull() ) track = (*pfCandidate)->muonRef()->outerTrack().get();
757 else if ( (*pfCandidate)->gsfTrackRef().isNonnull() ) track = (*pfCandidate)->gsfTrackRef().get();
759 if ( track->
pt() > TauLeadChargedPFCandPt ) {
760 TauLeadChargedPFCandEtaAtEcalEntrance = (*pfCandidate)->positionAtECALEntrance().
eta();
761 TauLeadChargedPFCandPt = track->
pt();
766 Float_t TauPt = thePFTau.
pt();
768 Float_t TauLeadPFChargedHadrHoP = 0.;
769 Float_t TauLeadPFChargedHadrEoP = 0.;
775 std::vector<Float_t> GammasdEtaInSigCone;
776 std::vector<Float_t> GammasdPhiInSigCone;
777 std::vector<Float_t> GammasPtInSigCone;
778 std::vector<Float_t> GammasdEtaOutSigCone;
779 std::vector<Float_t> GammasdPhiOutSigCone;
780 std::vector<Float_t> GammasPtOutSigCone;
790 if (dR < signalrad) {
796 GammasdEtaInSigCone.push_back(gamma->eta() - thePFTau.
eta());
797 GammasdPhiInSigCone.push_back(gamma->phi() - thePFTau.
phi());
799 GammasPtInSigCone.push_back(gamma->pt());
800 pfGammaSum += gamma->p4();
809 GammasdEtaOutSigCone.push_back(gamma->eta() - thePFTau.
eta());
810 GammasdPhiOutSigCone.push_back(gamma->phi() - thePFTau.
phi());
812 GammasPtOutSigCone.push_back(gamma->pt());
822 if (dR < signalrad) {
823 pfChargedSum += charged->p4();
827 Int_t TauSignalPFGammaCandsIn = GammasPtInSigCone.size();
828 Int_t TauSignalPFGammaCandsOut = GammasPtOutSigCone.size();
829 Float_t TauVisMassIn = (pfGammaSum + pfChargedSum).mass();
831 Float_t TauPhi = thePFTau.
phi();
832 float sumPhiTimesEnergy = 0.;
833 float sumEnergyPhi = 0.;
834 for ( std::vector<reco::PFCandidatePtr>::const_iterator pfCandidate = signalPFCands.begin();
835 pfCandidate != signalPFCands.end(); ++pfCandidate ) {
836 sumPhiTimesEnergy += (*pfCandidate)->positionAtECALEntrance().phi()*(*pfCandidate)->energy();
837 sumEnergyPhi += (*pfCandidate)->energy();
839 if ( sumEnergyPhi > 0. ) {
840 TauPhi = sumPhiTimesEnergy/sumEnergyPhi;
842 Float_t TaudCrackPhi =
dCrackPhi(TauPhi, TauEtaAtEcalEntrance);
843 Float_t TaudCrackEta =
dCrackEta(TauEtaAtEcalEntrance);
848 Float_t dummyElecEta = 9.9;
851 TauEtaAtEcalEntrance,
853 TauLeadChargedPFCandPt,
854 TauLeadChargedPFCandEtaAtEcalEntrance,
856 TauLeadPFChargedHadrHoP,
857 TauLeadPFChargedHadrEoP,
862 TauSignalPFGammaCandsIn,
863 TauSignalPFGammaCandsOut,
867 GammasdEtaOutSigCone,
868 GammasdPhiOutSigCone,
899 std::array<double,18> fill_cPhi() {
901 std::array<double,18> cPhi;
904 for (
unsigned iCrack = 1; iCrack <= 17; ++iCrack )
905 cPhi[iCrack] = cPhi[0] - 2.*iCrack*pi/18;
909 static const std::array<double,18> cPhi = fill_cPhi();
924 if ( eta >= -1.47464 && eta <= 1.47464 ) {
927 if ( eta < 0. ) phi += delta_cPhi;
930 if ( phi > pi ) phi -= 2.*
pi;
931 if ( phi < -pi ) phi += 2.*
pi;
933 if ( phi >= -pi && phi <= pi ) {
936 if ( phi < cPhi[17] || phi >= cPhi[0] ) {
937 if ( phi < 0. ) phi += 2.*
pi;
938 retVal =
minimum(phi - cPhi[0], phi - cPhi[17] - 2.*pi);
942 unsigned iCrack = 16;
944 if ( phi < cPhi[iCrack] ) {
945 retVal =
minimum(phi - cPhi[iCrack + 1], phi - cPhi[iCrack]);
967 double cracks[5] = { 0., 4.44747e-01, 7.92824e-01, 1.14090e+00, 1.47464e+00 };
971 for (
int iCrack = 0; iCrack < 5 ; ++iCrack ) {
972 double d =
minimum(eta - cracks[iCrack], eta + cracks[iCrack]);
T getParameter(std::string const &) const
double minimum(double a, double b)
std::string mvaName_woGwGSF_BL_
std::string mvaName_NoEleMatch_woGwoGSF_BL_
bool isNonnull() const
Checks for non-null.
const PFCandidatePtr & leadPFChargedHadrCand() const
std::string mvaName_NoEleMatch_woGwoGSF_EC_
edm::FileInPath inputFileName_
AntiElectronIDMVA6(const edm::ParameterSet &)
const GBRForest * mva_wGwGSF_EC_
math::XYZVectorF trackMomentumAtVtx() const
const std::vector< reco::PFCandidatePtr > & signalPFGammaCands() const
Gamma candidates in signal region.
Float_t * Var_woGwGSF_Barrel_
bool exists(std::string const ¶meterName) const
checks if a parameter exists
Float_t * Var_NoEleMatch_wGwoGSF_Barrel_
virtual double phi() const final
momentum azimuthal angle
double dCrackPhi(double phi, double eta)
const GBRForest * mva_NoEleMatch_woGwoGSF_EC_
std::string mvaName_NoEleMatch_wGwoGSF_EC_
Float_t * Var_wGwGSF_Barrel_
void beginEvent(const edm::Event &, const edm::EventSetup &)
const GBRForest * mva_NoEleMatch_wGwoGSF_BL_
const std::vector< reco::PFCandidatePtr > & signalPFCands() const
PFCandidates in signal region.
TrackRef closestCtfTrackRef() const
Float_t * Var_NoEleMatch_woGwoGSF_Endcap_
std::vector< TFile * > inputFilesToDelete_
const GBRForest * mva_woGwGSF_EC_
double eta() const
pseudorapidity of momentum vector
double dPhi(double phi1, double phi2)
float deltaPhiSeedClusterTrackAtCalo() const
virtual SuperClusterRef superCluster() const
reference to a SuperCluster
math::XYZVectorF trackMomentumOut() const
double pt() const
track transverse momentum
Abs< T >::type abs(const T &t)
std::string mvaName_wGwGSF_EC_
bool isNonnull() const
Checks for non-null.
double deltaR(double eta1, double eta2, double phi1, double phi2)
std::pair< int, edm::FunctionWithDict > OK
double MVAValue(Float_t TauPt, Float_t TauEtaAtEcalEntrance, Float_t TauPhi, Float_t TauLeadChargedPFCandPt, Float_t TauLeadChargedPFCandEtaAtEcalEntrance, Float_t TauEmFraction, Float_t TauLeadPFChargedHadrHoP, Float_t TauLeadPFChargedHadrEoP, Float_t TauVisMassIn, Float_t TaudCrackEta, Float_t TaudCrackPhi, Float_t TauHasGsf, Int_t TauSignalPFGammaCandsIn, Int_t TauSignalPFGammaCandsOut, const std::vector< Float_t > &GammasdEtaInSigCone, const std::vector< Float_t > &GammasdPhiInSigCone, const std::vector< Float_t > &GammasPtInSigCone, const std::vector< Float_t > &GammasdEtaOutSigCone, const std::vector< Float_t > &GammasdPhiOutSigCone, const std::vector< Float_t > &GammasPtOutSigCone, Float_t ElecEta, Float_t ElecPhi, Float_t ElecEtotOverPin, Float_t ElecChi2NormGSF, Float_t ElecChi2NormKF, Float_t ElecGSFNumHits, Float_t ElecKFNumHits, Float_t ElecGSFTrackResol, Float_t ElecGSFTracklnPt, Float_t ElecPin, Float_t ElecPout, Float_t ElecEecal, Float_t ElecDeltaEta, Float_t ElecDeltaPhi, Float_t ElecMvaInSigmaEtaEta, Float_t ElecMvaInHadEnergy, Float_t ElecMvaInDeltaEta)
LocationCode location() const
Where was the file found?
Float_t * Var_NoEleMatch_wGwoGSF_Endcap_
T const * product() const
const GBRForest * mva_wGwGSF_BL_
const GBRForest * mva_woGwGSF_BL_
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Geom::Phi< T > phi() const
float deltaEtaSeedClusterTrackAtCalo() const
const GBRForest * mva_NoEleMatch_wGwoGSF_EC_
Float_t * Var_wGwGSF_Endcap_
std::string mvaName_wGwGSF_BL_
std::string mvaName_NoEleMatch_wGwoGSF_BL_
virtual double eta() const final
momentum pseudorapidity
volatile std::atomic< bool > shutdown_flag false
std::string fullPath() const
double dCrackEta(double eta)
const GBRForest * mva_NoEleMatch_woGwoGSF_BL_
double GetClassifier(const float *vector) const
Float_t * Var_woGwGSF_Endcap_
std::string mvaName_woGwGSF_EC_
const std::vector< reco::PFCandidatePtr > & signalPFChargedHadrCands() const
Charged hadrons in signal region.
virtual GsfTrackRef gsfTrack() const
reference to a GsfTrack
virtual double pt() const final
transverse momentum
Float_t * Var_NoEleMatch_woGwoGSF_Barrel_