CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/RecoVertex/PrimaryVertexProducer/interface/PrimaryVertexProducerAlgorithm.h

Go to the documentation of this file.
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