CMS 3D CMS Logo

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

#include <SecondaryVertexTagInfo.h>

Inheritance diagram for reco::SecondaryVertexTagInfo:
reco::BaseTagInfo

Classes

struct  TrackData
 
struct  VertexData
 

Public Types

typedef std::pair< unsigned
int, TrackData
IndexedTrackData
 

Public Member Functions

virtual SecondaryVertexTagInfoclone (void) const
 clone More...
 
unsigned int findTrack (const TrackRef &track) const
 
const GlobalVectorflightDirection (unsigned int index) const
 
Measurement1D flightDistance (unsigned int index, bool in2d=false) const
 
virtual edm::RefToBase< Jetjet (void) const
 returns a polymorphic reference to the tagged jet More...
 
const JetTracksAssociationRefjtaRef (void) const
 
unsigned int nSelectedTracks () const
 
unsigned int nVertexCandidates () const
 
unsigned int nVertexTracks () const
 
unsigned int nVertexTracks (unsigned int index) const
 
unsigned int nVertices () const
 
const VertexsecondaryVertex (unsigned int index) const
 
 SecondaryVertexTagInfo ()
 
 SecondaryVertexTagInfo (const std::vector< IndexedTrackData > &trackData, const std::vector< VertexData > &svData, unsigned int vertexCandidates, const TrackIPTagInfoRef &trackIPTagInfoRef)
 
TrackRefVector selectedTracks () const
 
virtual TaggingVariableList taggingVariables () const
 returns a description of the extended informations in a TaggingVariableList More...
 
TrackRef track (unsigned int index) const
 
const TrackDatatrackData (unsigned int index) const
 
const TrackDatatrackData (const TrackRef &track) const
 
const TrackIPTagInfo::TrackIPDatatrackIPData (unsigned int index) const
 
const TrackIPTagInfo::TrackIPDatatrackIPData (const TrackRef &track) const
 
const TrackIPTagInfoReftrackIPTagInfoRef () const
 
virtual TrackRefVector tracks (void) const
 returns a list of tracks associated to the jet More...
 
float trackWeight (unsigned int svIndex, unsigned int trackindex) const
 
float trackWeight (unsigned int svIndex, const TrackRef &track) const
 
TrackRefVector vertexTracks () const
 
TrackRefVector vertexTracks (unsigned int index) const
 
virtual ~SecondaryVertexTagInfo ()
 
- Public Member Functions inherited from reco::BaseTagInfo
 BaseTagInfo (void)
 
virtual bool hasTracks (void) const
 check if the algorithm is using the tracks or not More...
 
virtual ~BaseTagInfo (void)
 

Private Attributes

std::vector< VertexDatam_svData
 
std::vector< IndexedTrackDatam_trackData
 
TrackIPTagInfoRef m_trackIPTagInfoRef
 
unsigned int m_vertexCandidates
 

Detailed Description

Definition at line 19 of file SecondaryVertexTagInfo.h.

Member Typedef Documentation

Definition at line 44 of file SecondaryVertexTagInfo.h.

Constructor & Destructor Documentation

reco::SecondaryVertexTagInfo::SecondaryVertexTagInfo ( )
inline

Definition at line 46 of file SecondaryVertexTagInfo.h.

Referenced by clone().

46 {}
virtual reco::SecondaryVertexTagInfo::~SecondaryVertexTagInfo ( )
inlinevirtual

Definition at line 47 of file SecondaryVertexTagInfo.h.

47 {}
SecondaryVertexTagInfo::SecondaryVertexTagInfo ( const std::vector< IndexedTrackData > &  trackData,
const std::vector< VertexData > &  svData,
unsigned int  vertexCandidates,
const TrackIPTagInfoRef trackIPTagInfoRef 
)

Definition at line 42 of file SecondaryVertexTagInfo.cc.

46  :
48  m_svData(svData),
49  m_vertexCandidates(vertexCandidates),
50  m_trackIPTagInfoRef(trackIPTagInfoRef)
51 {
52 }
const TrackData & trackData(unsigned int index) const
std::vector< VertexData > m_svData
std::vector< IndexedTrackData > m_trackData

