00001 #ifndef KinematicParticleFitter_H 00002 #define KinematicParticleFitter_H 00003 00004 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicParticle.h" 00005 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicVertex.h" 00006 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicConstraint.h" 00007 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicTree.h" 00008 #include "RecoVertex/KinematicFit/interface/ParentParticleFitter.h" 00009 #include "RecoVertex/KinematicFit/interface/ChildUpdator.h" 00010 00023 class KinematicParticleFitter 00024 { 00025 public: 00026 00031 KinematicParticleFitter(); 00032 00037 KinematicParticleFitter(const ParentParticleFitter& fitter, const ChildUpdator& updator); 00038 00039 ~KinematicParticleFitter(); 00040 00052 std::vector<RefCountedKinematicTree> fit(KinematicConstraint * cs , 00053 std::vector<RefCountedKinematicTree> trees)const; 00054 00055 00062 RefCountedKinematicTree fit(KinematicConstraint * cs , 00063 RefCountedKinematicTree tree)const; 00064 private: 00065 00066 ParentParticleFitter * parentFitter; 00067 ChildUpdator * cUpdator; 00068 }; 00069 00070 #endif