00001 #ifndef PrimaryVertexProducerAlgorithm_H 00002 #define PrimaryVertexProducerAlgorithm_H 00003 // -*- C++ -*- 00004 // 00005 // Package: PrimaryVertexProducerAlgorithm 00006 // Class: PrimaryVertexProducerAlgorithm 00007 // 00015 // 00016 // Original Author: Pascal Vanlaer 00017 // Created: Tue Feb 28 11:06:34 CET 2006 00018 // $Id: PrimaryVertexProducerAlgorithm.h,v 1.15 2010/08/18 13:20:24 werdmann Exp $ 00019 // 00020 // 00021 00022 // user include files 00023 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00024 #include "RecoVertex/VertexPrimitives/interface/VertexReconstructor.h" 00025 #include "RecoVertex/PrimaryVertexProducer/interface/TrackFilterForPVFindingBase.h" 00026 #include "RecoVertex/PrimaryVertexProducer/interface/TrackClusterizerInZ.h" 00027 #include "RecoVertex/TrimmedKalmanVertexFinder/interface/KalmanTrimmedVertexFinder.h" 00028 #include "RecoVertex/VertexTools/interface/VertexCompatibleWithBeam.h" 00029 #include "DataFormats/BeamSpot/interface/BeamSpot.h" 00030 00031 // 00032 // class declaration 00033 // 00034 00035 class PrimaryVertexProducerAlgorithm : public VertexReconstructor { 00036 public: 00037 00038 explicit PrimaryVertexProducerAlgorithm(const edm::ParameterSet&); 00039 ~PrimaryVertexProducerAlgorithm(); 00040 00041 00044 // obsolete method 00045 virtual std::vector<TransientVertex> 00046 vertices(const std::vector<reco::TransientTrack> & tracks) const; 00047 00048 virtual std::vector<TransientVertex> 00049 vertices(const std::vector<reco::TransientTrack> & tracks, 00050 const reco::BeamSpot & beamSpot) const; 00051 00054 virtual PrimaryVertexProducerAlgorithm * clone() const { 00055 return new PrimaryVertexProducerAlgorithm(*this); 00056 } 00057 00058 private: 00059 // ----------member data --------------------------- 00060 // vtx finding algorithm components 00061 edm::ParameterSet theConfig; 00062 TrackFilterForPVFindingBase* theTrackFilter; 00063 TrackClusterizerInZ* theTrackClusterizer; 00064 KalmanTrimmedVertexFinder theFinder; 00065 VertexCompatibleWithBeam theVertexSelector; 00066 00067 bool fVerbose; 00068 bool fUseBeamConstraint; 00069 double fMinNdof; 00070 VertexFitter<5> *theFitter; 00071 bool fapply_finder; 00072 bool fFailsafe; 00073 00074 }; 00075 #endif 00076