31 init(
nullptr,
nullptr);
56 init(pini, theCovMatrix);
60 TLorentzVector* pini,
const TMatrixD* theCovMatrix)
63 init(pini, theCovMatrix);
70 if ( newname.Length() > 0 ) myclone->SetName(newname);
97 if (params ==
nullptr) {
101 if ( params->GetNcols() != 1 || params->GetNrows() !=
_nPar ) {
103 << GetName() <<
"::calc4Vec - Parameter matrix has wrong size.";
107 Double_t
et = (*params)(0,0);
108 Double_t
eta = (*params)(1,0);
109 Double_t
phi = (*params)(2,0);
111 Double_t
X = et*TMath::Cos(phi);
112 Double_t
Y = et*TMath::Sin(phi);
113 Double_t
Z = et*TMath::SinH(eta);
114 Double_t E = et*TMath::CosH(eta);
116 TLorentzVector* vec =
new TLorentzVector( X, Y, Z, E );
125 if (pini ==
nullptr) {
127 _u1.SetXYZ(0., 0., 0.);
128 _u3.SetXYZ(0., 0., 0.);
129 _u2.SetXYZ(0., 0., 0.);
130 _pini.SetXYZT(0., 0., 0., 0.);
145 Double_t
et = pini->E()*std::fabs(
sin(pini->Theta()));
146 Double_t
eta = pini->Eta();
147 Double_t
phi = pini->Phi();
160 _u1.SetXYZ( TMath::Cos(phi), TMath::Sin(phi), 0.);
161 _u2.SetXYZ( -1.*TMath::Cos(phi)*TMath::TanH(eta), -1.*TMath::Sin(phi)*TMath::TanH(eta), 1./TMath::CosH(eta) );
162 _u3.SetXYZ( -1.*TMath::Sin(phi), TMath::Cos(phi), 0. );
173 TMatrixD* DerivativeMatrix =
new TMatrixD(4,3);
174 (*DerivativeMatrix) *= 0.;
181 (*DerivativeMatrix)(0,0) = TMath::Cos(phi);
182 (*DerivativeMatrix)(1,0) = TMath::Sin(phi);
183 (*DerivativeMatrix)(2,0) = TMath::SinH(eta);
184 (*DerivativeMatrix)(3,0) = TMath::CosH(eta);
187 (*DerivativeMatrix)(0,1) = 0.;
188 (*DerivativeMatrix)(1,1) = 0.;
189 (*DerivativeMatrix)(2,1) = et*TMath::CosH(eta);
190 (*DerivativeMatrix)(3,1) = et*TMath::SinH(eta);
193 (*DerivativeMatrix)(0,2) = -1.*et*TMath::Sin(phi);
194 (*DerivativeMatrix)(1,2) = et*TMath::Cos(phi);
195 (*DerivativeMatrix)(2,2) = 0.;
196 (*DerivativeMatrix)(3,2) = 0.;
198 return DerivativeMatrix;
207 TMatrixD* tparams =
new TMatrixD(
_nPar, 1 );
208 (*tparams)(0,0) = vec.E()*std::fabs(
sin(vec.Theta()));
209 (*tparams)(1,0) = vec.Eta();
210 (*tparams)(2,0) = vec.Phi();
void init(TLorentzVector *pini, const TMatrixD *theCovMatrix)
TMatrixD * transform(const TLorentzVector &vec) override
Sin< T >::type sin(const T &t)
TMatrixD * getDerivative() override
virtual void setCovMatrix(const TMatrixD *theCovMatrix)
void setIni4Vec(const TLorentzVector *pini) override
TAbsFitParticle * clone(const TString &newname="") const override
et
define resolution functions of each parameter
~TFitParticleEtEtaPhi() override
TLorentzVector * calc4Vec(const TMatrixD *params) override