37 init(
nullptr, 0.,
nullptr);
62 init(p, M, theCovMatrix);
66 TVector3*
p, Double_t M,
const TMatrixD* theCovMatrix)
69 init(p, M, theCovMatrix);
76 if ( newname.Length() > 0 ) myclone->SetName(newname);
110 if (params ==
nullptr) {
114 if ( params->GetNcols() != 1 || params->GetNrows() !=
_nPar ) {
116 << GetName() <<
"::calc4Vec - Parameter matrix has wrong size.";
120 Double_t
X =
_pini.P() * (*params)(0,0) *
_u1.X()+
121 (*params)(1,0) *
_u2.X()+
122 (*params)(2,0) *
_u3.X() ;
123 Double_t
Y =
_pini.P() * (*params)(0,0) *
_u1.Y()+
124 (*params)(1,0) *
_u2.Y()+
125 (*params)(2,0) *
_u3.Y() ;
126 Double_t
Z =
_pini.P() * (*params)(0,0) *
_u1.Z()+
127 (*params)(1,0) *
_u2.Z()+
128 (*params)(2,0) *
_u3.Z() ;
129 Double_t E = TMath::Sqrt( X*X + Y*Y + Z*Z +
_pini.M2() );
131 TLorentzVector* vec =
new TLorentzVector( X, Y, Z, E );
140 TVector3 vec( pini->Vect() );
149 if ( p ==
nullptr ) {
151 _pini.SetXYZM( 0., 0., 0., M);
156 _pini.SetXYZM( p->x(), p->y(), p->z(), M);
162 TVector3 uz(0., 0., 1.);
180 TMatrixD* DerivativeMatrix =
new TMatrixD(4,3);
181 (*DerivativeMatrix) *= 0.;
183 (*DerivativeMatrix)(0,0)=
_pini.P()*
_u1.X();
184 (*DerivativeMatrix)(1,0)=
_pini.P()*
_u1.Y();
185 (*DerivativeMatrix)(2,0)=
_pini.P()*
_u1.Z();
191 (*DerivativeMatrix)(0,1)=
_u2.X();
192 (*DerivativeMatrix)(1,1)=
_u2.Y();
193 (*DerivativeMatrix)(2,1)=
_u2.Z();
199 (*DerivativeMatrix)(0,2)=
_u3.X();
200 (*DerivativeMatrix)(1,2)=
_u3.Y();
201 (*DerivativeMatrix)(2,2)=
_u3.Z();
206 return DerivativeMatrix;
220 TVector3
vec3( vec.Vect() );
221 vec3.Transform( rot );
224 TMatrixD* tparams =
new TMatrixD(
_nPar, 1 );
226 (*tparams)(1,0) =
vec3(1);
227 (*tparams)(2,0) =
vec3(2);
TMatrixD * transform(const TLorentzVector &vec) override
void init(TVector3 *p, Double_t M, const TMatrixD *theCovMatrix)
void setIni4Vec(const TLorentzVector *pini) override
virtual void setCovMatrix(const TMatrixD *theCovMatrix)
TAbsFitParticle * clone(const TString &newname=TString("")) const override
TLorentzVector * calc4Vec(const TMatrixD *params) override
TMatrixD * getDerivative() override
~TFitParticleMCMomDev() override