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