File indexing completed on 2024-04-06 12:29:10
0001 #ifndef ConstrainedTreeBuilder_H
0002 #define ConstrainedTreeBuilder_H
0003
0004 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicTree.h"
0005 #include "RecoVertex/KinematicFitPrimitives/interface/VirtualKinematicParticleFactory.h"
0006 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicVertexFactory.h"
0007
0008
0009
0010
0011
0012
0013
0014
0015 class ConstrainedTreeBuilder {
0016 public:
0017 ConstrainedTreeBuilder();
0018
0019 ~ConstrainedTreeBuilder();
0020
0021
0022
0023
0024
0025
0026 RefCountedKinematicTree buildTree(const std::vector<RefCountedKinematicParticle>& initialParticles,
0027 const std::vector<KinematicState>& finalStates,
0028 const RefCountedKinematicVertex vtx,
0029 const AlgebraicMatrix& fCov) const;
0030
0031 private:
0032 RefCountedKinematicTree buildTree(const RefCountedKinematicParticle virtualParticle,
0033 const RefCountedKinematicVertex vtx,
0034 const std::vector<RefCountedKinematicParticle>& particles) const;
0035
0036
0037
0038
0039 AlgebraicMatrix covarianceMatrix(const std::vector<RefCountedKinematicParticle>& rPart,
0040 const AlgebraicVector7& newPar,
0041 const AlgebraicMatrix& fitCov) const;
0042
0043 VirtualKinematicParticleFactory* pFactory;
0044 KinematicVertexFactory* vFactory;
0045 };
0046 #endif