54 init(pini, theCovMatrix);
58 TLorentzVector* pini,
const TMatrixD* theCovMatrix)
61 init(pini, theCovMatrix);
68 if ( newname.Length() > 0 ) myclone->SetName(newname);
99 if ( params->GetNcols() != 1 || params->GetNrows() !=
_nPar ) {
101 << GetName() <<
"::calc4Vec - Parameter matrix has wrong size.";
105 Double_t
X = (*params)(0,0);
106 Double_t
Y = (*params)(1,0);
107 Double_t
Z = (*params)(2,0);
108 Double_t E = (*params)(3,0);
110 TLorentzVector* vec =
new TLorentzVector( X, Y, Z, E );
121 _u1.SetXYZ(0., 0., 0.);
122 _u3.SetXYZ(0., 0., 0.);
123 _u2.SetXYZ(0., 0., 0.);
124 _pini.SetXYZT(0., 0., 0., 0.);
141 _u1.SetXYZ( 1., 0., 0. );
142 _u2.SetXYZ( 0., 1., 0. );
143 _u3.SetXYZ( 0., 0., 1. );
162 TMatrixD* DerivativeMatrix =
new TMatrixD(4,4);
163 (*DerivativeMatrix) *= 0.;
166 (*DerivativeMatrix)(0,0)=1.;
167 (*DerivativeMatrix)(1,0)=0.;
168 (*DerivativeMatrix)(2,0)=0.;
169 (*DerivativeMatrix)(3,0)=0.;
172 (*DerivativeMatrix)(0,1)=0;
173 (*DerivativeMatrix)(1,1)=1;
174 (*DerivativeMatrix)(2,1)=0;
175 (*DerivativeMatrix)(3,1)=0.;
178 (*DerivativeMatrix)(0,2)=0.;
179 (*DerivativeMatrix)(1,2)=0.;
180 (*DerivativeMatrix)(2,2)=1.;
181 (*DerivativeMatrix)(3,2)=0.;
184 (*DerivativeMatrix)(0,3)=0.;
185 (*DerivativeMatrix)(1,3)=0.;
186 (*DerivativeMatrix)(2,3)=0.;
187 (*DerivativeMatrix)(3,3)=1.;
189 return DerivativeMatrix;
196 TMatrixD* tparams =
new TMatrixD(
_nPar, 1 );
197 (*tparams)(0,0) = vec.X();
198 (*tparams)(1,0) = vec.Y();
199 (*tparams)(2,0) = vec.Z();
200 (*tparams)(3,0) = vec.E();
virtual void setIni4Vec(const TLorentzVector *pini)
virtual ~TFitParticleECart()
virtual TLorentzVector * calc4Vec(const TMatrixD *params)
virtual void setCovMatrix(const TMatrixD *theCovMatrix)
virtual TMatrixD * getDerivative()
void init(TLorentzVector *pini, const TMatrixD *theCovMatrix)
virtual TAbsFitParticle * clone(const TString &newname=TString("")) const
virtual TMatrixD * transform(const TLorentzVector &vec)