Member Function Documentation

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

clone

Reimplemented from reco::BaseTagInfo.

Definition at line 56 of file SecondaryVertexTagInfo.h.

References SecondaryVertexTagInfo().

56  {
57  return new SecondaryVertexTagInfo(*this);
58  }
unsigned int SecondaryVertexTagInfo::findTrack ( const TrackRef track) const

Definition at line 115 of file SecondaryVertexTagInfo.cc.

References edm::errors::InvalidReference, m_trackData, m_trackIPTagInfoRef, pos, and track().

Referenced by trackData(), and trackIPData().

116 {
117  std::vector<IndexedTrackData>::const_iterator pos =
118  std::find_if(m_trackData.begin(), m_trackData.end(),
119  TrackFinder(m_trackIPTagInfoRef->selectedTracks(),
120  track));
121 
122  if (pos == m_trackData.end())
124  << "Track not found in "
125  "SecondaryVertexTagInfo::findTrack." << std::endl;
126 
127  return pos - m_trackData.begin();
128 }
TrackRef track(unsigned int index) const
std::vector< IndexedTrackData > m_trackData
const GlobalVector& reco::SecondaryVertexTagInfo::flightDirection ( unsigned int  index) const
inline
Measurement1D reco::SecondaryVertexTagInfo::flightDistance ( unsigned int  index,
bool  in2d = false 
) const
inline
virtual edm::RefToBase<Jet> reco::SecondaryVertexTagInfo::jet ( void  ) const
inlinevirtual

returns a polymorphic reference to the tagged jet

Reimplemented from reco::BaseTagInfo.

Definition at line 63 of file SecondaryVertexTagInfo.h.

References m_trackIPTagInfoRef.

Referenced by taggingVariables().

64  { return m_trackIPTagInfoRef->jet(); }
const JetTracksAssociationRef& reco::SecondaryVertexTagInfo::jtaRef ( void  ) const
inline

Definition at line 69 of file SecondaryVertexTagInfo.h.

References m_trackIPTagInfoRef.

70  { return m_trackIPTagInfoRef->jtaRef(); }
unsigned int reco::SecondaryVertexTagInfo::nSelectedTracks ( ) const
inline

Definition at line 75 of file SecondaryVertexTagInfo.h.

References m_trackData.

75 { return m_trackData.size(); }
std::vector< IndexedTrackData > m_trackData
unsigned int reco::SecondaryVertexTagInfo::nVertexCandidates ( ) const
inline

Definition at line 79 of file SecondaryVertexTagInfo.h.

References m_vertexCandidates.

unsigned int SecondaryVertexTagInfo::nVertexTracks ( ) const

Definition at line 54 of file SecondaryVertexTagInfo.cc.

References m_trackData.

Referenced by SimpleSecondaryVertexComputer::discriminator(), CombinedSVComputer::operator()(), and taggingVariables().

55 {
56  return std::count_if(m_trackData.begin(), m_trackData.end(),
57  VertexTrackSelector());
58 }
std::vector< IndexedTrackData > m_trackData
unsigned int SecondaryVertexTagInfo::nVertexTracks ( unsigned int  index) const

Definition at line 60 of file SecondaryVertexTagInfo.cc.

References m_trackData.

61 {
62  return std::count_if(m_trackData.begin(), m_trackData.end(),
63  IndexedVertexTrackSelector(index));
64 }
std::vector< IndexedTrackData > m_trackData
unsigned int reco::SecondaryVertexTagInfo::nVertices ( ) const
inline
const Vertex& reco::SecondaryVertexTagInfo::secondaryVertex ( unsigned int  index) const
inline
TrackRefVector SecondaryVertexTagInfo::selectedTracks ( ) const

Definition at line 66 of file SecondaryVertexTagInfo.cc.

References m_trackData, m_trackIPTagInfoRef, and edm::RefVector< C, T, F >::push_back().

