44 init(p, M, theCovMatrix);
48 const TString&
name,
const TString&
title, TVector3*
p, Double_t M,
const TMatrixD* theCovMatrix)
50 init(p, M, theCovMatrix);
57 if (newname.Length() > 0)
58 myclone->SetName(newname);
80 if (params ==
nullptr) {
84 if (params->GetNcols() != 1 || params->GetNrows() !=
_nPar) {
85 edm::LogError(
"WrongMatrixSize") << GetName() <<
"::calc4Vec - Parameter matrix has wrong size.";
89 Double_t
X = (*params)(0, 0);
90 Double_t
Y = (*params)(1, 0);
91 Double_t
Z = (*params)(2, 0);
92 Double_t E = TMath::Sqrt(X * X + Y * Y + Z * Z +
_pini.M2());
94 TLorentzVector* vec =
new TLorentzVector(X, Y, Z, E);
102 TVector3 vec(pini->Vect());
118 _pini.SetXYZM(0., 0., 0., M);
129 _pini.SetXYZM(p->x(), p->y(), p->z(), M);
132 _u1.SetXYZ(1., 0., 0.);
133 _u2.SetXYZ(0., 1., 0.);
134 _u3.SetXYZ(0., 0., 1.);
143 TMatrixD* DerivativeMatrix =
new TMatrixD(4, 3);
144 (*DerivativeMatrix) *= 0.;
147 (*DerivativeMatrix)(0, 0) = 1.;
148 (*DerivativeMatrix)(1, 0) = 0.;
149 (*DerivativeMatrix)(2, 0) = 0.;
153 (*DerivativeMatrix)(0, 1) = 0.;
154 (*DerivativeMatrix)(1, 1) = 1.;
155 (*DerivativeMatrix)(2, 1) = 0.;
159 (*DerivativeMatrix)(0, 2) = 0.;
160 (*DerivativeMatrix)(1, 2) = 0.;
161 (*DerivativeMatrix)(2, 2) = 1.;
164 return DerivativeMatrix;
171 TVector3
vec3(vec.Vect());
174 TMatrixD* tparams =
new TMatrixD(
_nPar, 1);
175 (*tparams)(0, 0) =
vec3.x();
176 (*tparams)(1, 0) =
vec3.y();
177 (*tparams)(2, 0) =
vec3.z();
void init(TVector3 *p, Double_t M, const TMatrixD *theCovMatrix)
TLorentzVector * calc4Vec(const TMatrixD *params) override
~TFitParticleMCCart() override
void setIni4Vec(const TLorentzVector *pini) override
TMatrixD * getDerivative() override
virtual void setCovMatrix(const TMatrixD *theCovMatrix)
TAbsFitParticle * clone(const TString &newname=TString("")) const override
TMatrixD * transform(const TLorentzVector &vec) override