CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 #ifndef VertexKinematicConstraintT_H
00002 #define VertexKinematicConstraintT_H
00003 
00004 #include "RecoVertex/KinematicFitPrimitives/interface/MultiTrackKinematicConstraintT.h"
00005 #include "DataFormats/CLHEP/interface/AlgebraicObjects.h"
00006 
00014 class VertexKinematicConstraintT: public MultiTrackKinematicConstraintT<2,4>
00015 {
00016 
00017 private:
00018 
00019   typedef  MultiTrackKinematicConstraintT<2,4> super;
00020 
00021   // to be optimized
00022 
00023   double a_i[2];
00024   double novera[2], n[2],m[2],k[2], delta[2]; 
00025   GlobalVector mom[2];
00026   GlobalVector dpos[2];
00027   
00028 
00029 public:
00030 
00031 VertexKinematicConstraintT();
00032  
00033 virtual ~VertexKinematicConstraintT();
00034 
00035   // initialize the constraint so it can precompute common qualtities to the three next call
00036   virtual void init(const std::vector<KinematicState>& states,
00037                     const GlobalPoint& point,  const GlobalVector& mf);
00038 
00039 
00043 virtual int numberOfEquations() const;
00044  
00045 virtual VertexKinematicConstraintT * clone()const
00046 {return new VertexKinematicConstraintT(*this);}
00047 
00048 
00049 private:
00055  virtual void fillValue() const;
00056 
00062  virtual void fillParametersDerivative() const;
00063 
00069  virtual void fillPositionDerivative() const;
00070 
00071 
00072 private:
00073 
00074 };
00075 #endif