67 {
68  TrackRefVector trackRefs;
69  const TrackRefVector &trackIPTrackRefs =
70  m_trackIPTagInfoRef->selectedTracks();
71 
72  for(std::vector<IndexedTrackData>::const_iterator iter =
73  m_trackData.begin(); iter != m_trackData.end(); iter++)
74 
75  trackRefs.push_back(trackIPTrackRefs[iter->first]);
76 
77  return trackRefs;
78 }
std::vector< IndexedTrackData > m_trackData
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:64
TaggingVariableList SecondaryVertexTagInfo::taggingVariables ( void  ) const
virtual

returns a description of the extended informations in a TaggingVariableList

Reimplemented from reco::BaseTagInfo.

Definition at line 167 of file SecondaryVertexTagInfo.cc.

References Geom::deltaR(), reco::TaggingVariableList::finalize(), reco::btau::flightDistance2dSig, reco::btau::flightDistance2dVal, reco::btau::flightDistance3dSig, reco::btau::flightDistance3dVal, reco::TaggingVariableList::insert(), jet(), reco::btau::jetNSecondaryVertices, m_svData, m_vertexCandidates, nVertexTracks(), reco::btau::vertexJetDeltaR, and reco::btau::vertexNTracks.

168 {
169  TaggingVariableList vars;
170 
171  for(std::vector<VertexData>::const_iterator iter = m_svData.begin();
172  iter != m_svData.end(); iter++) {
174  iter->dist2d.value(), true);
176  iter->dist2d.significance(), true);
178  iter->dist3d.value(), true);
180  iter->dist3d.significance(), true);
181 
183  Geom::deltaR(iter->direction, jet()->momentum()), true);
184  }
185 
188 
189  vars.finalize();
190  return vars;
191 }
std::vector< VertexData > m_svData
virtual edm::RefToBase< Jet > jet(void) const
returns a polymorphic reference to the tagged jet
double deltaR(const Vector1 &v1, const Vector2 &v2)
Definition: VectorUtil.h:84
void insert(const TaggingVariable &variable, bool delayed=false)
TrackRef SecondaryVertexTagInfo::track ( unsigned int  index) const

Definition at line 110 of file SecondaryVertexTagInfo.cc.

References getHLTprescales::index, m_trackData, and m_trackIPTagInfoRef.

Referenced by findTrack(), and trackWeight().

111 {
112  return m_trackIPTagInfoRef->selectedTracks()[m_trackData[index].first];
113 }
std::vector< IndexedTrackData > m_trackData
const SecondaryVertexTagInfo::TrackData & SecondaryVertexTagInfo::trackData ( unsigned int  index) const

Definition at line 131 of file SecondaryVertexTagInfo.cc.

References getHLTprescales::index, and m_trackData.

132 {
133  return m_trackData[index].second;
134 }
std::vector< IndexedTrackData > m_trackData
const SecondaryVertexTagInfo::TrackData & SecondaryVertexTagInfo::trackData ( const TrackRef track) const

Definition at line 137 of file SecondaryVertexTagInfo.cc.

References findTrack(), and m_trackData.

138 {
139  return m_trackData[findTrack(track)].second;
140 }
unsigned int findTrack(const TrackRef &track) const
std::vector< IndexedTrackData > m_trackData
const TrackIPTagInfo::TrackIPData & SecondaryVertexTagInfo::trackIPData ( unsigned int  index) const

Definition at line 143 of file SecondaryVertexTagInfo.cc.

References getHLTprescales::index, m_trackData, and m_trackIPTagInfoRef.

Referenced by trackIPData().

144 {
145  return m_trackIPTagInfoRef->impactParameterData()[
146  m_trackData[index].first];
147 }
std::vector< IndexedTrackData > m_trackData
const TrackIPTagInfo::TrackIPData & SecondaryVertexTagInfo::trackIPData ( const TrackRef track) const

Definition at line 150 of file SecondaryVertexTagInfo.cc.

References findTrack(), and trackIPData().

