229 for (
int i = 1;
i < 3;
i++)
230 for (
int j = 1;
j < 3;
j++) {
233 TMatrixDEigen eig(xxx);
234 TVectorD xxxEig(eig.GetEigenValuesRe());
236 TEveVector v1(0, eig.GetEigenVectors()(1, 2), eig.GetEigenVectors()(2, 2));
239 TEveVector v2(0, eig.GetEigenVectors()(1, 1), eig.GetEigenVectors()(2, 1));
241 if (v1[1] * v2[2] > v1[2] * v2[1])
244 TEveProjection* proj =
fM->GetManager()->GetProjection();
247 bool splitted =
false;
253 if (proj->GetDisplaceOrigin())
254 bs = proj->RefCenter()[1];
256 float da = v2[1] * v2[1] + v1[1] * v1[1];
257 float db = 2 * v1[1] * (v0[1] -
bs);
258 float dc = (v0[1] -
bs) * (v0[1] - bs) - v2[1] * v2[1];
259 float disc = (db * db - 4 * da * dc);
263 float cosS1 = (-db + disc) / (2 * da);
264 float cosS2 = (-db - disc) / (2 * da);
269 double phi1 = acos(cosS1);
270 double phi2 = acos(cosS2);
271 TEveVector ps1 = v0 + v1 * ((float)
cos(phi1)) + v2 * ((
float)
sin(phi1));
272 TEveVector ps2 = v0 + v1 * ((
float)
cos(phi2)) + v2 * ((
float)
sin(phi2));
275 if (TMath::
Abs(ps1[1] - bs) > 1
e-5)
276 phi1 = TMath::
TwoPi() - phi1;
278 if (TMath::
Abs(ps2[1] - bs) > 1
e-5)
279 phi2 = TMath::
TwoPi() - phi2;
282 double phiStep = TMath::
TwoPi() / N;
283 double phiOffset = phiStep * 0.1;
299 TGLUtil::LineWidth(
fE->fLineWidth);
300 TGLUtil::Color(
fE->fLineColor);
302 glBegin(GL_LINE_LOOP);
306 glBegin(GL_LINE_LOOP);
316 TGLUtil::LineWidth(
fE->fLineWidth);
317 TGLUtil::Color(
fE->fLineColor);
318 glBegin(GL_LINE_LOOP);
void drawArch(float pStart, float pEnd, float phiStep, TEveVector &v0, TEveVector &v1, TEveVector &v2) const
Sin< T >::type sin(const T &t)
void drawRhoZAxis(TEveVector &v, TEveVector &) const
if(conf_.getParameter< bool >("UseStripCablingDB"))
Cos< T >::type cos(const T &t)
TEveEllipsoidProjected * fM