196 if ( tau->leadPFChargedHadrCand().
isNull() )
return 0.;
198 int tauDecayMode = tau->decayMode();
214 float decayDistMag =
std::sqrt(decayDistX*decayDistX + decayDistY*decayDistY + decayDistZ*decayDistZ);
226 mvaInput_[1] = std::fabs((
float)tau->eta());
228 mvaInput_[3] =
std::log(
std::max((
float)1.
e-2, neutralIsoPtSum - (
float)0.125*puCorrPtSum));
230 mvaInput_[5] = tauDecayMode;
233 mvaInput_[1] = std::fabs((
float)tau->eta());
235 mvaInput_[3] =
std::log(
std::max((
float)1.
e-2, neutralIsoPtSum - (
float)0.125*puCorrPtSum));
237 mvaInput_[5] = tauDecayMode;
238 mvaInput_[6] =
TMath::Sign((
float)+1., (
float)tauLifetimeInfo.
dxy());
240 mvaInput_[8] =
std::min((
float)10., std::fabs((
float)tauLifetimeInfo.
dxy_Sig()));
246 mvaInput_[1] = std::fabs((
float)tau->eta());
251 mvaInput_[6] = tauDecayMode;
252 mvaInput_[7] =
std::min((
float)30., nPhoton);
253 mvaInput_[8] =
std::min((
float)0.5, ptWeightedDetaStrip);
254 mvaInput_[9] =
std::min((
float)0.5, ptWeightedDphiStrip);
255 mvaInput_[10] =
std::min((
float)0.5, ptWeightedDrSignal);
256 mvaInput_[11] =
std::min((
float)0.5, ptWeightedDrIsolation);
257 mvaInput_[12] =
std::min((
float)100., leadingTrackChi2);
258 mvaInput_[13] =
std::min((
float)1., eRatio);
259 mvaInput_[14] =
TMath::Sign((
float)+1., (
float)tauLifetimeInfo.
dxy());
260 mvaInput_[15] =
std::sqrt(std::fabs(
std::min((
float)1., std::fabs((
float)tauLifetimeInfo.
dxy()))));
261 mvaInput_[16] =
std::min((
float)10., std::fabs((
float)tauLifetimeInfo.
dxy_Sig()));
262 mvaInput_[17] =
TMath::Sign((
float)+1., (
float)tauLifetimeInfo.
ip3d());
264 mvaInput_[19] =
std::min((
float)10., std::fabs((
float)tauLifetimeInfo.
ip3d_Sig()));
270 mvaInput_[1] = std::fabs((
float)tau->eta());
275 mvaInput_[6] = tauDecayMode;
276 mvaInput_[7] =
std::min((
float)30., nPhoton);
277 mvaInput_[8] =
std::min((
float)0.5, ptWeightedDetaStrip);
278 mvaInput_[9] =
std::min((
float)0.5, ptWeightedDphiStrip);
279 mvaInput_[10] =
std::min((
float)0.5, ptWeightedDrSignal);
280 mvaInput_[11] =
std::min((
float)0.5, ptWeightedDrIsolation);
281 mvaInput_[12] =
std::min((
float)100., leadingTrackChi2);
282 mvaInput_[13] =
std::min((
float)1., eRatio);
283 mvaInput_[14] =
TMath::Sign((
float)+1., (
float)tauLifetimeInfo.
dxy());
284 mvaInput_[15] =
std::sqrt(std::fabs(
std::min((
float)1., std::fabs((
float)tauLifetimeInfo.
dxy()))));
285 mvaInput_[16] =
std::min((
float)10., std::fabs((
float)tauLifetimeInfo.
dxy_Sig()));
286 mvaInput_[17] =
TMath::Sign((
float)+1., (
float)tauLifetimeInfo.
ip3d());
288 mvaInput_[19] =
std::min((
float)10., std::fabs((
float)tauLifetimeInfo.
ip3d_Sig()));
296 edm::LogPrint(
"PFTauDiscByMVAIsol2") <<
"<PFRecoTauDiscriminationByMVAIsolationRun2::discriminate>:";
297 edm::LogPrint(
"PFTauDiscByMVAIsol2") <<
" tau: Pt = " << tau->pt() <<
", eta = " << tau->eta();
298 edm::LogPrint(
"PFTauDiscByMVAIsol2") <<
" isolation: charged = " << chargedIsoPtSum <<
", neutral = " << neutralIsoPtSum <<
", PUcorr = " <<
puCorrPtSum;
299 edm::LogPrint(
"PFTauDiscByMVAIsol2") <<
" decay mode = " << tauDecayMode;
300 edm::LogPrint(
"PFTauDiscByMVAIsol2") <<
" impact parameter: distance = " << tauLifetimeInfo.
dxy() <<
", significance = " << tauLifetimeInfo.
dxy_Sig();
302 <<
" distance = " << decayDistMag <<
", significance = " << tauLifetimeInfo.
flightLengthSig();
303 edm::LogPrint(
"PFTauDiscByMVAIsol2") <<
"--> mvaValue = " << mvaValue;
bool hasSecondaryVertex() const
float tau_Eratio(const reco::PFTau &tau) const
return ratio of energy in ECAL over sum of energy in ECAL and HCAL
TauIdMVAAuxiliaries clusterVariables_
double flightLengthSig() const
const Vector & flightLength() const
float tau_pt_weighted_dphi_strip(const reco::PFTau &tau, int dm) const
float tau_pt_weighted_dr_signal(const reco::PFTau &tau, int dm) const
float tau_leadTrackChi2(const reco::PFTau &tau) const
return chi2 of the leading track ==> deprecated? <==
bool isNull() const
Checks for null.
float tau_pt_weighted_dr_iso(const reco::PFTau &tau, int dm) const
const GBRForest * mvaReader_
float tau_pt_weighted_deta_strip(const reco::PFTau &tau, int dm) const
tuple footprintCorrection
tuple photonPtSumOutsideSignalCone
double GetClassifier(const float *vector) const
std::unique_ptr< PFTauDiscriminator > category_output_
unsigned int tau_n_photons_total(const reco::PFTau &tau) const
return total number of pf photon candidates with pT>500 MeV, which are associated to signal ...