Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:28:13

0001 #ifndef FinalTreeBuilder_H
0002 #define FinalTreeBuilder_H
0003 
0004 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicTree.h"
0005 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicVertexFactory.h"
0006 #include "RecoVertex/KinematicFitPrimitives/interface/VirtualKinematicParticleFactory.h"
0007 #include "RecoVertex/VertexPrimitives/interface/CachingVertex.h"
0008 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicRefittedTrackState.h"
0009 #include "RecoVertex/KinematicFitPrimitives/interface/Matrices.h"
0010 
0011 /**
0012  * Class building  a resulting output
0013  * tree out of the information provided
0014  * by KinematicParticleVertexFitter.
0015  */
0016 class FinalTreeBuilder {
0017 public:
0018   FinalTreeBuilder();
0019 
0020   ~FinalTreeBuilder();
0021 
0022   RefCountedKinematicTree buildTree(const CachingVertex<6>& vtx,
0023                                     const std::vector<RefCountedKinematicParticle>& input) const;
0024 
0025 private:
0026   typedef ReferenceCountingPointer<VertexTrack<6> > RefCountedVertexTrack;
0027   typedef ReferenceCountingPointer<LinearizedTrackState<6> > RefCountedLinearizedTrackState;
0028   typedef ReferenceCountingPointer<RefittedTrackState<6> > RefCountedRefittedTrackState;
0029 
0030   //internal calculation and helper methods
0031   AlgebraicMatrix momentumPart(const CachingVertex<6>& vtx, const AlgebraicVector7& par) const;
0032 
0033   KinematicVertexFactory* kvFactory;
0034   VirtualKinematicParticleFactory* pFactory;
0035 };
0036 
0037 #endif