19 : TNamed(
"NoName",
"NoTitle"),
34 : TNamed(name, title),
53 std::stringstream
info;
54 info << std::scientific << std::setprecision(6);
56 info <<
"__________________________" << std::endl << std::endl;
58 info <<
"OBJ: " << IsA()->GetName() <<
"\t" << GetName() <<
"\t" << GetTitle() << std::endl;
60 info << std::setw(22) <<
"initial parameters:" << std::setw(5) <<
" " << std::setw(20)
61 <<
"current parameters:" << std::endl;
63 info <<
"par[" <<
i <<
"] = " << std::setw(18) << (*
getParIni())(
i, 0) << std::setw(20) << (*
getParCurr())(
i, 0)
67 info << std::setw(22) <<
"initial 4vector:" << std::setw(5) <<
" " << std::setw(20)
68 <<
"current 4vector:" << std::endl;
69 for (
int i = 0;
i < 4;
i++) {
73 info <<
"mass = " << std::setw(20) << (*
getIni4Vec()).M() << std::setw(20) << (*
getCurr4Vec()).M() << std::endl;
75 info <<
"u1 = " <<
_u1.X() <<
", " <<
_u1.Y() <<
", " <<
_u1.Z() << std::endl;
76 info <<
"u2 = " <<
_u2.X() <<
", " <<
_u2.Y() <<
", " <<
_u2.Z() << std::endl;
77 info <<
"u3 = " <<
_u3.X() <<
", " <<
_u3.Y() <<
", " <<
_u3.Z() << std::endl;
102 if (theCovMatrix ==
nullptr) {
104 }
else if (theCovMatrix->GetNcols() ==
_nPar && theCovMatrix->GetNrows() ==
_nPar) {
107 edm::LogError(
"WrongMatrixSize") << GetName() <<
"::setCovMatrix - Covariance matrix needs to be a " <<
_nPar <<
"x"
108 <<
_nPar <<
" matrix.";
116 if (theCovMatrixFit ==
nullptr) {
118 }
else if (theCovMatrixFit->GetNcols() ==
_nPar && theCovMatrixFit->GetNrows() ==
_nPar) {
121 edm::LogError(
"WrongMatrixSize") << GetName() <<
"::setCovMatrixFit - Fitted covariance matrix needs to be a "
134 edm::LogError(
"WrongMatrixSize") << GetName() <<
"::calcCovMatrixDeltaY - _covMatrixFit probably not set.";
148 if (sigmaDeltaY < 0) {
149 edm::LogWarning(
"NegativeDiagonalElem") <<
"V[deltaY] has a negative diagonal element.";
153 _pull(
i, 0) /= TMath::Sqrt(sigmaDeltaY);
177 if (parini ==
nullptr)
182 edm::LogError(
"WrongMatrixSize") << GetName() <<
"::setParIni - Matrices don't fit.";
Log< level::Info, true > LogVerbatim
const TLorentzVector * getIni4Vec()
virtual const TMatrixD * getCovMatrixDeltaY()
~TAbsFitParticle() override
Log< level::Error, false > LogError
virtual TLorentzVector * calc4Vec(const TMatrixD *params)=0
virtual void setCovMatrix(const TMatrixD *theCovMatrix)
virtual void applycorr(TMatrixD *corrMatrix)
TMatrixD _covMatrixDeltaY
void calcCovMatrixDeltaY()
const TMatrixD * getParIni()
const TLorentzVector * getCurr4Vec()
void setParIni(const TMatrixD *parini)
Log< level::Warning, false > LogWarning
virtual void setCovMatrixFit(const TMatrixD *theCovMatrixFit)
virtual const TMatrixD * getPull()
const TMatrixD * getParCurr()