Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:23:35

0001 #ifndef TFitParticleMCCart_hh
0002 #define TFitParticleMCCart_hh
0003 
0004 #include "TMatrixD.h"
0005 #include "PhysicsTools/KinFitter/interface/TAbsFitParticle.h"
0006 #include "TLorentzVector.h"
0007 #include "TVector3.h"
0008 
0009 class TFitParticleMCCart : public TAbsFitParticle {
0010 public:
0011   TFitParticleMCCart();
0012   TFitParticleMCCart(const TFitParticleMCCart& fitParticle);
0013   TFitParticleMCCart(TVector3* p, Double_t M, const TMatrixD* theCovMatrix);
0014   TFitParticleMCCart(const TString& name, const TString& title, TVector3* p, Double_t M, const TMatrixD* theCovMatrix);
0015   ~TFitParticleMCCart() override;
0016   TAbsFitParticle* clone(const TString& newname = TString("")) const override;
0017 
0018   // returns derivative dP/dy with P=(p,E) and y=(r, theta, phi, ...)
0019   // the free parameters of the fit. The columns of the matrix contain
0020   // (dP/dr, dP/dtheta, ...).
0021   TMatrixD* getDerivative() override;
0022   TMatrixD* transform(const TLorentzVector& vec) override;
0023   void setIni4Vec(const TLorentzVector* pini) override;
0024   void setIni4Vec(const TVector3* p, Double_t M);
0025   TLorentzVector* calc4Vec(const TMatrixD* params) override;
0026 
0027 protected:
0028   void init(TVector3* p, Double_t M, const TMatrixD* theCovMatrix);
0029 
0030 private:
0031   ClassDefOverride(TFitParticleMCCart, 0)
0032 };
0033 
0034 #endif