CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/RecoVertex/GaussianSumVertexFit/src/AdaptiveGsfVertexFitter.cc

Go to the documentation of this file.
00001 #include "RecoVertex/GaussianSumVertexFit/interface/AdaptiveGsfVertexFitter.h"
00002 #include "RecoVertex/VertexTools/interface/DummyVertexSmoother.h"
00003 #include "RecoVertex/GaussianSumVertexFit/interface/GsfVertexSmoother.h"
00004 #include "RecoVertex/GaussianSumVertexFit/interface/MultiPerigeeLTSFactory.h"
00005 #include "RecoVertex/GaussianSumVertexFit/interface/GsfVertexTrackCompatibilityEstimator.h"
00006 #include "RecoVertex/VertexTools/interface/GeometricAnnealing.h"
00007 
00008 
00009 
00010 AdaptiveGsfVertexFitter::AdaptiveGsfVertexFitter(const edm::ParameterSet& pSet,
00011         const LinearizationPointFinder & linP )
00012 {
00013 
00014   bool limitComponents_ = pSet.getParameter<bool>("limitComponents");
00015 
00016   DeepCopyPointerByClone<GsfVertexMerger> theMerger;
00017 
00018   if (limitComponents_) {
00019     theMerger = new GsfVertexMerger(pSet.getParameter<edm::ParameterSet>("GsfMergerParameters"));
00020   }
00021 
00022   theFitter = new AdaptiveVertexFitter(
00023       GeometricAnnealing(),
00024       linP,
00025       GsfVertexUpdator(limitComponents_, &*theMerger),
00026       GsfVertexTrackCompatibilityEstimator(),
00027       GsfVertexSmoother(limitComponents_, &*theMerger),
00028       MultiPerigeeLTSFactory() );
00029   theFitter->gsfIntermediarySmoothing(true);
00030 
00042   theFitter->setParameters ( pSet.getParameter<double>("maxshift"),
00043                     pSet.getParameter<double>("maxlpshift"),
00044                     pSet.getParameter<int>("maxstep"),
00045                     pSet.getParameter<double>("weightthreshold") );
00046 
00047 }
00048 
00049 AdaptiveGsfVertexFitter::AdaptiveGsfVertexFitter(const AdaptiveGsfVertexFitter & original)
00050 {
00051   theFitter = original.theFitter->clone();
00052 }
00053 
00054 AdaptiveGsfVertexFitter::~AdaptiveGsfVertexFitter()
00055 {
00056   delete theFitter;
00057 }