CMS 3D CMS Logo

ConfigurableTrimmedVertexFinder.h
Go to the documentation of this file.
1 #ifndef _ConfigurableTrimmedVertexFinder_H_
2 #define _ConfigurableTrimmedVertexFinder_H_
3 
8 #include <vector>
9 
45 public:
47  const VertexUpdator<5>* vu,
49 
51 
52  std::vector<TransientVertex> vertices(const std::vector<reco::TransientTrack>& tracks) const override;
53 
54  std::vector<TransientVertex> vertices(const std::vector<reco::TransientTrack>& tracks,
55  const reco::BeamSpot& spot) const override;
56 
57  std::vector<TransientVertex> vertices(const std::vector<reco::TransientTrack>& tracks,
58  std::vector<reco::TransientTrack>& unused,
59  const reco::BeamSpot& spot,
60  bool use_spot) const;
61 
64  float ptCut() const { return theFilter.ptCut(); }
65  const TrimmedTrackFilter& trackFilter() const { return theFilter; }
68  float vertexFitProbabilityCut() const { return theVtxFitProbCut; }
69  int maxNbOfVertices() const { return theMaxNbOfVertices; }
70 
73  void setParameters(const edm::ParameterSet&);
74 
75  void setPtCut(float cut) { theFilter.setPtCut(cut); }
80 
84 
85 protected:
86  virtual void resetEvent(const std::vector<reco::TransientTrack>& tracks) const {}
87 
88  virtual void analyseInputTracks(const std::vector<reco::TransientTrack>& tracks) const {}
89 
90  virtual void analyseClusterFinder(const std::vector<TransientVertex>& vts,
91  const std::vector<reco::TransientTrack>& remain) const {}
92 
93  virtual void analyseVertexCandidates(const std::vector<TransientVertex>& vts) const {}
94 
95  virtual void analyseFoundVertices(const std::vector<TransientVertex>& vts) const {}
96 
97 private:
99 
100  // separate tracks passing the filter
101  // void separateTracks(std::vector<TransientTrack>& filtered,
102  // std::vector<TransientTrack>& unused) const;
103 
104  // find vertex candidates
105  std::vector<TransientVertex> vertexCandidates(const std::vector<reco::TransientTrack>& tracks,
106  std::vector<reco::TransientTrack>& unused,
107  const reco::BeamSpot& spot,
108  bool use_spot) const;
109 
110  // remove bad candidates
111  std::vector<TransientVertex> clean(const std::vector<TransientVertex>& candidates) const;
112 
113  //
120 };
121 
122 #endif
std::vector< TransientVertex > clean(const std::vector< TransientVertex > &candidates) const
virtual void analyseFoundVertices(const std::vector< TransientVertex > &vts) const
virtual std::vector< TransientVertex > vertices(const std::vector< reco::TransientTrack > &) const =0
std::vector< TransientVertex > vertices(const std::vector< reco::TransientTrack > &tracks) const override
virtual void analyseVertexCandidates(const std::vector< TransientVertex > &vts) const
std::vector< TransientVertex > vertexCandidates(const std::vector< reco::TransientTrack > &tracks, std::vector< reco::TransientTrack > &unused, const reco::BeamSpot &spot, bool use_spot) const
ConfigurableTrimmedVertexFinder(const VertexFitter< 5 > *vf, const VertexUpdator< 5 > *vu, const VertexTrackCompatibilityEstimator< 5 > *ve)
double ptCut() const
auto const & tracks
cannot be loose
virtual void analyseInputTracks(const std::vector< reco::TransientTrack > &tracks) const
void setParameters(const edm::ParameterSet &)
ConfigurableTrimmedVertexFinder * clone() const override
const TrimmedTrackFilter & trackFilter() const
virtual void analyseClusterFinder(const std::vector< TransientVertex > &vts, const std::vector< reco::TransientTrack > &remain) const
void setPtCut(double ptCut)
virtual void resetEvent(const std::vector< reco::TransientTrack > &tracks) const