Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef KinematicConstrainedVertexUpdator_H
0002 #define KinematicConstrainedVertexUpdator_H
0003 
0004 #include "RecoVertex/KinematicFitPrimitives/interface/MultiTrackKinematicConstraint.h"
0005 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicVertexFactory.h"
0006 #include "RecoVertex/KinematicFit/interface/VertexKinematicConstraint.h"
0007 
0008 /**
0009  * Class caching the math part for
0010  * KinematicConstrainedVertexFitter
0011  */
0012 
0013 class KinematicConstrainedVertexUpdator {
0014 public:
0015   /**
0016  * Default constructor and destructor
0017  */
0018   KinematicConstrainedVertexUpdator();
0019 
0020   ~KinematicConstrainedVertexUpdator();
0021 
0022   /**
0023  * Method updating the states. Takes a vector of full parameters:
0024  * (x,y,z,particle_1,...,particle_n), corresponding linearization 
0025  * point: vector of states and GlobalPoint, 
0026  * and constraint to be applied during the vertex fit.
0027  * Returns refitted vector of 7n+3 parameters and corresponding
0028  * covariance matrix, where n - number of tracks.
0029  */
0030   std::pair<std::pair<std::vector<KinematicState>, AlgebraicMatrix>, RefCountedKinematicVertex> update(
0031       const AlgebraicVector& inState,
0032       const AlgebraicMatrix& inCov,
0033       const std::vector<KinematicState>& lStates,
0034       const GlobalPoint& lPoint,
0035       MultiTrackKinematicConstraint* cs) const;
0036 
0037 private:
0038   KinematicVertexFactory* vFactory;
0039   VertexKinematicConstraint* vConstraint;
0040 };
0041 #endif