CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/RecoVertex/KinematicFit/interface/ConstrainedTreeBuilder.h

Go to the documentation of this file.
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 
00029  RefCountedKinematicTree buildTree(const std::vector<RefCountedKinematicParticle> & initialParticles, 
00030                          const std::vector<KinematicState> & finalStates,
00031                          const RefCountedKinematicVertex vtx, const AlgebraicMatrix& fCov) const;
00032 
00033 private:
00034 
00035   RefCountedKinematicTree buildTree(const RefCountedKinematicParticle virtualParticle, 
00036         const RefCountedKinematicVertex vtx, const std::vector<RefCountedKinematicParticle> & particles) const;
00037 
00041  AlgebraicMatrix covarianceMatrix(const std::vector<RefCountedKinematicParticle> &rPart, 
00042                                        const AlgebraicVector7& newPar,
00043                                        const AlgebraicMatrix& fitCov)const;
00044                                        
00045  VirtualKinematicParticleFactory * pFactory;                                   
00046  KinematicVertexFactory * vFactory;
00047 };
00048 #endif