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