91 const int paddleID)
const -> ROOT::Math::XYZVector
93 auto pos_in = std::array{ position.X(), position.Y(), position.Z() };
94 auto pos_tmp = std::array<double, 3>{};
95 auto pos_out = std::array<double, 3>{};
98 fNeulandGeoNode->GetMatrix()->MasterToLocal(pos_in.data(), pos_tmp.data());
100 fPaddleGeoNodes.at(paddleID)->MasterToLocal(pos_tmp.data(), pos_out.data());
102 return { pos_out[0], pos_out[1], pos_out[2] };
106 const int paddleID)
const -> ROOT::Math::XYZVector
108 auto pos_in = std::array{ position.X(), position.Y(), position.Z() };
109 auto pos_tmp = std::array<double, 3>{};
110 auto pos_out = std::array<double, 3>{};
113 fPaddleGeoNodes.at(paddleID)->LocalToMaster(pos_in.data(), pos_tmp.data());
115 fNeulandGeoNode->GetMatrix()->LocalToMaster(pos_tmp.data(), pos_out.data());
117 return { pos_out[0], pos_out[1], pos_out[2] };
122 const auto nPixels = 50;
123 const auto sizePixel = 5.;
125 const auto nPlanes = nPaddles / nPixels;
127 auto pos_in = std::array{ position.X(), position.Y(), position.Z() };
128 auto pos_tmp = std::array<double, 3>{};
131 fNeulandGeoNode->GetMatrix()->MasterToLocal(pos_in.data(), pos_tmp.data());
135 const auto x_pos = std::min(std::max(0, (nPixels / 2) +
static_cast<int>((pos_tmp[0] / sizePixel))), nPixels - 1);
137 std::min(std::max<int>(0, (nPixels / 2) +
static_cast<int>(pos_tmp[1] / sizePixel)), nPixels - 1);
141 std::min(std::max<int>(0, (
nPlanes / 2) +
static_cast<int>(pos_tmp[2] / sizePixel)),
nPlanes - 1);
143 return {
static_cast<double>(x_pos),
static_cast<double>(y_pos),
static_cast<double>(z_pos) };