63 std::map<unsigned int, Measurement1D> cachedIP;
64 for(std::vector<reco::Vertex>::const_iterator sv = secondaryVertices.begin();
65 sv != secondaryVertices.end(); ++sv) {
73 GlobalPoint ssv(sv->position().x(),sv->position().y(),sv->position().z());
77 std::vector<reco::TransientTrack> selTracks;
78 for(
unsigned int itrack = 0; itrack < selectedTracks.
size(); itrack++){
79 TrackRef ref = (selectedTracks)[itrack];
89 float w = sv->trackWeight(ref);
91 if(cachedIP.find(itrack)!=cachedIP.end()) {
95 cachedIP[itrack]=ipvp.second;
111 selTracks.push_back(tt);
115 if(w > 0.5 && isv.second.value() > ipv.
value() )
std::cout <<
" - ";
119 if(w > 0.5 && isv.second.value() <= ipv.
value() && dR <
dRCut) {
120 selTracks.push_back(tt);
125 if(w > 0.5 && isv.second.value() <= ipv.
value() && dR >=
dRCut) {
136 std::cout <<
"t : " << itrack <<
" ref " << ref.
key() <<
" w: " << w
137 <<
" svip: " << isv.second.significance() <<
" " << isv.second.value()
147 std::cout <<
" . t : " << itrack <<
" ref " << ref.
key()<<
" w: " << w
148 <<
" svip: " << isv.second.significance() <<
" " << isv.second.value()
149 <<
" pvip: " << ipv.
significance() <<
" " << ipv.
value() <<
" dr: " << dR << std::endl;
155 if(selTracks.size() >= 2)
158 singleFitVertex = theAdaptiveFitter.vertex(selTracks,ssv);
void setBeamSpot(const reco::BeamSpot &beamSpot)
std::vector< Vertex > VertexCollection
collection of Vertex objects
const Point & position() const
position
double residualX(int position) const
bool trackFilterArbitrator(const reco::TrackRef &track) const
double significance() const
const Track & track() const
math::XYZTLorentzVectorD p4(float mass=0.13957018, float minWeight=0.5) const
Returns the four momentum of the sum of the tracks, assuming the given mass for the decay products...
key_type key() const
Accessor for product key.
double residualY(int position) const
double deltaR(const Vector1 &v1, const Vector2 &v2)
size_type size() const
Size of the RefVector.
Global3DVector GlobalVector