File indexing completed on 2024-04-06 12:29:18
0001 #ifndef _RecoVertex_TrimmedVertexFinder_H_
0002 #define _RecoVertex_TrimmedVertexFinder_H_
0003
0004 #include "RecoVertex/VertexPrimitives/interface/TransientVertex.h"
0005 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0006 #include "RecoVertex/VertexPrimitives/interface/CachingVertex.h"
0007 #include "RecoVertex/VertexPrimitives/interface/VertexFitter.h"
0008 #include "RecoVertex/VertexPrimitives/interface/VertexUpdator.h"
0009 #include "RecoVertex/VertexPrimitives/interface/VertexTrackCompatibilityEstimator.h"
0010 #include <vector>
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 class TrimmedVertexFinder {
0029 public:
0030 typedef ReferenceCountingPointer<VertexTrack<5> > RefCountedVertexTrack;
0031 typedef ReferenceCountingPointer<LinearizedTrackState<5> > RefCountedLinearizedTrackState;
0032
0033 TrimmedVertexFinder(const VertexFitter<5>* vf,
0034 const VertexUpdator<5>* vu,
0035 const VertexTrackCompatibilityEstimator<5>* ve);
0036
0037
0038
0039 TrimmedVertexFinder(const TrimmedVertexFinder& other);
0040 ~TrimmedVertexFinder();
0041
0042
0043
0044
0045 std::vector<TransientVertex> vertices(std::vector<reco::TransientTrack>& remain) const;
0046
0047
0048
0049
0050
0051 std::vector<TransientVertex> vertices(std::vector<reco::TransientTrack>& remain,
0052 const reco::BeamSpot& s,
0053 bool use_beamspot = true) const;
0054
0055
0056
0057 float trackCompatibilityCut() const { return theMinProb; }
0058
0059
0060
0061 void setTrackCompatibilityCut(float cut) { theMinProb = cut; }
0062
0063
0064
0065 TrimmedVertexFinder* clone() const { return new TrimmedVertexFinder(*this); }
0066
0067 private:
0068
0069
0070
0071 std::vector<RefCountedVertexTrack>::iterator theWorst(const CachingVertex<5>& vtx,
0072 std::vector<RefCountedVertexTrack>& vtxTracks,
0073 float cut) const;
0074
0075 VertexFitter<5>* theFitter;
0076 VertexUpdator<5>* theUpdator;
0077 VertexTrackCompatibilityEstimator<5>* theEstimator;
0078 float theMinProb;
0079 };
0080
0081 #endif