151 {
152  return trackIPData(findTrack(track));
153 }
unsigned int findTrack(const TrackRef &track) const
const TrackIPTagInfo::TrackIPData & trackIPData(unsigned int index) const
const TrackIPTagInfoRef& reco::SecondaryVertexTagInfo::trackIPTagInfoRef ( ) const
inline

Definition at line 60 of file SecondaryVertexTagInfo.h.

References m_trackIPTagInfoRef.

61  { return m_trackIPTagInfoRef; }
virtual TrackRefVector reco::SecondaryVertexTagInfo::tracks ( void  ) const
inlinevirtual

returns a list of tracks associated to the jet

Reimplemented from reco::BaseTagInfo.

Definition at line 66 of file SecondaryVertexTagInfo.h.

References m_trackIPTagInfoRef.

67  { return m_trackIPTagInfoRef->tracks(); }
float SecondaryVertexTagInfo::trackWeight ( unsigned int  svIndex,
unsigned int  trackindex 
) const

Definition at line 161 of file SecondaryVertexTagInfo.cc.

References track().

Referenced by CombinedSVComputer::operator()(), GhostTrackComputer::operator()(), CombinedSVComputerV2::operator()(), and CombinedSVSoftLeptonComputer::operator()().

163 {
164  return trackWeight(svIndex, track(trackIndex));
165 }
TrackRef track(unsigned int index) const
float trackWeight(unsigned int svIndex, unsigned int trackindex) const
float SecondaryVertexTagInfo::trackWeight ( unsigned int  svIndex,
const TrackRef track 
) const

Definition at line 155 of file SecondaryVertexTagInfo.cc.

References m_svData.

157 {
158  return m_svData[svIndex].vertex.trackWeight(track);
159 }
std::vector< VertexData > m_svData
TrackRefVector SecondaryVertexTagInfo::vertexTracks ( ) const

Definition at line 80 of file SecondaryVertexTagInfo.cc.

References m_trackData, m_trackIPTagInfoRef, and edm::RefVector< C, T, F >::push_back().

Referenced by CombinedSVComputer::operator()(), GhostTrackComputer::operator()(), CombinedSVComputerV2::operator()(), and CombinedSVSoftLeptonComputer::operator()().

81 {
82  TrackRefVector trackRefs;
83  const TrackRefVector &trackIPTrackRefs =
84  m_trackIPTagInfoRef->selectedTracks();
85 
86  for(std::vector<IndexedTrackData>::const_iterator iter =
87  m_trackData.begin(); iter != m_trackData.end(); iter++)
88 
89  if (iter->second.associatedToVertex())
90  trackRefs.push_back(trackIPTrackRefs[iter->first]);
91 
92  return trackRefs;
93 }
std::vector< IndexedTrackData > m_trackData
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:64
TrackRefVector SecondaryVertexTagInfo::vertexTracks ( unsigned int  index) const

Definition at line 95 of file SecondaryVertexTagInfo.cc.

References m_trackData, m_trackIPTagInfoRef, and edm::RefVector< C, T, F >::push_back().

96 {
97  TrackRefVector trackRefs;
98  const TrackRefVector &trackIPTrackRefs =
99  m_trackIPTagInfoRef->selectedTracks();
100 
101  for(std::vector<IndexedTrackData>::const_iterator iter =
102  m_trackData.begin(); iter != m_trackData.end(); iter++)
103 
104  if (iter->second.associatedToVertex(index))
105  trackRefs.push_back(trackIPTrackRefs[iter->first]);
106 
107  return trackRefs;
108 }
std::vector< IndexedTrackData > m_trackData
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:64

Member Data Documentation

std::vector<VertexData> reco::SecondaryVertexTagInfo::m_svData
private
std::vector<IndexedTrackData> reco::SecondaryVertexTagInfo::m_trackData
private
TrackIPTagInfoRef reco::SecondaryVertexTagInfo::m_trackIPTagInfoRef
private
unsigned int reco::SecondaryVertexTagInfo::m_vertexCandidates
private

Definition at line 108 of file SecondaryVertexTagInfo.h.

Referenced by nVertexCandidates(), and taggingVariables().