43 for(Int_t i=0; i<15; i++) {
46 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) { fCovMatrix66[i][j] = 0.; }
52 Double_t lm, Double_t
phi, Double_t qp,
53 Double_t CovMatrix[15])
67 cphi(TMath::Cos(phi)),
76 Double_t P = TMath::Abs(1/
fQp);
79 for(Int_t i=0; i<15; i++) {
110 Double_t PD[3],RD[6][6],
H[3],PC[3],RC[15];
116 for(Int_t i=0; i<15; i++) {
126 fRun->
GetField()->GetFieldValue(pnt, H);
133 fDPx = sqrt(fabs(RD[0][0]));
134 fDPy = sqrt(fabs(RD[1][1]));
135 fDPz = sqrt(fabs(RD[2][2]));
136 fDX = sqrt(fabs(RD[3][3]));
137 fDY = sqrt(fabs(RD[4][4]));
138 fDZ = sqrt(fabs(RD[5][5]));
140 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) {
fCovMatrix66[i][j] = RD[i][j]; }
173 fq= int (q/TMath::Abs(q));
175 fLm = TMath::ASin(fPz/P);
199 Double_t PD[3],RD[6][6],
H[3],PC[3],RC[15];
204 for(Int_t i=0; i<6; i++)
for(Int_t j=0; j<6; j++) {
220 fRun->
GetField()->GetFieldValue(pnt, H);
227 for(Int_t i=0; i<15; i++) {
235 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) {
fCovMatrix66[i][j] = RD[i][j]; }
262 TVector3 xyz(parab->
GetX(), parab->
GetY(), parab->
GetZ());
263 Double_t
H[3], pnt[3];
268 fRun->
GetField()->GetFieldValue(pnt, H);
269 Int_t CH = parab->
GetQ();
274 Double_t SPU = parab->
GetSPU();
277 Double_t PC[3], RC[15];
288 else { cout <<
"FairTrackParH(FairTrackParP *) contructor ERROR: CANNOT convert parabola to helix" << endl; }
294 Double_t Px, Double_t Py, Double_t Pz, Int_t Q,
295 Double_t CovMatrix[15])
298 Double_t P =TMath::Sqrt(Px*Px+Py*Py+Pz*Pz);
299 fLm = TMath::ASin(Pz/P);
301 fPhi = TMath::ATan2(Py,Px);
302 if (Q!=0) {
fq = int (TMath::Abs(Q)/Q); }
322 for(Int_t i=0; i<15; i++) {
338 Double_t PD[3],RD[6][6],
H[3],PC[3],RC[15];
344 for(Int_t i=0; i<15; i++) {
354 fRun->
GetField()->GetFieldValue(pnt, H);
360 fDPx = sqrt(fabs(RD[0][0]));
361 fDPy = sqrt(fabs(RD[1][1]));
362 fDPz = sqrt(fabs(RD[2][2]));
363 fDX = sqrt(fabs(RD[3][3]));
364 fDY = sqrt(fabs(RD[4][4]));
365 fDZ = sqrt(fabs(RD[5][5]));
367 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) {
fCovMatrix66[i][j] = RD[i][j]; }
373 Double_t qp, Double_t lm, Double_t
phi, Double_t CovMatrix[15])
378 Double_t P = TMath::Abs(1/
fQp);
381 for(Int_t i=0; i<15; i++) {
415 Double_t PD[3],RD[6][6],
H[3],PC[3],RC[15];
421 for(Int_t i=0; i<15; i++) {
431 fRun->
GetField()->GetFieldValue(pnt, H);
438 fDPx = sqrt(fabs(RD[0][0]));
439 fDPy = sqrt(fabs(RD[1][1]));
440 fDPz = sqrt(fabs(RD[2][2]));
441 fDX = sqrt(fabs(RD[3][3]));
442 fDY = sqrt(fabs(RD[4][4]));
443 fDZ = sqrt(fabs(RD[5][5]));
445 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) {
fCovMatrix66[i][j] = RD[i][j]; }
458 fDQp = - fDP/(fP*fP);
461 Double_t fDPQDPhi= -
cLm * TMath::Sin(
fPhi) /
fPx;
463 Double_t fDPQDX_sc = (
fX_sc*pow(
fZ,3))/(fPz*pow(pow(
fX_sc,2) + pow(
fY_sc,2),2.5)*
466 pow(
fY_sc,2),1.5)*TMath::Sqrt(1 + pow(fZ_sc,2)/(pow(
fX_sc,2) + pow(
fY_sc,2))));
468 Double_t fDPQDY_sc = (
fY_sc*pow(fZ_sc,3))/(fPz*pow(pow(
fX_sc,2) + pow(
fY_sc,2),2.5)*
469 pow(1 + pow(fZ_sc,2)/(pow(
fX_sc,2) + pow(
fY_sc,2)),1.5)) -
471 TMath::Sqrt(1 + pow(fZ_sc,2)/(pow(
fX_sc,2) + pow(
fY_sc,2))));
473 fDLm= (-((fPz*fDP)/pow(fP,2)) +
fDPz/fP)/ TMath::Sqrt(1 - pow(fPz,2)/pow(fP,2));
476 (fP*TMath::Sqrt(1 - (pow(
fPx,2)*pow(1/
cphi,2))/pow(fP,2))));
479 (1 + pow(fZ_sc,2)/(pow(
fX_sc,2) + pow(
fY_sc,2)))));
482 (1 + pow(fZ_sc,2)/(pow(
fX_sc,2) + pow(
fY_sc,2)))));
491 Double_t fDXDY_sc = 1/TMath::Tan(
fPhi);
494 cout <<
"FairTrackParH::CalCov() No Errors" << endl;
531 cout <<
"FairTrackParH::FairTrackParH(FairTrackPar &Trkbase)" << endl;
542 if (fP!=0) {
fQp =
fq/fP; }
544 fLm = TMath::ASin(fPz/fP);
564 for(Int_t i=0; i<15; i++) {
568 Double_t PD[3],RD[6][6],
H[3],PC[3],RC[15];
573 for(Int_t i=0; i<6; i++)
for(Int_t j=0; j<6; j++) {
589 fRun->
GetField()->GetFieldValue(pnt, H);
594 for(Int_t i=0; i<15; i++) {
601 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) {
fCovMatrix66[i][j] = RD[i][j]; }
612 cout <<
"Position : (";
614 cout <<
fX <<
", " <<
fY <<
", " <<
fZ <<
")" << endl;
615 cout <<
"Angles : Lambda = " <<
fLm <<
", Phi = " <<
fPhi << endl;
616 cout <<
"q/p = " <<
fQp << endl;
617 for(Int_t i=0; i<15; i++) {
618 cout <<
"fCovMatrix[" << i <<
"] = " <<
this <<
" " <<
fCovMatrix[i] << endl;
697 for(Int_t i= 0; i<15; i++) {
fCovMatrix[i] =0; }
714 for(
int i = 0; i < 15; i++) {
717 if(i == 0) { CovQ[i] = CovQ[i] / (
fq *
fq); }
718 if(i > 0 && i < 5) { CovQ[i] = CovQ[i] /
fq; }