15 #include "Acts/Surfaces/detail/PlanarHelper.hpp"
16 #include "Acts/Visualization/GeometryView3D.hpp"
17 #include "Acts/Surfaces/StrawSurface.hpp"
18 #include "Acts/Surfaces/LineBounds.hpp"
19 #include "Acts/Surfaces/RectangleBounds.hpp"
20 #include "Acts/Surfaces/TrapezoidBounds.hpp"
21 #include "Acts/Surfaces/PlaneSurface.hpp"
22 #include "Acts/Definitions/Units.hpp"
25 using namespace Acts::PlanarHelper;
27 using namespace Acts::UnitLiterals;
30 Acts::ObjVisualization3D& visualHelper,
31 const Acts::ViewConfig& viewConfig){
37 for (std::size_t
s = 1;
s <
steps.size(); ++
s) {
40 Acts::GeometryView3D::drawSegment(visualHelper,
start,
end, viewConfig);
48 Acts::ObjVisualization3D& visualHelper,
49 const Acts::ViewConfig& viewConfig ,
50 const double standardLength){
52 std::vector<const xAOD::UncalibratedMeasurement*> assocMeas =
collectMeasurements(segment,
false);
53 if (assocMeas.empty()){
54 Acts::GeometryView3D::drawSegment(visualHelper,
61 assocMeas.front() : assocMeas[1];
71 const auto firstPlaneIsect = intersectPlane(segment.
position(), segment.
direction(),
72 planeNorm, firstSurfPos);
73 const auto lastPlaneIsect = intersectPlane(segment.
position(), segment.
direction(),
74 planeNorm, lastSurfPos);
76 Acts::GeometryView3D::drawSegment(visualHelper,
83 Acts::ObjVisualization3D& visualHelper,
84 const Acts::ViewConfig& viewConfig) {
85 std::vector<const xAOD::UncalibratedMeasurement*> assocMeas =
collectMeasurements(segment,
false);
92 Acts::ObjVisualization3D& visualHelper,
93 const Acts::ViewConfig& viewConfig) {
96 const Acts::GeometryContext tgContext = gctx.
context();
97 const auto& bounds = surf.bounds();
99 const auto& lBounds =
static_cast<const Acts::LineBounds&
>(bounds);
102 const double hZ = driftCirc->numDimensions() == 1 ?
103 lBounds.get(Acts::LineBounds::eHalfLengthZ) :
105 auto newBounds = std::make_unique<Acts::LineBounds>(dR, hZ);
106 auto dummySurface = Acts::Surface::makeShared<Acts::StrawSurface>(surf.transform(tgContext)*
108 std::move(newBounds));
109 Acts::GeometryView3D::drawSurface(visualHelper, *dummySurface, tgContext,
110 Amg::Transform3D::Identity(), viewConfig);
113 double dX{0.}, dY{0.};
120 locPos[
Amg::y] = cmbMeas->secondaryStrip()->localPosition<1>()[0];
121 dX = std::sqrt(cmbMeas->primaryStrip()->localCovariance<1>()(0,0));
122 dY = std::sqrt(cmbMeas->secondaryStrip()->localCovariance<1>()(0,0));
129 dX = rpcClus->measuresPhi() ? 0.5* rpcClus->readoutElement()->stripPhiLength()
130 : std::sqrt(rpcClus->localCovariance<1>()(0,0));
131 dY = rpcClus->measuresPhi() ? std::sqrt(rpcClus->localCovariance<1>()(0,0))
132 : 0.5* rpcClus->readoutElement()->stripEtaLength();
136 const auto& stripLay =
re->sensorLayout(tgcClus->measurementHash());
137 locPos = tgcClus->localMeasurementPos();
138 dX = tgcClus->measuresPhi() ? 0.5* stripLay->design(
true).stripLength(tgcClus->channelNumber())
139 : std::sqrt(tgcClus->localCovariance<1>()(0,0));
140 dY = tgcClus->measuresPhi() ? std::sqrt(tgcClus->localCovariance<1>()(0,0))
141 : 0.5* stripLay->design(
false).stripLength(tgcClus->channelNumber());
145 dX = std::sqrt(mmClust->localCovariance<1>()(0,0));
146 dY = 0.5* mmClust->readoutElement()->stripLength(mmClust->measurementHash());
150 if (sTgcClus->channelType() == sTgcIdHelper::sTgcChannelTypes::Strip){
151 dX = std::sqrt(sTgcClus->localCovariance<1>()(0,0));
152 dY = 0.5* sTgcClus->readoutElement()->stripDesign(sTgcClus->measurementHash()).stripLength(sTgcClus->channelNumber());
153 }
else if (sTgcClus->channelType() == sTgcIdHelper::sTgcChannelTypes::Wire) {
154 dY = std::sqrt(sTgcClus->localCovariance<1>()(0,0));
155 dY = 0.5*sTgcClus->readoutElement()->wireDesign(sTgcClus->measurementHash()).stripLength(sTgcClus->channelNumber());
162 locPos.block<2,1>(0, 0) = xAOD::toEigen(meas->
localPosition<2>());
168 auto newBounds = std::make_unique<Acts::RectangleBounds>(dX, dY);
169 auto dummySurf = Acts::Surface::makeShared<Acts::PlaneSurface>(surf.transform(tgContext)*
171 std::move(newBounds));
172 Acts::GeometryView3D::drawSurface(visualHelper, *dummySurf, tgContext,
173 Amg::Transform3D::Identity(), viewConfig);
176 const Acts::BoundTrackParameters&
pars,
177 Acts::ObjVisualization3D& visualHelper,
178 const Acts::ViewConfig& viewConfig,
179 const double standardLength){
183 Acts::GeometryView3D::drawSegment(visualHelper,
start,
end, viewConfig);