CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
reco::TrackProbabilityTagInfo Class Reference

#include <TrackProbabilityTagInfo.h>

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

Public Member Functions

virtual TrackProbabilityTagInfoclone () const
 clone More...
 
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 (std::vector< double > probability2d, std::vector< double > probability3d, std::vector< int > trackOrder2d, std::vector< int > trackOrder3d, const JetTracksAssociationRef &jtaRef)
 
 TrackProbabilityTagInfo ()
 
virtual ~TrackProbabilityTagInfo ()
 
- Public Member Functions inherited from reco::JTATagInfo
virtual bool hasTracks (void) const
 check if the algorithm is using the tracks or not More...
 
virtual edm::RefToBase< Jetjet (void) const
 returns a polymorphic reference to the tagged jet More...
 
const JetTracksAssociationRefjtaRef (void) const
 
 JTATagInfo (void)
 
 JTATagInfo (const JetTracksAssociationRef &jtaRef)
 
void setJTARef (const JetTracksAssociationRef &jtaRef)
 
virtual TrackRefVector tracks (void) const
 returns a list of tracks associated to the jet More...
 
virtual ~JTATagInfo (void)
 
- Public Member Functions inherited from reco::BaseTagInfo
 BaseTagInfo (void)
 
virtual TaggingVariableList taggingVariables (void) const
 returns a description of the extended informations in a TaggingVariableList More...
 
virtual ~BaseTagInfo (void)
 

Private Attributes

std::vector< double > m_probability2d
 
std::vector< double > m_probability3d
 
std::vector< int > m_trackOrder2d
 
std::vector< int > m_trackOrder3d
 

Additional Inherited Members

- Protected Attributes inherited from reco::JTATagInfo
JetTracksAssociationRef m_jetTracksAssociation
 

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.

19  : JTATagInfo(jtaRef),
20  m_probability2d(probability2d),
21  m_probability3d(probability3d),
22  m_trackOrder2d(trackOrder2d),
23  m_trackOrder3d(trackOrder3d) {}
const JetTracksAssociationRef & jtaRef(void) const
Definition: JTATagInfo.h:22
reco::TrackProbabilityTagInfo::TrackProbabilityTagInfo ( )
inline

Definition at line 25 of file TrackProbabilityTagInfo.h.

Referenced by clone().

25 {}
virtual reco::TrackProbabilityTagInfo::~TrackProbabilityTagInfo ( )
inlinevirtual

Definition at line 27 of file TrackProbabilityTagInfo.h.

27 {}

Member Function Documentation

virtual TrackProbabilityTagInfo* reco::TrackProbabilityTagInfo::clone ( void  ) const
inlinevirtual

clone

Reimplemented from reco::JTATagInfo.

Definition at line 127 of file TrackProbabilityTagInfo.h.

References TrackProbabilityTagInfo().

127 { return new TrackProbabilityTagInfo( * this ); }
virtual float reco::TrackProbabilityTagInfo::discriminator ( int  ipType,
float  minProb 
) const
inlinevirtual

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

100 { return jetProbability(ipType,minProb); }
virtual float jetProbability(int ip, float minTrackProb) const
int reco::TrackProbabilityTagInfo::factorial ( int  n) const
inline

Definition at line 29 of file TrackProbabilityTagInfo.h.

Referenced by jetProbability().

30 {
31  if(n<2) return 1;
32  else return n*factorial(n-1);
33 }
virtual float reco::TrackProbabilityTagInfo::jetProbability ( int  ip,
float  minTrackProb 
) const
inlinevirtual

Definition at line 50 of file TrackProbabilityTagInfo.h.

References gather_cfg::cout, create_public_lumi_plots::exp, factorial(), prof2calltree::l, create_public_lumi_plots::log, m_probability2d, m_probability3d, max(), min, lumiQueryAPI::q, and v.

Referenced by discriminator().

51 {
52 
53  const std::vector<double> * vp;
54  if(ip==0) vp= &m_probability3d;
55  else vp= &m_probability2d;
56  const std::vector<double> & v =*vp;
57 
58  int ngoodtracks=v.size();
59  double SumJet=0.;
60 
61  for(std::vector<double>::const_iterator q = v.begin(); q != v.end(); q++){
62  SumJet+=(*q>minTrackProb)?log(*q):log(minTrackProb);
63  }
64 
65  double ProbJet;
66  double Loginvlog=0;
67 
68  if(SumJet<0.){
69  if(ngoodtracks>=2){
70  Loginvlog=log(-SumJet);
71  }
72  double Prob=1.;
73  for(int l=1; l!=ngoodtracks; l++){
74 
75  Prob+=exp(l*Loginvlog-log(1.*factorial(l)));
76  }
77  double LogProb=log(Prob);
78  ProbJet=
79  std::min(exp(std::max(LogProb+SumJet,-30.)),1.);
80  }else{
81  ProbJet=1.;
82  }
83  if(ProbJet>1)
84  std::cout << "ProbJet too high: " << ProbJet << std::endl;
85 
86  //double LogProbJet=-log(ProbJet);
87  //return 1.-ProbJet;
88  return -log10(ProbJet)/4.;
89 }
#define min(a, b)
Definition: mlp_lapack.h:161
const T & max(const T &a, const T &b)
tuple cout
Definition: gather_cfg.py:121
mathSSE::Vec4< T > v
virtual float reco::TrackProbabilityTagInfo::probability ( size_t  n,
int  ip 
) const
inlinevirtual

Definition at line 35 of file TrackProbabilityTagInfo.h.

References m_probability2d, and m_probability3d.

Referenced by TrackProbabilityTagPlotter::analyzeTag().

36  {
37  if(ip == 0)
38  {
39  if(n <m_probability3d.size())
40  return m_probability3d[n];
41  }
42  else
43  {
44  if(n <m_probability2d.size())
45  return m_probability2d[n];
46  }
47  return -10.;
48  }
virtual int reco::TrackProbabilityTagInfo::selectedTracks ( int  ipType) const
inlinevirtual

Definition at line 102 of file TrackProbabilityTagInfo.h.

References m_probability2d, and m_probability3d.

Referenced by TrackProbabilityTagPlotter::analyzeTag().

103  {
104  if(ipType == 0) return m_probability3d.size();
105  else return m_probability2d.size();
106  }
virtual const Track& reco::TrackProbabilityTagInfo::track ( size_t  n,
int  ipType 
) const
inlinevirtual

Definition at line 122 of file TrackProbabilityTagInfo.h.

References trackIndex(), and reco::JTATagInfo::tracks().

123  {
124  return *tracks()[trackIndex(n,ipType)];
125  }
virtual TrackRefVector tracks(void) const
returns a list of tracks associated to the jet
Definition: JTATagInfo.h:21
virtual int trackIndex(size_t n, int ip) const
virtual int reco::TrackProbabilityTagInfo::trackIndex ( size_t  n,
int  ip 
) const
inlinevirtual

Definition at line 107 of file TrackProbabilityTagInfo.h.

References m_probability2d, m_probability3d, m_trackOrder2d, and m_trackOrder3d.

Referenced by track().

108  {
109  if(ip == 0)
110  {
111  if(n <m_probability3d.size())
112  return m_trackOrder3d[n];
113  }
114  else
115  {
116  if(n <m_probability2d.size())
117  return m_trackOrder2d[n];
118  }
119  return 0;
120  }

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

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