00001 #ifndef TFitParticleMCPInvSpher_hh 00002 #define TFitParticleMCPInvSpher_hh 00003 00004 #include "TMatrixD.h" 00005 #include "PhysicsTools/KinFitter/interface/TAbsFitParticle.h" 00006 #include "TLorentzVector.h" 00007 #include "TVector3.h" 00008 00009 class TFitParticleMCPInvSpher: public TAbsFitParticle { 00010 00011 public : 00012 00013 TFitParticleMCPInvSpher(); 00014 TFitParticleMCPInvSpher( const TFitParticleMCPInvSpher& fitParticle ); 00015 TFitParticleMCPInvSpher(TVector3* p, Double_t M, const TMatrixD* theCovMatrix); 00016 TFitParticleMCPInvSpher(const TString &name, const TString &title, 00017 TVector3* p, Double_t M, const TMatrixD* theCovMatrix); 00018 virtual ~TFitParticleMCPInvSpher(); 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 void setIni4Vec(const TVector3* p, Double_t M); 00028 virtual TLorentzVector* calc4Vec( const TMatrixD* params ); 00029 00030 protected : 00031 00032 void init(TVector3* p, Double_t M, const TMatrixD* theCovMatrix); 00033 00034 00035 private: 00036 }; 00037 00038 #endif