00001 #ifndef TFitParticleEScaledMomDev_hh 00002 #define TFitParticleEScaledMomDev_hh 00003 00004 #include "PhysicsTools/KinFitter/interface/TAbsFitParticle.h" 00005 #include "TLorentzVector.h" 00006 #include "TMatrixD.h" 00007 00008 00009 class TFitParticleEScaledMomDev: public TAbsFitParticle { 00010 00011 public : 00012 00013 TFitParticleEScaledMomDev(); 00014 TFitParticleEScaledMomDev( const TFitParticleEScaledMomDev& fitParticle ); 00015 TFitParticleEScaledMomDev(TLorentzVector* pini, const TMatrixD* theCovMatrix); 00016 TFitParticleEScaledMomDev(const TString &name, const TString &title, 00017 TLorentzVector* pini, const TMatrixD* theCovMatrix); 00018 virtual ~TFitParticleEScaledMomDev(); 00019 virtual TAbsFitParticle* clone( TString newname = "" ) const; 00020 00021 // returns derivative dP/dy with P=(p,E) and y=(r, theta, phi, ...) 00022 // the free parameters of the fit. The columns of the matrix contain 00023 // (dP/dr, dP/dtheta, ...). 00024 virtual TMatrixD* getDerivative(); 00025 virtual TMatrixD* transform(const TLorentzVector& vec); 00026 virtual void setIni4Vec(const TLorentzVector* pini); 00027 virtual TLorentzVector* calc4Vec( const TMatrixD* params ); 00028 00029 protected : 00030 00031 void init(TLorentzVector* pini, const TMatrixD* theCovMatrix); 00032 00033 }; 00034 00035 #endif