ATLAS Offline Software
Loading...
Searching...
No Matches
VP1RawDataHandle_SCT_RDO Class Reference

#include <VP1RawDataHandle_SCT_RDO.h>

Inheritance diagram for VP1RawDataHandle_SCT_RDO:
Collaboration diagram for VP1RawDataHandle_SCT_RDO:

Public Member Functions

 VP1RawDataHandle_SCT_RDO (VP1RawDataCollBase *, const SCT_RDORawData *)
virtual ~VP1RawDataHandle_SCT_RDO ()
QStringList clicked (bool verbose) const
VP1RawDataFlags::InDetPartsFlags inInDetParts () const
VP1RawDataCollBasecoll () const
VP1RawDataCommonDatacommon () const
void setVisible (bool)
bool visible () const
void update3DObjects ()
virtual Amg::Vector3D center ()
void updateShownOutlines ()

Static Public Member Functions

static QString unsignedToHex (unsigned)

Protected Member Functions

SoNode * buildShape ()
SoTransform * buildTransform ()
const InDetDD::SiDetectorElementelement () const

Protected Attributes

const SCT_RDORawDatam_data

Private Attributes

Impm_d
VP1RawDataCollBasem_coll
bool m_visible

Detailed Description

Definition at line 25 of file VP1RawDataHandle_SCT_RDO.h.

Constructor & Destructor Documentation

◆ VP1RawDataHandle_SCT_RDO()

VP1RawDataHandle_SCT_RDO::VP1RawDataHandle_SCT_RDO ( VP1RawDataCollBase * coll,
const SCT_RDORawData * data )

Definition at line 36 of file VP1RawDataHandle_SCT_RDO.cxx.

38{
39}
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
VP1RawDataHandleBase(VP1RawDataCollBase *)
VP1RawDataCollBase * coll() const

◆ ~VP1RawDataHandle_SCT_RDO()

VP1RawDataHandle_SCT_RDO::~VP1RawDataHandle_SCT_RDO ( )
virtual

Definition at line 42 of file VP1RawDataHandle_SCT_RDO.cxx.

43{
44}

Member Function Documentation

◆ buildShape()

SoNode * VP1RawDataHandle_SCT_RDO::buildShape ( )
protectedvirtual

Implements VP1RawDataHandleBase.

Definition at line 76 of file VP1RawDataHandle_SCT_RDO.cxx.

77{
78 static const SCT_ID * idhelper = VP1DetInfo::sctIDHelper();
79 const InDetDD::SiDetectorElement * elem = element();
80 const int ngroup = m_data->getGroupSize();
81 if (!elem||ngroup<1)
82 return common()->nodeManager()->getShapeNode_Point();//fixme: warn
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
90 Amg::Transform3D invTransform(elem->transform().inverse());
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));
96 Amg::Vector3D localA(invTransform*globalEnds.first);
97 Amg::Vector3D localB(invTransform*globalEnds.second);
98 localEnds = design.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 }
103 return line;
104}
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
Definition SCT_ID.h:717
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

◆ buildTransform()

SoTransform * VP1RawDataHandle_SCT_RDO::buildTransform ( )
protectedvirtual

Implements VP1RawDataHandleBase.

Definition at line 107 of file VP1RawDataHandle_SCT_RDO.cxx.

108{
109 const InDetDD::SiDetectorElement * elem = element();
110 if (!elem)
111 return common()->nodeManager()->getUnitTransform();//fixme: warn
112 return VP1LinAlgUtils::toSoTransform(elem->transform());
113}
SoTransform * getUnitTransform()
static SoTransform * toSoTransform(const HepGeom::Transform3D &, SoTransform *t=0)

◆ center()

Amg::Vector3D VP1RawDataHandleBase::center ( )
virtualinherited

Definition at line 166 of file VP1RawDataHandleBase.cxx.

167{
168 m_d->ensureInitSepAndTransform(this);
169 assert(m_d->sep
170 && m_d->sep->getNumChildren()>0
171 && m_d->sep->getChild(0)->getTypeId().isDerivedFrom(SoTransform::getClassTypeId()));
172
173 float x,y,z;
174 static_cast<SoTransform*>(m_d->sep->getChild(0))->translation.getValue().getValue(x,y,z);
175 //NB: We assume that the center part of the transform is zero
176 return Amg::Vector3D(x,y,z);
177}
#define y
#define x
#define z

◆ clicked()

QStringList VP1RawDataHandle_SCT_RDO::clicked ( bool verbose) const
virtual

Implements VP1RawDataHandleBase.

Definition at line 47 of file VP1RawDataHandle_SCT_RDO.cxx.

