![]() |
![]() |
00001 #ifndef ConstrainedTreeBuilder_H 00002 #define ConstrainedTreeBuilder_H 00003 00004 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicTree.h" 00005 #include "RecoVertex/KinematicFitPrimitives/interface/VirtualKinematicParticleFactory.h" 00006 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicVertexFactory.h" 00007 00015 class ConstrainedTreeBuilder 00016 { 00017 00018 public: 00019 00020 ConstrainedTreeBuilder(); 00021 00022 ~ConstrainedTreeBuilder(); 00023 00030 RefCountedKinematicTree buildTree(vector<RefCountedKinematicParticle> prt, 00031 RefCountedKinematicVertex vtx,const AlgebraicMatrix& fCov) const; 00032 00033 private: 00034 //Metod reconstructing the full covariance matrix of 00035 //resulting particle. Matrix is returned in two parts: 00036 //first component of vector is p_p covariance; 00037 //the second one is p_x covariance 00038 AlgebraicMatrix momentumPart(vector<RefCountedKinematicParticle> rPart, 00039 const AlgebraicVector& newPar, 00040 const AlgebraicMatrix& fitCov)const; 00041 00042 VirtualKinematicParticleFactory * pFactory; 00043 KinematicVertexFactory * vFactory; 00044 }; 00045 #endif