CMS 3D CMS Logo

Public Member Functions | Private Attributes

reco::TrackProbabilityTagInfo Class Reference

#include <TrackProbabilityTagInfo.h>

Inheritance diagram for reco::TrackProbabilityTagInfo:
reco::JTATagInfo reco::BaseTagInfo

List of all members.

Public Member Functions

virtual TrackProbabilityTagInfoclone () 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 Tracktrack (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

Detailed Description

Definition at line 11 of file TrackProbabilityTagInfo.h.


Constructor & Destructor Documentation

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]

Definition at line 25 of file TrackProbabilityTagInfo.h.

Referenced by clone().

{}
virtual reco::TrackProbabilityTagInfo::~TrackProbabilityTagInfo ( ) [inline, virtual]

Definition at line 27 of file TrackProbabilityTagInfo.h.

{}

Member Function Documentation

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().

{
 if(n<2) return 1;
 else return n*factorial(n-1);
}
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;
   }

Member Data Documentation

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().

Definition at line 132 of file TrackProbabilityTagInfo.h.

Referenced by trackIndex().

Definition at line 133 of file TrackProbabilityTagInfo.h.

Referenced by trackIndex().