7 #include <Math/VectorUtil.h>
46 minTrackWeight(
params.getParameter<double>(
"minimumTrackWeight")),
58 for (std::vector<std::size_t>::const_iterator iter =
indices.begin(); iter !=
indices.end(); ++iter) {
59 const btag::TrackIPData &
data = ipData[*iter];
89 for (std::vector<std::size_t>::const_iterator iter =
indices.begin(); iter !=
indices.end(); ++iter) {
90 const btag::TrackIPData &
data = ipData[*iter];
140 std::pair<double, double> vertexDist2D, vertexDist3D;
141 std::pair<double, double> tracksDist2D, tracksDist3D;
144 unsigned int nVertexTracks = 0;
148 bool hasRefittedTracks =
vertex.hasRefittedTracks();
157 bool isTrackVertex = (
n == 1);
163 TrackKinematics &kin = isTrackVertex ? trackKinematics : vertexKinematics;
168 if (hasRefittedTracks) {
170 kin.add(actualTrack,
w);
186 vertexDist2D.first += tracksDist2D.first;
187 vertexDist2D.second += tracksDist2D.second;
188 vertexDist3D.first += tracksDist3D.first;
189 vertexDist3D.second += tracksDist3D.second;
190 vertexKinematics += trackKinematics;
200 vertexKinematics = trackKinematics;
220 for (
unsigned int i = 0;
i <
indices.size();
i++) {
222 const btag::TrackIPData &
data = ipData[
idx];
239 for (
unsigned int j = 0;
j <
indices.size();
j++) {
244 const btag::TrackIPData &pairTrackData = ipData[pairIdx];
246 const Track &pairTrack = *pairTrackRef;
251 trackPairV0Test[1] = pairTrackRef;
263 double trackMag =
std::sqrt(trackMom.Mag2());
331 std::pair<double, double> vertexDist2D, vertexDist3D;
332 std::pair<double, double> tracksDist2D, tracksDist3D;
335 unsigned int nVertexTracks = 0;
339 const std::vector<CandidatePtr> &
tracks =
vertex.daughterPtrVector();
346 bool isTrackVertex = (
n == 1);
352 TrackKinematics &kin = isTrackVertex ? trackKinematics : vertexKinematics;
367 vertexDist2D.first += tracksDist2D.first;
368 vertexDist2D.second += tracksDist2D.second;
369 vertexDist3D.first += tracksDist3D.first;
370 vertexDist3D.second += tracksDist3D.second;
371 vertexKinematics += trackKinematics;
381 vertexKinematics = trackKinematics;
400 const Track *trackPairV0Test[2];
401 for (
unsigned int i = 0;
i <
indices.size();
i++) {
403 const btag::TrackIPData &
data = ipData[
idx];
420 for (
unsigned int j = 0;
j <
indices.size();
j++) {
425 const btag::TrackIPData &pairTrackData = ipData[pairIdx];
427 const Track &pairTrack = *pairTrackPtr;
432 trackPairV0Test[1] = pairTrackPtr;
444 double trackMag =
std::sqrt(trackMom.Mag2());