77{
79 const InDetDD::SiDetectorElement *
elem =
element();
80 const int ngroup =
m_data->getGroupSize();
81 if (!elem||ngroup<1)
83
84 const InDetDD::SCT_ModuleSideDesign& design =
dynamic_cast<const InDetDD::SCT_ModuleSideDesign&
>(
elem->design());
85
86 SoLineSet *
line =
new SoLineSet;
87 SoVertexProperty * vertices = new SoVertexProperty;
88 line->vertexProperty = vertices;
89
91 const int ifirststrip(idhelper ? idhelper->
strip(
m_data->identify()) : 0);
92 int iver(0);
93 std::pair<InDetDD::SiLocalPosition,InDetDD::SiLocalPosition> localEnds;
94 for (
int i=0;
i<ngroup;++
i) {
95 std::pair< Amg::Vector3D, Amg::Vector3D > globalEnds =
elem->endsOfStrip(design.
positionFromStrip(ifirststrip+i));
99 vertices->vertex.set1Value(iver++,localA.x(),localA.y(),0);
100 vertices->vertex.set1Value(iver++,localB.x(),localB.y(),0);
101 line->numVertices.set1Value(i,2);
102 }
104}
SoNode * getShapeNode_Point()
virtual SiLocalPosition positionFromStrip(const int stripNumber) const
gives position of strip center ALTERNATIVE/PREFERED way is to use localPositionOfCell(const SiCellId ...
virtual std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const override=0
give the ends of strips
int strip(const Identifier &id) const
static const SCT_ID * sctIDHelper()
HitsSoNodeManager * nodeManager() const
VP1RawDataCommonData * common() const
const InDetDD::SiDetectorElement * element() const
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D