00001 #ifndef RecoPixelVertexing_DivisiveVertexFinder_h 00002 #define RecoPixelVertexing_DivisiveVertexFinder_h 00003 00026 #include <vector> 00027 #include "DataFormats/VertexReco/interface/Vertex.h" 00028 #include "DataFormats/VertexReco/interface/VertexFwd.h" 00029 #include "DataFormats/TrackReco/interface/Track.h" 00030 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00031 //#include "CommonTools/Clustering1D/interface/DivisiveClusterizer1D.h" 00032 #include "RecoPixelVertexing/PixelVertexFinding/interface/DivisiveClusterizer1D.h" 00033 00034 class DivisiveVertexFinder { 00035 public: 00036 DivisiveVertexFinder(double zOffset=5.0, int ntrkMin=5, bool useError=true, 00037 double zSeparation=0.05, bool wtAverage=true, int verbosity=0); 00038 ~DivisiveVertexFinder(); 00039 00041 bool findVertexes(const reco::TrackRefVector &trks, // input 00042 reco::VertexCollection &vertexes); // output 00043 bool findVertexesAlt(const reco::TrackRefVector &trks, // input 00044 reco::VertexCollection &vertexes); // output 00045 private: 00047 double zOffset_, zSeparation_; 00048 int ntrkMin_; 00049 bool useError_, wtAverage_; 00050 00052 pixeltemp::DivisiveClusterizer1D< reco::Track > divmeth_; 00053 // DivisiveClusterizer1D< reco::Track > divmeth_; 00054 00055 // How loud should I be? 00056 int verbose_; 00057 00058 }; 00059 #endif