48{
49 static const SCT_ID * idhelper = VP1DetInfo::sctIDHelper();
50 QStringList l;
51 l << " ===> SCT_RDORawData";
52 l << " Data word: "+unsignedToHex(m_data->getWord());
53 if (verbose) {
54 if (idhelper) {
55 Identifier id(m_data->identify());
56 bool barrel(false);
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);
67 else
68 l << " Strip: "+QString::number(idhelper->strip(id));
69 }
70 //Fixme: Try dynamic cast to SCT3_RawData, and print more information if it succeeds.
71 }
72 return l;
73}
int layer_disk(const Identifier &id) const
Definition SCT_ID.h:687
int side(const Identifier &id) const
Definition SCT_ID.h:705
int phi_module(const Identifier &id) const
Definition SCT_ID.h:693
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition SCT_ID.h:681
int eta_module(const Identifier &id) const
Definition SCT_ID.h:699
static QString unsignedToHex(unsigned)
bool verbose
Definition hcg.cxx:73
l
Printing final latex table to .tex output file.

◆ coll()

VP1RawDataCollBase * VP1RawDataHandleBase::coll ( ) const
inlineinherited

Definition at line 40 of file VP1RawDataHandleBase.h.

40{ return m_coll; }
VP1RawDataCollBase * m_coll

◆ common()

VP1RawDataCommonData * VP1RawDataHandleBase::common ( ) const
inlineinherited

Definition at line 41 of file VP1RawDataHandleBase.h.

41{ return m_coll->common(); }

◆ element()

const InDetDD::SiDetectorElement * VP1RawDataHandle_SCT_RDO::element ( ) const
protected

Definition at line 116 of file VP1RawDataHandle_SCT_RDO.cxx.

117{
118 const InDetDD::SCT_DetectorManager * detmgr = VP1DetInfo::sctDetMgr();
119 if (!detmgr)
120 return 0;
121 return detmgr->getDetectorElement(m_data->identify());
122}
virtual const SiDetectorElement * getDetectorElement(const Identifier &id) const override
access to individual elements via Identifier
static const InDetDD::SCT_DetectorManager * sctDetMgr()

◆ inInDetParts()

VP1RawDataFlags::InDetPartsFlags VP1RawDataHandle_SCT_RDO::inInDetParts ( ) const
virtual

Reimplemented from VP1RawDataHandleBase.

Definition at line 131 of file VP1RawDataHandle_SCT_RDO.cxx.

132{
133 const InDetDD::SiDetectorElement * elem = element();
134 if (!elem)
136 if (elem->center().z()>=0)
138 else
140
141}

◆ setVisible()

void VP1RawDataHandleBase::setVisible ( bool vis)
inherited

Definition at line 68 of file VP1RawDataHandleBase.cxx.

69{
70 if (vis==m_visible)
71 return;
72 m_visible=vis;
73 if (vis) {
74 if (!m_d->hasShape())
75 m_d->rebuild3DObjects(this);
76 m_d->ensureAttach3DObjects(this);
77 } else {
78 m_d->ensureDetach3DObjects(this);
79 }
80}

◆ unsignedToHex()

QString VP1RawDataHandleBase::unsignedToHex ( unsigned i)
staticinherited

Definition at line 158 of file VP1RawDataHandleBase.cxx.

159{
160 std::ostringstream s;
161 s << "0x" << std::hex << i;
162 return QString(s.str().c_str()).toUpper();
163}

◆ update3DObjects()

void VP1RawDataHandleBase::update3DObjects ( )
inherited

Definition at line 83 of file VP1RawDataHandleBase.cxx.

84{
85 if (m_visible) {
86 m_d->rebuild3DObjects(this);
87 } else {
88 //Simply clear the present 3D objects. They will only be recreated if/when the handle becomes visible again.
89 m_d->clearShape();
90 }
91}

◆ updateShownOutlines()

void VP1RawDataHandleBase::updateShownOutlines ( )
inherited

Definition at line 180 of file VP1RawDataHandleBase.cxx.

181{
182 if (!m_d->sep)
183 return;
185}
void updateVolumeOutlines(SoGroup *)

◆ visible()

bool VP1RawDataHandleBase::visible ( ) const
inlineinherited

Definition at line 44 of file VP1RawDataHandleBase.h.

44{ return m_visible; }

Member Data Documentation

◆ m_coll

VP1RawDataCollBase* VP1RawDataHandleBase::m_coll
privateinherited

Definition at line 70 of file VP1RawDataHandleBase.h.

◆ m_d

Imp* VP1RawDataHandleBase::m_d
privateinherited

Definition at line 68 of file VP1RawDataHandleBase.h.

◆ m_data

const SCT_RDORawData* VP1RawDataHandle_SCT_RDO::m_data
protected

Definition at line 37 of file VP1RawDataHandle_SCT_RDO.h.

◆ m_visible

bool VP1RawDataHandleBase::m_visible
privateinherited

Definition at line 71 of file VP1RawDataHandleBase.h.


The documentation for this class was generated from the following files: