40 forigin(TVector3(0,0,0)),
41 fiver(TVector3(0,0,0)),
42 fjver(TVector3(0,0,0)),
43 fkver(TVector3(0,0,0)),
47 for(Int_t i=0; i<15; i++) {
50 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) { fCovMatrix66[i][j] = 0; }
58 Double_t Tw, Double_t qp,
59 Double_t CovMatrix[15],
60 TVector3 o, TVector3 dj, TVector3 dk)
75 forigin(TVector3(0,0,0)),
76 fiver(TVector3(0,0,0)),
77 fjver(TVector3(0,0,0)),
78 fkver(TVector3(0,0,0)),
89 Double_t P = TMath::Abs(1/
fQp);
92 for(Int_t i=0; i<15; i++) {
117 Double_t PD[3],RD[6][6],
H[3],PC[3],RC[15], SP1;
123 for(Int_t i=0; i<15; i++) {
133 fRun->
GetField()->GetFieldValue(pnt, H);
147 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) {
fCovMatrix66[i][j] = RD[i][j]; }
149 fDPx = TMath::Sqrt(fabs(RD[0][0]));
150 fDPy = TMath::Sqrt(fabs(RD[1][1]));
151 fDPz = TMath::Sqrt(fabs(RD[2][2]));
152 fDX = TMath::Sqrt(fabs(RD[3][3]));
153 fDY = TMath::Sqrt(fabs(RD[4][4]));
154 fDZ = TMath::Sqrt(fabs(RD[5][5]));
160 Double_t Tw, Double_t qp,
161 Double_t CovMatrix[15],
162 TVector3 o, TVector3 dj, TVector3 dk, Double_t spu)
177 forigin(TVector3(0,0,0)),
178 fiver(TVector3(0,0,0)),
179 fjver(TVector3(0,0,0)),
180 fkver(TVector3(0,0,0)),
194 P = TMath::Abs(1/
fQp);
198 for(Int_t i=0; i<15; i++) {
222 Double_t PD[3],RD[6][6],
H[3],PC[3],RC[15], SP1;
228 for(Int_t i=0; i<15; i++) {
238 fRun->
GetField()->GetFieldValue(pnt, H);
252 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) {
fCovMatrix66[i][j] = RD[i][j]; }
254 fDPx = TMath::Sqrt(fabs(RD[0][0]));
255 fDPy = TMath::Sqrt(fabs(RD[1][1]));
256 fDPz = TMath::Sqrt(fabs(RD[2][2]));
257 fDX = TMath::Sqrt(fabs(RD[3][3]));
258 fDY = TMath::Sqrt(fabs(RD[4][4]));
259 fDZ = TMath::Sqrt(fabs(RD[5][5]));
278 forigin(TVector3(0,0,0)),
279 fiver(TVector3(0,0,0)),
280 fjver(TVector3(0,0,0)),
281 fkver(TVector3(0,0,0)),
295 if(Q!=0) {
fq= Q/TMath::Abs(Q); }
317 Double_t PD[3], RD[6][6],
H[3], SP1, PC[3], RC[15];
325 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) { RD[i][j] = 0.; }
333 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) {
fCovMatrix66[i][j] = RD[i][j]; }
341 fRun->
GetField()->GetFieldValue(pnt, H);
347 for(Int_t i=0; i<15; i++) {
fCovMatrix[i] = RC[i]; }
368 Double_t covMARS[6][6], Int_t Q,
369 TVector3 o, TVector3 dj, TVector3 dk)
384 forigin(TVector3(0,0,0)),
385 fiver(TVector3(0,0,0)),
386 fjver(TVector3(0,0,0)),
387 fkver(TVector3(0,0,0)),
401 if(Q!=0) {
fq= Q/TMath::Abs(Q); }
410 fDPx = TMath::Sqrt(fabs(covMARS[0][0]));
411 fDPy = TMath::Sqrt(fabs(covMARS[1][1]));
412 fDPz = TMath::Sqrt(fabs(covMARS[2][2]));
413 fDX = TMath::Sqrt(fabs(covMARS[3][3]));
414 fDY = TMath::Sqrt(fabs(covMARS[4][4]));
415 fDZ = TMath::Sqrt(fabs(covMARS[5][5]));
417 Double_t PD[3], RD[6][6],
H[3], SP1, PC[3], RC[15];
424 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) { RD[i][j] = covMARS[i][j]; }
425 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) {
fCovMatrix66[i][j] = RD[i][j]; }
434 fRun->
GetField()->GetFieldValue(pnt, H);
440 for(Int_t i=0; i<15; i++) {
fCovMatrix[i] = RC[i]; }
480 forigin(TVector3(0,0,0)),
481 fiver(TVector3(0,0,0)),
482 fjver(TVector3(0,0,0)),
483 fkver(TVector3(0,0,0)),
492 TVector3 xyz(helix->
GetX(), helix->
GetY(), helix->
GetZ());
493 Double_t
H[3], pnt[3];
498 fRun->
GetField()->GetFieldValue(pnt, H);
499 Int_t CH = helix->
GetQ();
501 Double_t DJ[3] = {dj.X(), dj.Y(), dj.Z()};
502 Double_t DK[3] = {dk.X(), dk.Y(), dk.Z()};
506 Double_t PD[3], RD[15];
515 TVector3 o(xyz.X(), xyz.Y(), xyz.Z());
516 TVector3 di = dj.Cross(dk);
523 else { cout <<
"FairTrackParP(FairTrackParH *) contructor ERROR: CANNOT convert helix to parabola" << endl; }
530 Double_t Px, Double_t Py, Double_t Pz, Int_t Q,
531 Double_t CovMatrix[15],
532 TVector3 o, TVector3 di, TVector3 dj, TVector3 dk)
541 Double_t P =TMath::Sqrt(Px*Px+Py*Py+Pz*Pz);
543 if (Q!=0) {
fq = TMath::Abs(Q)/Q; }
554 for(Int_t i=0; i<15; i++) {
567 Double_t PD[3], RD[6][6],
H[3], SP1, PC[3], RC[15];
573 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) { RD[i][j] = 0.; }
580 fRun->
GetField()->GetFieldValue(pnt, H);
595 for(Int_t i=0; i<15; i++) { RC[i] =
fCovMatrix[i]; }
599 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) {
fCovMatrix66[i][j] = RD[i][j]; }
602 fDPx = TMath::Sqrt(fabs(RD[0][0]));
603 fDPy = TMath::Sqrt(fabs(RD[1][1]));
604 fDPz = TMath::Sqrt(fabs(RD[2][2]));
605 fDX = TMath::Sqrt(fabs(RD[3][3]));
606 fDY = TMath::Sqrt(fabs(RD[4][4]));
607 fDZ = TMath::Sqrt(fabs(RD[5][5]));
616 Double_t Tw, Double_t qp,
617 Double_t CovMatrix[15],
618 TVector3 o, TVector3 di, TVector3 dj, TVector3 dk, Double_t spu)
630 Double_t P = TMath::Abs(1/
fQp);
633 for(Int_t i=0; i<15; i++) {
655 Double_t PD[3],RD[6][6],
H[3],PC[3],RC[15], SP1;
661 for(Int_t i=0; i<15; i++) {
671 fRun->
GetField()->GetFieldValue(pnt, H);
686 for(
int i = 0; i < 6; i++)
for(
int j = 0; j < 6; j++) {
fCovMatrix66[i][j] = RD[i][j]; }
688 fDPx = TMath::Sqrt(fabs(RD[0][0]));
689 fDPy = TMath::Sqrt(fabs(RD[1][1]));
690 fDPz = TMath::Sqrt(fabs(RD[2][2]));
691 fDX = TMath::Sqrt(fabs(RD[3][3]));
692 fDY = TMath::Sqrt(fabs(RD[4][4]));
693 fDZ = TMath::Sqrt(fabs(RD[5][5]));
710 cout <<
"Position : (";
712 cout <<
fX <<
", " <<
fY <<
", " <<
fZ <<
")" << endl;
713 cout <<
"Slopes : dx/dz = " <<
fTV <<
", dy/dz = " <<
fTW << endl;
714 cout <<
"q/p = " <<
fQp << endl;
824 for(Int_t i= 0; i<15; i++) {
fCovMatrix[i] = 0.; }
842 forigin = TVector3(o.X(), o.Y(), o.Z());
850 k = (j.Cross(k)).Cross(j);
855 TVector3 i = j.Cross(k);
879 for(
int i = 0; i < 5; i++)
for(
int j = 0; j < 5; j++) {
ftrmat[i][j] = mat[i][j]; }
885 for(
int i = 0; i < 5; i++)
for(
int j = 0; j < 5; j++) { mat[i][j] =
ftrmat[i][j]; }
892 for(
int i = 0; i < 15; i++) {
895 if(i == 0) { CovQ[i] = CovQ[i] / (
fq *
fq); }
896 if(i > 0 && i < 5) { CovQ[i] = CovQ[i] /
fq; }