30 Acts::ObjVisualization3D& visualHelper,
31 const Acts::ViewConfig& viewConfig){
37 for (std::size_t s = 1; s < steps.size(); ++s) {
39 if ( (end - start).
mag() > Acts::s_epsilon){
40 Acts::GeometryView3D::drawSegment(visualHelper, start, end, viewConfig);
41 start = std::move(end);
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,
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);
101 const double dR = driftCirc->driftRadius();
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.};
119 locPos[
Amg::x] = cmbMeas->primaryStrip()->localPosition<1>()[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));
128 locPos = rpcClus->localMeasurementPos();
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());
144 locPos = mmClust->localMeasurementPos();
145 dX = std::sqrt(mmClust->localCovariance<1>()(0,0));
146 dY = 0.5* mmClust->readoutElement()->stripLength(mmClust->measurementHash());
149 locPos = sTgcClus->localMeasurementPos();
151 dX = std::sqrt(sTgcClus->localCovariance<1>()(0,0));
152 dY = 0.5* sTgcClus->readoutElement()->stripDesign(sTgcClus->measurementHash()).stripLength(sTgcClus->channelNumber());
154 dY = std::sqrt(sTgcClus->localCovariance<1>()(0,0));
155 dX = 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){
181 const Amg::Vector3D start = globPos - 0.5 * standardLength * pars.direction();
182 const Amg::Vector3D end = globPos + 0.5 * standardLength * pars.direction();
183 Acts::GeometryView3D::drawSegment(visualHelper, start, end, viewConfig);
Acts::GeometryContext context() const
void drawBoundParameters(const ActsTrk::GeometryContext &gctx, const Acts::BoundTrackParameters &pars, Acts::ObjVisualization3D &visualHelper, const Acts::ViewConfig &viewConfig=Acts::s_viewLine, const double standardLength=3.*Gaudi::Units::cm)
Draw a line representing the bound track parameters.
void drawSegmentLine(const ActsTrk::GeometryContext &gctx, const xAOD::MuonSegment &segment, Acts::ObjVisualization3D &visualHelper, const Acts::ViewConfig &viewConfig=Acts::s_viewLine, const double standardLength=1.*Gaudi::Units::m)
Draw a segment line inside the obj file.