55 init(pini, theCovMatrix);
59 TLorentzVector* pini,
const TMatrixD* theCovMatrix)
62 init(pini, theCovMatrix);
69 if ( newname.Length() > 0 ) myclone->SetName(newname);
100 if ( params->GetNcols() != 1 || params->GetNrows() !=
_nPar ) {
102 << GetName() <<
"::calc4Vec - Parameter matrix has wrong size.";
106 Double_t
X = (*params)(0,0);
107 Double_t
Y = (*params)(1,0);
108 Double_t
Z = (*params)(2,0);
109 Double_t E = TMath::Sqrt( X*X + Y*Y + Z*Z + (*params)(3,0)*(*params)(3,0)*
_pini.M2() );
111 TLorentzVector* vec =
new TLorentzVector( X, Y, Z, E );
122 _u1.SetXYZ(0., 0., 0.);
123 _u3.SetXYZ(0., 0., 0.);
124 _u2.SetXYZ(0., 0., 0.);
125 _pini.SetXYZT(0., 0., 0., 0.);
145 _u1.SetXYZ( 1., 0., 0. );
146 _u2.SetXYZ( 0., 1., 0. );
147 _u3.SetXYZ( 0., 0., 1. );
166 TMatrixD* DerivativeMatrix =
new TMatrixD(4,4);
167 (*DerivativeMatrix) *= 0.;
170 (*DerivativeMatrix)(0,0)=1.;
171 (*DerivativeMatrix)(1,0)=0.;
172 (*DerivativeMatrix)(2,0)=0.;
173 (*DerivativeMatrix)(3,0)=0.;
176 (*DerivativeMatrix)(0,1)=0;
177 (*DerivativeMatrix)(1,1)=1;
178 (*DerivativeMatrix)(2,1)=0;
179 (*DerivativeMatrix)(3,1)=0.;
182 (*DerivativeMatrix)(0,2)=0.;
183 (*DerivativeMatrix)(1,2)=0.;
184 (*DerivativeMatrix)(2,2)=1.;
185 (*DerivativeMatrix)(3,2)=0.;
188 (*DerivativeMatrix)(0,3)=0.;
189 (*DerivativeMatrix)(1,3)=0.;
190 (*DerivativeMatrix)(2,3)=0.;
193 return DerivativeMatrix;
200 TMatrixD* tparams =
new TMatrixD(
_nPar, 1 );
201 (*tparams)(0,0) = vec.X();
202 (*tparams)(1,0) = vec.Y();
203 (*tparams)(2,0) = vec.Z();
204 (*tparams)(3,0) = vec.M()/
_pini.M();
virtual ~TFitParticleCart()
virtual TAbsFitParticle * clone(const TString &newname=TString("")) const
virtual void setCovMatrix(const TMatrixD *theCovMatrix)
virtual void setIni4Vec(const TLorentzVector *pini)
virtual TLorentzVector * calc4Vec(const TMatrixD *params)
virtual TMatrixD * transform(const TLorentzVector &vec)
virtual TMatrixD * getDerivative()
void init(TLorentzVector *pini, const TMatrixD *theCovMatrix)