17 if((p->cov()==0)||(p->cov()->size()==0))
29 for(j=i;j<5;j++)
a[i][j]=
a[j][i]=(*p->cov())[idx++];
34 for(i=0;i<5;i++)
for(j=0;j<=i;j++) pP->
m_cov[idx++]=L[i][j];
39 pP->
m_cov[0] =(float)sqrt( (*p->cov())[0] > 0 ? (*p->cov())[0] : 0 );
40 pP->
m_cov[2] =(float)sqrt( (*p->cov())[5] > 0 ? (*p->cov())[5] : 0 );
41 pP->
m_cov[5] =(float)sqrt( (*p->cov())[9] > 0 ? (*p->cov())[9] : 0 );
42 pP->
m_cov[9] =(float)sqrt( (*p->cov())[12] > 0 ? (*p->cov())[12] : 0 );
43 pP->
m_cov[14]=(float)sqrt( (*p->cov())[14] > 0 ? (*p->cov())[14] : 0 );
48std::unique_ptr<std::vector<double> >
52 int i{0},j{0},k{0},idx{0};
53 float L[5][5], LT[5][5];
59 memset(&L[0][0],0,
sizeof(L));memset(<[0][0],0,
sizeof(LT));
61 for(i=0;i<5;i++)
for(j=0;j<=i;j++)
63 L[i][j]=LT[j][i]=pP->
m_cov[idx++];
66 auto pV = std::make_unique<std::vector<double> >();
79 C+=(
long double)L[i][k]*LT[k][j];
86bool TrigInDetTrackFitParCnv_p3 :: CholeskyDecomposition(
double a[5][5],
float L[5][5])
106 p[i]=sqrt(sum);L[i][i]=p[i];
133 ea0 = sqrt((*cov)[0]);
134 ephi0 = sqrt((*cov)[5]);
135 ez0 = sqrt((*cov)[9]);
136 eeta = sqrt((*cov)[12]);
137 epT = sqrt((*cov)[14]);
145 ea0, ephi0, ez0, eeta, epT,
bool CholeskyDecomposition(double a[5][5], float L[5][5])
bool calculateSquareRoot(const TrigInDetTrackFitPar *, TrigInDetTrackFitPar_p3 *)
std::unique_ptr< std::vector< double > > restoreCovariance(const TrigInDetTrackFitPar_p3 *)
encapsulates LVL2 track parameters and covariance matrix The vector of track parameters consists of
void surfaceCoordinate(double c)
Setter: surface reference coordinate for non-perigee surfaces.
void eta(const double eta)
Setter: pseudorapidity.
void z0(const double z0)
Setter: longitudinal impact parameter.
void phi0(const double phi0)
Setter: azimuthal angle of the momentum.
void a0(const double a0)
Setter: transverse impact parameter.
void surfaceType(TrigSurfaceType s)
Setter: surface type PERIGEE=0, BARREL=1, ENDCAP=2.
void pT(const double pT)
Setter: transverse momentum.