00001 #ifndef KinematicConstrainedVertexFitter_H 00002 #define KinematicConstrainedVertexFitter_H 00003 00004 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicTree.h" 00005 #include "RecoVertex/KinematicFitPrimitives/interface/MultiTrackKinematicConstraint.h" 00006 #include "RecoVertex/VertexTools/interface/LinearizationPointFinder.h" 00007 #include "RecoVertex/KinematicFit/interface/KinematicConstrainedVertexUpdator.h" 00008 #include "RecoVertex/KinematicFit/interface/VertexKinematicConstraint.h" 00009 #include "RecoVertex/KinematicFit/interface/ConstrainedTreeBuilder.h" 00010 00023 class KinematicConstrainedVertexFitter{ 00024 00025 public: 00026 00030 KinematicConstrainedVertexFitter(); 00031 00035 KinematicConstrainedVertexFitter(const LinearizationPointFinder& fnd); 00036 00037 ~KinematicConstrainedVertexFitter(); 00038 00045 RefCountedKinematicTree fit(vector<RefCountedKinematicParticle> part, 00046 MultiTrackKinematicConstraint * cs) const; 00047 00048 private: 00049 00050 //method to deal with simple configurable parameters: 00051 //number of iterations and stopping condition 00052 void readParameters(); 00053 float theMaxDiff; 00054 int theMaxStep; 00055 LinearizationPointFinder * finder; 00056 KinematicConstrainedVertexUpdator * updator; 00057 VertexKinematicConstraint * vCons; 00058 ConstrainedTreeBuilder * tBuilder; 00059 }; 00060 00061 #endif