2 #include <ext/functional>
17 tracks(tracks), track(track) {}
20 {
return tracks[idt.first] == track; }
26 struct VertexTrackSelector {
28 {
return idt.second.associatedToVertex(); }
31 struct IndexedVertexTrackSelector {
32 IndexedVertexTrackSelector(
unsigned int index) :
36 {
return idt.second.associatedToVertex(
index); }
43 const std::vector<IndexedTrackData> &trackData,
44 const std::vector<VertexData> &svData,
45 unsigned int vertexCandidates,
47 m_trackData(trackData),
49 m_vertexCandidates(vertexCandidates),
50 m_trackIPTagInfoRef(trackIPTagInfoRef)
57 VertexTrackSelector());
63 IndexedVertexTrackSelector(index));
72 for(std::vector<IndexedTrackData>::const_iterator iter =
75 trackRefs.
push_back(trackIPTrackRefs[iter->first]);
86 for(std::vector<IndexedTrackData>::const_iterator iter =
89 if (iter->second.associatedToVertex())
90 trackRefs.
push_back(trackIPTrackRefs[iter->first]);
101 for(std::vector<IndexedTrackData>::const_iterator iter =
104 if (iter->second.associatedToVertex(index))
105 trackRefs.
push_back(trackIPTrackRefs[iter->first]);
117 std::vector<IndexedTrackData>::const_iterator
pos =
124 <<
"Track not found in "
125 "SecondaryVertexTagInfo::findTrack." << std::endl;
158 return m_svData[svIndex].vertex.trackWeight(track);
162 unsigned int trackIndex)
const
171 for(std::vector<VertexData>::const_iterator iter =
m_svData.begin();
174 iter->dist2d.value(),
true);
176 iter->dist2d.significance(),
true);
178 iter->dist3d.value(),
true);
180 iter->dist3d.significance(),
true);
const TrackData & trackData(unsigned int index) const
unsigned int findTrack(const TrackRef &track) const
std::vector< VertexData > m_svData
virtual TaggingVariableList taggingVariables() const
returns a description of the extended informations in a TaggingVariableList
virtual edm::RefToBase< Jet > jet(void) const
returns a polymorphic reference to the tagged jet
TrackRef track(unsigned int index) const
const TrackIPTagInfo::TrackIPData & trackIPData(unsigned int index) const
TrackRefVector selectedTracks() const
float trackWeight(unsigned int svIndex, unsigned int trackindex) const
TrackRefVector vertexTracks() const
std::pair< unsigned int, TrackData > IndexedTrackData
TrackIPTagInfoRef m_trackIPTagInfoRef
std::vector< IndexedTrackData > m_trackData
double deltaR(const Vector1 &v1, const Vector2 &v2)
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
unsigned int nVertexTracks() const
unsigned int m_vertexCandidates
void insert(const TaggingVariable &variable, bool delayed=false)