00001 #ifndef TFitParticleSpher_hh 00002 #define TFitParticleSpher_hh 00003 00004 00005 #include "PhysicsTools/KinFitter/interface/TAbsFitParticle.h" 00006 #include "TLorentzVector.h" 00007 #include "TMatrixD.h" 00008 00009 00010 class TFitParticleSpher: public TAbsFitParticle { 00011 00012 public : 00013 00014 TFitParticleSpher(); 00015 TFitParticleSpher( const TFitParticleSpher& fitParticle ); 00016 TFitParticleSpher(TLorentzVector* pini, const TMatrixD* theCovMatrix); 00017 TFitParticleSpher(const TString &name, const TString &title, 00018 TLorentzVector* pini, 00019 const TMatrixD* theCovMatrix); 00020 virtual ~TFitParticleSpher(); 00021 virtual TAbsFitParticle* clone( TString newname = "" ) const; 00022 00023 // returns derivative dP/dy with P=(p,E) and y=(r, theta, phi, ...) 00024 // the free parameters of the fit. The columns of the matrix contain 00025 // (dP/dr, dP/dtheta, ...). 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 ClassDef(TFitParticleSpher, 1) // Particle with spherical 4vector parametrization and free mass 00036 00037 private: 00038 00039 }; 00040 00041 #endif