62 init(pini, theCovMatrix);
66 TLorentzVector* pini,
const TMatrixD* theCovMatrix)
69 init(pini, theCovMatrix);
76 if ( newname.Length() > 0 ) myclone->SetName(newname);
113 if ( params->GetNcols() != 1 || params->GetNrows() !=
_nPar ) {
115 << GetName() <<
"::calc4Vec - Parameter matrix has wrong size.";
119 Double_t
X =
_pini.P() * (*params)(0,0) *
_u1.X() +
120 (*params)(1,0) *
_u2.X()+
121 (*params)(2,0) *
_u3.X();
122 Double_t Y =
_pini.P() * (*params)(0,0) *
_u1.Y() +
123 (*params)(1,0) *
_u2.Y()+
124 (*params)(2,0) *
_u3.Y();
125 Double_t
Z =
_pini.P()*(*params)(0,0)*
_u1.Z() +
126 (*params)(1,0) *
_u2.Z()+
127 (*params)(2,0) *
_u3.Z();
128 Double_t pcurr = TMath::Sqrt( X*X + Y*Y + Z*Z );
131 TLorentzVector* vec =
new TLorentzVector( X, Y, Z, E );
142 _u1.SetXYZ(0., 0., 0.);
143 _u3.SetXYZ(0., 0., 0.);
144 _u2.SetXYZ(0., 0., 0.);
145 _pini.SetXYZT(0., 0., 0., 0.);
155 TVector3 uz(0., 0., 1.);
172 TMatrixD* DerivativeMatrix =
new TMatrixD(4,3);
173 (*DerivativeMatrix) *= 0.;
176 (*DerivativeMatrix)(0,0)=
_pini.P()*
_u1.X();
177 (*DerivativeMatrix)(1,0)=
_pini.P()*
_u1.Y();
178 (*DerivativeMatrix)(2,0)=
_pini.P()*
_u1.Z();
181 (*DerivativeMatrix)(0,1)=
_u2.X();
182 (*DerivativeMatrix)(1,1)=
_u2.Y();
183 (*DerivativeMatrix)(2,1)=
_u2.Z();
186 (*DerivativeMatrix)(0,2)=
_u3.X();
187 (*DerivativeMatrix)(1,2)=
_u3.Y();
188 (*DerivativeMatrix)(2,2)=
_u3.Z();;
191 return DerivativeMatrix;
205 TVector3 vec3( vec.Vect() );
206 vec3.Transform( rot );
209 TMatrixD* tparams =
new TMatrixD(
_nPar, 1 );
210 (*tparams)(0,0) = vec3(0)/
_pini.P();
211 (*tparams)(1,0) = vec3(1);
212 (*tparams)(2,0) = vec3(2);
const double Z[kNumberCalorimeter]
virtual ~TFitParticleEScaledMomDev()
void init(TLorentzVector *pini, const TMatrixD *theCovMatrix)
virtual TMatrixD * getDerivative()
virtual void setCovMatrix(const TMatrixD *theCovMatrix)
virtual void setIni4Vec(const TLorentzVector *pini)
virtual TAbsFitParticle * clone(TString newname="") const
TFitParticleEScaledMomDev()
virtual TLorentzVector * calc4Vec(const TMatrixD *params)
virtual TMatrixD * transform(const TLorentzVector &vec)