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 
46 public:
47 
49  const VertexUpdator<5> * vu,
51 
53 
54  std::vector<TransientVertex>
55  vertices(const std::vector<reco::TransientTrack> & tracks) const override;
56 
57  std::vector<TransientVertex>
58  vertices(const std::vector<reco::TransientTrack> & tracks,
59  const reco::BeamSpot & spot ) const override;
60 
61  std::vector<TransientVertex>
62  vertices( const std::vector<reco::TransientTrack> & tracks,
63  std::vector<reco::TransientTrack>& unused,
64  const reco::BeamSpot & spot, bool use_spot) const;
65 
68  float ptCut() const { return theFilter.ptCut(); }
69  const TrimmedTrackFilter & trackFilter() const {
70  return theFilter;
71  }
74  float vertexFitProbabilityCut() const { return theVtxFitProbCut; }
75  int maxNbOfVertices() const { return theMaxNbOfVertices; }
76 
79  void setParameters ( const edm::ParameterSet & );
80 
81  void setPtCut(float cut) { theFilter.setPtCut(cut); }
84  }
87  }
90 
94  return new ConfigurableTrimmedVertexFinder(*this);
95  }
96 
97 protected:
98 
99  virtual void resetEvent(const std::vector<reco::TransientTrack> & tracks) const {}
100 
101  virtual void analyseInputTracks(const std::vector<reco::TransientTrack> & tracks)
102  const {}
103 
104  virtual void
105  analyseClusterFinder(const std::vector<TransientVertex> & vts,
106  const std::vector<reco::TransientTrack> & remain)
107  const {}
108 
109  virtual void analyseVertexCandidates(const std::vector<TransientVertex> & vts)
110  const {}
111 
112  virtual void analyseFoundVertices(const std::vector<TransientVertex> & vts)
113  const {}
114 
115 
116 private:
117 
119 
120  // separate tracks passing the filter
121  // void separateTracks(std::vector<TransientTrack>& filtered,
122  // std::vector<TransientTrack>& unused) const;
123 
124  // find vertex candidates
125  std::vector<TransientVertex>
126  vertexCandidates(const std::vector<reco::TransientTrack> & tracks,
127  std::vector<reco::TransientTrack>& unused,
128  const reco::BeamSpot & spot, bool use_spot ) const;
129 
130  // remove bad candidates
131  std::vector<TransientVertex>
132  clean(const std::vector<TransientVertex> & candidates) const;
133 
134  //
141 
142 };
143 
144 #endif
std::vector< TransientVertex > vertices(const std::vector< reco::TransientTrack > &tracks) const override
ConfigurableTrimmedVertexFinder * clone() const override
virtual void analyseFoundVertices(const std::vector< TransientVertex > &vts) const
std::vector< TransientVertex > clean(const std::vector< TransientVertex > &candidates) const
virtual void analyseInputTracks(const std::vector< reco::TransientTrack > &tracks) const
ConfigurableTrimmedVertexFinder(const VertexFitter< 5 > *vf, const VertexUpdator< 5 > *vu, const VertexTrackCompatibilityEstimator< 5 > *ve)
std::vector< TransientVertex > vertexCandidates(const std::vector< reco::TransientTrack > &tracks, std::vector< reco::TransientTrack > &unused, const reco::BeamSpot &spot, bool use_spot) const
virtual std::vector< TransientVertex > vertices(const std::vector< reco::TransientTrack > &) const =0
void setParameters(const edm::ParameterSet &)
virtual void analyseClusterFinder(const std::vector< TransientVertex > &vts, const std::vector< reco::TransientTrack > &remain) const
double ptCut() const
const TrimmedTrackFilter & trackFilter() const
virtual void analyseVertexCandidates(const std::vector< TransientVertex > &vts) const
void setPtCut(double ptCut)
virtual void resetEvent(const std::vector< reco::TransientTrack > &tracks) const