12#ifndef BMNATESTDETECTORPLANE_H
13#define BMNATESTDETECTORPLANE_H
16#include "Math/Functions.h"
18#include "TPolyLine3D.h"
22#define BMN_PLANE_SIZE 400.0
23#define BMN_PLANE_COLOR kBlue
24#define BMN_NORMAL_COLOR kRed
44 void Draw(Bool_t showNormal = kFALSE)
const;
62 : fZposition(Zposition)
63 , fDetectorID(DetectorID)
65 for (Int_t
i =
iX;
i <=
iZ;
i++) {
70 for (Int_t
i =
iX, j =
iZ + 1;
i <=
iZ;
i++, j++) {
104 Int_t inverse_failure;
108 throw std::runtime_error(
"BmnATestDetectorPlane: rotation matrix inverse failed");
118 points[0](
iX) = -halfSize;
119 points[0](
iY) = -halfSize;
120 points[1](
iX) = -halfSize;
121 points[1](
iY) = halfSize;
122 points[2](
iX) = halfSize;
123 points[2](
iY) = halfSize;
124 points[3](
iX) = halfSize;
125 points[3](
iY) = -halfSize;
126 points[4] = points[0];
129 Double_t x[5], y[5], z[5];
130 for (
int i = 0;
i < 5;
i++) {
132 x[
i] = points[
i](
iX);
133 y[
i] = points[
i](
iY);
134 z[
i] = points[
i](
iZ);
139 auto* outline =
new TPolyLine3D(5, z, y, x);
149 for (
int i = 0;
i < 2;
i++) {
151 x[
i] = normal[
i](
iX);
152 y[
i] = normal[
i](
iY);
153 z[
i] = normal[
i](
iZ);
155 auto* normalLine =
new TPolyLine3D(2, z, y, x);
ROOT::Math::SVector< Double_t, BMN_GLOBAL_PARAMS_PD > SVectGL
ROOT::Math::SMatrix< Double_t, 3, 3 > SMatr3x3
ROOT::Math::SVector< Double_t, 3 > SVect3
#define BMN_GLOBAL_PARAMS_PD
SMatr3x3 fCoordInvRotation
const SVect3 & GetNormal() const noexcept
BmnATestDetectorPlane()=default
const SVect3 & GetCrdShift() const noexcept
Double_t GetPosition() const noexcept
const SVect3 & GetAlignRot() const noexcept
const SMatr3x3 & GetCrdInvRotation() const noexcept
const SMatr3x3 & GetCrdRotation() const noexcept
const SVect3 & GetAlignShift() const noexcept
void Draw(Bool_t showNormal=kFALSE) const
Int_t GetDetectorID() const noexcept
Double_t GetConst() const noexcept