|
ATLAS Offline Software
|
Go to the documentation of this file.
32 m_pPrevState(nullptr) {
62 for (
int i = 0;
i < 5;
i++) {
65 for (
int i = 0;
i < 5;
i++)
66 for (
int j = 0; j < 5; j++)
m_Gk[
i][j] = pTS->
m_Gk[
i][j];
77 fprintf(pFile,
"%f %f %f %f %f\n",
79 for (
int i = 0;
i < 5;
i++) {
80 for (
int j = 0; j < 5; j++) {
81 if (j <
i) fprintf(pFile,
" ");
90 printf(
"STATE x0=%f y0=%f phi=%f theta=%f qOverP=%f pT=%f\n",
92 printf(
"COVARIANCE \n");
93 for (
auto &
i :
m_Gk) {
111 for (
int i = 0;
i < 5;
i++)
m_Rk[
i] += pUpd[
i];
121 for (
int i = 0;
i < 5;
i++) {
122 for (
int j =
i; j < 5; j++) {
143 for (
int i = 0;
i < 5;
i++)
144 for (
int j = 0; j < 5; j++)
153 for (
int i = 0;
i < 5;
i++)
154 for (
int j = 0; j < 5; j++)
159 double lenCorr, sigmaMS,
s2, a2, radLength, lV[3], gV[3],
a;
162 if (pS ==
nullptr)
return;
168 lenCorr = 1.0 / fabs(lV[2]);
170 sigmaMS = 13.6 * fabs(
m_Re[4]) * sqrt(radLength) * (1.0 + 0.038 *
log(radLength));
171 s2 = sigmaMS * sigmaMS;
185 double lenCorr, effLength, lV[3], gV[3];
188 if (pS ==
nullptr)
return;
194 lenCorr = 1.0 / fabs(lV[2]);
198 m_Re[4] +=
dir * (
m_Re[4] * effLength * (1.0 - 0.5 * effLength));
199 m_Ge[4][4] +=
m_Re[4] *
m_Re[4] * effLength * (0.415 - 0.744 * effLength);
202 }
else if (abs(
dir) == 2) {
219 double dR[5], dG[5][5], B[5][5];
224 for (
i = 0;
i < 5;
i++) {
226 for (j = 0; j < 5; j++) dG[
i][j] =
m_Gk[
i][j] -
m_Ge[
i][j];
229 if (dR[2] >
M_PI) dR[2] -= 2 *
M_PI;
230 if (dR[2] < -
M_PI) dR[2] += 2 *
M_PI;
231 for (
i = 0;
i < 5;
i++) {
239 for (
i = 0;
i < 5;
i++)
240 for (j = 0; j < 5; j++) {
242 for (
m = 0;
m < 5;
m++) B[
i][j] +=
m_A[
i][
m] * dG[
m][j];
244 for (
i = 0;
i < 5;
i++)
245 for (j = 0; j < 5; j++) {
246 for (
m = 0;
m < 5;
m++)
TrkPlanarSurface * getSurface()
void applyMultipleScattering()
void updateTrackCovariance(const double *)
TrkPlanarSurface * m_pSurface
void applyMaterialEffects()
void rotateVectorToLocal(const double *, double *)
int getScatteringMode() const
void setScatteringMode(int)
void serialize(char fileName[])
void attachToSurface(TrkPlanarSurface *)
void applyEnergyLoss(int)
void setPreviousState(TrkTrackState *)
Ensure that the ATLAS eigen extensions are properly loaded.
double getRadLength() const
void setSmootherGain(double A[5][5])
void updateTrackState(const double *)
void setTrackCovariance(double A[5][5])
void setTrackState(const double A[5])
TrkTrackState * m_pPrevState
bool isBreakPoint() const
double getTrackCovariance(int i, int j)