26 throw std::invalid_argument(
"Missing logger");
28 throw std::invalid_argument(
"Missing algorithm name");
30 throw std::invalid_argument(
"Missing output stream");
43 std::lock_guard<std::mutex> lock(m_write_mutex);
45 ACTS_DEBUG(
">>Obj: Writer for Surface object called.");
47 auto scalor = m_cfg.outputScalor;
56 if (planarBounds && m_cfg.outputSensitive) {
59 (*(m_cfg.outputStream)) <<
'\n';
60 (*(m_cfg.outputStream)) << std::setprecision(m_cfg.outputPrecision);
62 auto planarVertices = planarBounds->
vertices();
64 std::vector<Acts::Vector3D> vertices;
65 vertices.reserve(planarVertices.size());
66 for (
auto pv : planarVertices) {
69 vertices.push_back(v3D);
73 std::vector<unsigned int> vfaces;
77 vfaces = {1, 1, 1, 1};
82 (*(m_cfg.outputStream)) <<
'\n';
89 if (cylinderBounds && m_cfg.outputLayerSurface) {
90 ACTS_VERBOSE(
">>Obj: Writing out a CylinderSurface with r = "
94 (*(m_cfg.outputStream))
98 m_cfg.outputPhiSegemnts, sTransform,
101 m_cfg.outputThickness);
102 (*(m_cfg.outputStream)) <<
'\n';
108 if (radialBounds && m_cfg.outputLayerSurface) {
110 << sTransform.translation().z());
113 (*(m_cfg.outputStream)) <<
"o Disk_" <<
std::to_string(layerID) <<
'\n';
115 double rMin = radialBounds->
rMin();
116 double rMax = radialBounds->
rMax();
120 m_cfg.outputPhiSegemnts, sTransform, 0.5 * (rMin + rMax),
121 m_cfg.outputThickness, thickness);
122 (*(m_cfg.outputStream)) <<
'\n';