File indexing completed on 2024-04-06 12:24:36
0001 #include <limits>
0002
0003 #include "DataFormats/BTauReco/interface/CandSoftLeptonTagInfo.h"
0004 #include "RecoBTag/SoftLepton/interface/LeptonTaggerByIP.h"
0005 #include "RecoBTag/SoftLepton/interface/LeptonSelector.h"
0006
0007
0008 float LeptonTaggerByIP::discriminator(const TagInfoHelper& tagInfo) const {
0009
0010 float bestTag = -std::numeric_limits<float>::infinity();
0011 const reco::CandSoftLeptonTagInfo& info = tagInfo.get<reco::CandSoftLeptonTagInfo>();
0012
0013 for (unsigned int i = 0; i < info.leptons(); i++) {
0014 const reco::SoftLeptonProperties& properties = info.properties(i);
0015 float sipsig = m_use3d ? properties.sip3dsig : properties.sip2dsig;
0016 if (m_selector.isNegative())
0017 sipsig = -sipsig;
0018 if (m_selector(properties, m_use3d)) {
0019 float tag = sipsig;
0020 if (tag > bestTag)
0021 bestTag = tag;
0022 }
0023 }
0024 return bestTag;
0025 }