Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:10

0001 #ifndef KinematicParticleVertexFitter_H
0002 #define KinematicParticleVertexFitter_H
0003 
0004 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicTree.h"
0005 #include "RecoVertex/VertexTools/interface/LinearizationPointFinder.h"
0006 #include "RecoVertex/VertexTools/interface/VertexTrackFactory.h"
0007 #include "RecoVertex/KinematicFit/interface/InputSort.h"
0008 #include "RecoVertex/VertexPrimitives/interface/VertexFitter.h"
0009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0010 
0011 /**
0012  * Class creating a kinematic particle out
0013  * of set of daughter particles. Daughter
0014  * particles are supposed to come from a 
0015  * common vertex. Arbitrary VerexFitter
0016  * can be used to fit the common vertex 
0017  * and refit the daughter particles with the
0018  * knowledge of vertex. The Kinematic Vertex is also
0019  * created and the resulting KinematicParticle points
0020  * on it.
0021  * 
0022  * Kirill Prokofiev, December 2002
0023  */
0024 
0025 class KinematicParticleVertexFitter {
0026 public:
0027   /**
0028  * Constructor with LMSLinearizationPointFinder used as default.
0029  *
0030  */
0031   KinematicParticleVertexFitter();
0032 
0033   KinematicParticleVertexFitter(const edm::ParameterSet &pSet);
0034 
0035   /*
0036  * Constructor with the LinearizationPointFinder
0037  * Linearization point finder should have an 
0038  * ability to find point out of set of FreeTrajectoryStates
0039  * LMSLinearizationPointFinder is used as default.
0040  */
0041   //  KinematicParticleVertexFitter(const LinearizationPointFinder& finder);
0042 
0043   ~KinematicParticleVertexFitter();
0044 
0045   /**
0046  * Fit method taking set of particles, fitting them to the
0047  * common vertex and creating tree out of them.
0048  * Input particles can belong to kinmaticTrees.
0049  * In such a case it should be TOP particle of
0050  * corresponding tree.
0051  */
0052   RefCountedKinematicTree fit(const std::vector<RefCountedKinematicParticle> &particles) const;
0053 
0054 private:
0055   edm::ParameterSet defaultParameters() const;
0056   void setup(const edm::ParameterSet &pSet);
0057 
0058   VertexFitter<6> *fitter;
0059   LinearizationPointFinder *pointFinder;
0060   VertexTrackFactory<6> *vFactory;
0061 };
0062 #endif