![]() |
![]() |
#include <TrackProbabilityTagInfo.h>
Public Member Functions | |
virtual TrackProbabilityTagInfo * | clone () const |
clone | |
virtual float | discriminator (int ipType, float minProb) const |
int | factorial (int n) const |
virtual float | jetProbability (int ip, float minTrackProb) const |
virtual float | probability (size_t n, int ip) const |
virtual int | selectedTracks (int ipType) const |
virtual const Track & | track (size_t n, int ipType) const |
virtual int | trackIndex (size_t n, int ip) const |
TrackProbabilityTagInfo () | |
TrackProbabilityTagInfo (std::vector< double > probability2d, std::vector< double > probability3d, std::vector< int > trackOrder2d, std::vector< int > trackOrder3d, const JetTracksAssociationRef &jtaRef) | |
virtual | ~TrackProbabilityTagInfo () |
Private Attributes | |
std::vector< double > | m_probability2d |
std::vector< double > | m_probability3d |
std::vector< int > | m_trackOrder2d |
std::vector< int > | m_trackOrder3d |
Definition at line 11 of file TrackProbabilityTagInfo.h.
reco::TrackProbabilityTagInfo::TrackProbabilityTagInfo | ( | std::vector< double > | probability2d, |
std::vector< double > | probability3d, | ||
std::vector< int > | trackOrder2d, | ||
std::vector< int > | trackOrder3d, | ||
const JetTracksAssociationRef & | jtaRef | ||
) | [inline] |
Definition at line 15 of file TrackProbabilityTagInfo.h.
: JTATagInfo(jtaRef), m_probability2d(probability2d), m_probability3d(probability3d), m_trackOrder2d(trackOrder2d), m_trackOrder3d(trackOrder3d) {}
reco::TrackProbabilityTagInfo::TrackProbabilityTagInfo | ( | ) | [inline] |
virtual reco::TrackProbabilityTagInfo::~TrackProbabilityTagInfo | ( | ) | [inline, virtual] |
Definition at line 27 of file TrackProbabilityTagInfo.h.
{}
virtual TrackProbabilityTagInfo* reco::TrackProbabilityTagInfo::clone | ( | void | ) | const [inline, virtual] |
clone
Reimplemented from reco::JTATagInfo.
Definition at line 127 of file TrackProbabilityTagInfo.h.
References TrackProbabilityTagInfo().
{ return new TrackProbabilityTagInfo( * this ); }
virtual float reco::TrackProbabilityTagInfo::discriminator | ( | int | ipType, |
float | minProb | ||
) | const [inline, virtual] |
Recompute discriminator ipType = 0 means 3d impact parameter ipType = 1 means transverse impact parameter
minProb is the minimum probability allowed for a single track. Tracks with lower probability are considered with a probability = minProb.
Definition at line 100 of file TrackProbabilityTagInfo.h.
References jetProbability().
{ return jetProbability(ipType,minProb); }
int reco::TrackProbabilityTagInfo::factorial | ( | int | n | ) | const [inline] |
Definition at line 29 of file TrackProbabilityTagInfo.h.
Referenced by jetProbability().
virtual float reco::TrackProbabilityTagInfo::jetProbability | ( | int | ip, |
float | minTrackProb | ||
) | const [inline, virtual] |
Definition at line 50 of file TrackProbabilityTagInfo.h.
References gather_cfg::cout, funct::exp(), factorial(), prof2calltree::l, funct::log(), m_probability2d, m_probability3d, max(), min, lumiQueryAPI::q, and v.
Referenced by discriminator().
{ const std::vector<double> * vp; if(ip==0) vp= &m_probability3d; else vp= &m_probability2d; const std::vector<double> & v =*vp; int ngoodtracks=v.size(); double SumJet=0.; for(std::vector<double>::const_iterator q = v.begin(); q != v.end(); q++){ SumJet+=(*q>minTrackProb)?log(*q):log(minTrackProb); } double ProbJet; double Loginvlog=0; if(SumJet<0.){ if(ngoodtracks>=2){ Loginvlog=log(-SumJet); } double Prob=1.; for(int l=1; l!=ngoodtracks; l++){ Prob+=exp(l*Loginvlog-log(1.*factorial(l))); } double LogProb=log(Prob); ProbJet= std::min(exp(std::max(LogProb+SumJet,-30.)),1.); }else{ ProbJet=1.; } if(ProbJet>1) std::cout << "ProbJet too high: " << ProbJet << std::endl; //double LogProbJet=-log(ProbJet); //return 1.-ProbJet; return -log10(ProbJet)/4.; }
virtual float reco::TrackProbabilityTagInfo::probability | ( | size_t | n, |
int | ip | ||
) | const [inline, virtual] |
Definition at line 35 of file TrackProbabilityTagInfo.h.
References m_probability2d, and m_probability3d.
{ if(ip == 0) { if(n <m_probability3d.size()) return m_probability3d[n]; } else { if(n <m_probability2d.size()) return m_probability2d[n]; } return -10.; }
virtual int reco::TrackProbabilityTagInfo::selectedTracks | ( | int | ipType | ) | const [inline, virtual] |
Definition at line 102 of file TrackProbabilityTagInfo.h.
References m_probability2d, and m_probability3d.
{ if(ipType == 0) return m_probability3d.size(); else return m_probability2d.size(); }
virtual const Track& reco::TrackProbabilityTagInfo::track | ( | size_t | n, |
int | ipType | ||
) | const [inline, virtual] |
Definition at line 122 of file TrackProbabilityTagInfo.h.
References trackIndex(), and reco::JTATagInfo::tracks().
{ return *tracks()[trackIndex(n,ipType)]; }
virtual int reco::TrackProbabilityTagInfo::trackIndex | ( | size_t | n, |
int | ip | ||
) | const [inline, virtual] |
Definition at line 107 of file TrackProbabilityTagInfo.h.
References m_probability2d, m_probability3d, m_trackOrder2d, and m_trackOrder3d.
Referenced by track().
{ if(ip == 0) { if(n <m_probability3d.size()) return m_trackOrder3d[n]; } else { if(n <m_probability2d.size()) return m_trackOrder2d[n]; } return 0; }
std::vector<double> reco::TrackProbabilityTagInfo::m_probability2d [private] |
Definition at line 130 of file TrackProbabilityTagInfo.h.
Referenced by jetProbability(), probability(), selectedTracks(), and trackIndex().
std::vector<double> reco::TrackProbabilityTagInfo::m_probability3d [private] |
Definition at line 131 of file TrackProbabilityTagInfo.h.
Referenced by jetProbability(), probability(), selectedTracks(), and trackIndex().
std::vector<int> reco::TrackProbabilityTagInfo::m_trackOrder2d [private] |
Definition at line 132 of file TrackProbabilityTagInfo.h.
Referenced by trackIndex().
std::vector<int> reco::TrackProbabilityTagInfo::m_trackOrder3d [private] |
Definition at line 133 of file TrackProbabilityTagInfo.h.
Referenced by trackIndex().