21 #include <boost/algorithm/string.hpp>
23 #include "RtypesCore.h"
26 #include "TGeoBoolNode.h"
27 #include "TGeoCompositeShape.h"
31 using Line2D = Eigen::Hyperplane<double, 2>;
35 const TGeoMatrix& tGeoMatrix,
const std::string& axes,
double scalor,
36 std::shared_ptr<const Acts::ISurfaceMaterial>
material)
38 m_detElement(&tGeoNode),
39 m_identifier(identifier) {
42 const Double_t*
translation = tGeoMatrix.GetTranslation();
43 const Double_t* rotation = tGeoMatrix.GetRotationMatrix();
46 auto tgShape = sensor->GetShape();
48 auto [cBounds, cTransform, cThickness] =
51 if (cBounds !=
nullptr) {
55 m_surface = Surface::makeShared<CylinderSurface>(cBounds, *
this);
60 auto [dBounds, dTransform, dThickness] =
63 if (dBounds !=
nullptr) {
67 m_surface = Surface::makeShared<DiscSurface>(dBounds, *
this);
73 auto [pBounds, pTransform, pThickness] =
76 if (pBounds !=
nullptr) {
80 m_surface = Surface::makeShared<PlaneSurface>(pBounds, *
this);
93 const std::shared_ptr<const PlanarBounds>& tgBounds,
double tgThickness)
95 m_detElement(&tGeoNode),
97 m_identifier(identifier),
99 m_thickness(tgThickness) {
100 m_surface = Surface::makeShared<PlaneSurface>(tgBounds, *
this);
106 const std::shared_ptr<const DiscBounds>& tgBounds,
double tgThickness)
108 m_detElement(&tGeoNode),
110 m_identifier(identifier),
112 m_thickness(tgThickness) {
113 m_surface = Surface::makeShared<DiscSurface>(tgBounds, *
this);