CMS 3D CMS Logo

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

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