CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/PhysicsTools/KinFitter/interface/TFitConstraintEp.h

Go to the documentation of this file.
00001 #ifndef TFitConstraintEp_hh
00002 #define TFitConstraintEp_hh
00003 
00004 #include "PhysicsTools/KinFitter/interface/TAbsFitConstraint.h"
00005 #include "PhysicsTools/KinFitter/interface/TAbsFitParticle.h"
00006 #include "TMatrixD.h"
00007 #include <vector>
00008 
00009 class TFitConstraintEp: public TAbsFitConstraint {
00010 
00011 public :
00012 
00013   enum component {
00014     pX,
00015     pY,
00016     pZ,
00017     E
00018   };
00019 
00020   TFitConstraintEp( );
00021 
00022   TFitConstraintEp(  std::vector<TAbsFitParticle*>* particles, 
00023                      TFitConstraintEp::component thecomponent, 
00024                      Double_t constraint = 0.);
00025 
00026   TFitConstraintEp(  const TString &name, const TString &title,
00027                      std::vector<TAbsFitParticle*>* particles, 
00028                      TFitConstraintEp::component thecomponent, 
00029                      Double_t constraint = 0.);
00030   virtual ~TFitConstraintEp();
00031 
00032   void addParticle( TAbsFitParticle* particle );
00033   void addParticles( TAbsFitParticle* p1, TAbsFitParticle* p2 = 0, TAbsFitParticle* p3 = 0, TAbsFitParticle* p4 = 0,
00034                      TAbsFitParticle* p5 = 0, TAbsFitParticle* p6 = 0, TAbsFitParticle* p7 = 0, TAbsFitParticle* p8 = 0,
00035                      TAbsFitParticle* p9 = 0, TAbsFitParticle* p10 = 0);
00036     
00037   // returns derivative df/dP with P=(p,E) and f the constraint f=0.
00038   // The matrix contains one row (df/dp, df/dE).
00039   virtual TMatrixD* getDerivative( TAbsFitParticle* particle );
00040   virtual Double_t getInitValue();
00041   virtual Double_t getCurrentValue();
00042 
00043   virtual TString getInfoString();
00044   virtual void print(); 
00045  
00046 protected :
00047 
00048 
00049 private:
00050   std::vector<TAbsFitParticle*> _particles;    // Vector containing constrained particles
00051   Double_t _constraint;                   // Value of constraint
00052   TFitConstraintEp::component _component; // 4vector component to be constrained
00053 
00054 };
00055 
00056 #endif