20#include <Inventor/nodes/SoLineSet.h>
21#include <Inventor/nodes/SoVertexProperty.h>
51 l <<
" ===> SCT_RDORawData";
57 if (idhelper->
barrel_ec(
id)==-2) l <<
" Part: End Cap C";
58 else if (idhelper->
barrel_ec(
id)==2) l <<
" Part: End Cap A";
59 else { l <<
" Part: Barrel";
barrel =
true; }
60 l <<
" "+QString(
barrel?
"Layer":
"Disk")+
": "+QString::number(idhelper->
layer_disk(
id));
61 l <<
" Phi module: "+QString::number(idhelper->
phi_module(
id));
62 l <<
" Eta module: "+QString::number(idhelper->
eta_module(
id));
63 l <<
" Side: "+QString(idhelper->
side(
id)==0 ?
"Inner":
"Outer");
64 l <<
" Group Size: "+QString::number(
m_data->getGroupSize());
65 if (
m_data->getGroupSize()>1)
66 l <<
" Strips: "+QString::number(idhelper->
strip(
id))+
".."+QString::number(idhelper->
strip(
id)+
m_data->getGroupSize()-1);
68 l <<
" Strip: "+QString::number(idhelper->
strip(
id));
80 const int ngroup =
m_data->getGroupSize();
86 SoLineSet * line =
new SoLineSet;
87 SoVertexProperty * vertices =
new SoVertexProperty;
88 line->vertexProperty = vertices;
91 const int ifirststrip(idhelper ? idhelper->
strip(
m_data->identify()) : 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);
136 if (elem->center().z()>=0)
char data[hepevt_bytes_allocation_ATLAS]
This is an Identifier helper class for the SCT subdetector.
SoNode * getShapeNode_Point()
SoTransform * getUnitTransform()
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
virtual const SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements via Identifier
Base class for the SCT module side design, extended by the Forward and Barrel module design.
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
Class to hold geometrical description of a silicon detector element.
This is an Identifier helper class for the SCT subdetector.
int layer_disk(const Identifier &id) const
int side(const Identifier &id) const
int phi_module(const Identifier &id) const
int strip(const Identifier &id) const
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
int eta_module(const Identifier &id) const
static const InDetDD::SCT_DetectorManager * sctDetMgr()
static const SCT_ID * sctIDHelper()
static SoTransform * toSoTransform(const HepGeom::Transform3D &, SoTransform *t=0)
HitsSoNodeManager * nodeManager() const
VP1RawDataCommonData * common() const
VP1RawDataHandleBase(VP1RawDataCollBase *)
static QString unsignedToHex(unsigned)
VP1RawDataCollBase * coll() const
SoTransform * buildTransform()
QStringList clicked(bool verbose) const
VP1RawDataFlags::InDetPartsFlags inInDetParts() const
virtual ~VP1RawDataHandle_SCT_RDO()
const InDetDD::SiDetectorElement * element() const
const SCT_RDORawData * m_data
VP1RawDataHandle_SCT_RDO(VP1RawDataCollBase *, const SCT_RDORawData *)
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D