ATLAS Offline Software
Loading...
Searching...
No Matches
VP1RawDataHandle_LUCID::Imp::TubeInfo Class Reference
Collaboration diagram for VP1RawDataHandle_LUCID::Imp::TubeInfo:

Public Member Functions

 TubeInfo (int tubeID, const Amg::Transform3D &heptransform, const GeoTube *geotube)
 ~TubeInfo ()
int tubeID () const
SoTransform * getTransform ()
SoGroup * get3DObjects ()

Private Member Functions

void init ()

Private Attributes

int m_tubeID
SoGroup * m_group
SoTransform * m_transform
const Amg::Transform3D m_heptransform
const GeoTube * m_geotube

Detailed Description

Definition at line 48 of file VP1RawDataHandle_LUCID.cxx.

Constructor & Destructor Documentation

◆ TubeInfo()

VP1RawDataHandle_LUCID::Imp::TubeInfo::TubeInfo ( int tubeID,
const Amg::Transform3D & heptransform,
const GeoTube * geotube )
inline

◆ ~TubeInfo()

VP1RawDataHandle_LUCID::Imp::TubeInfo::~TubeInfo ( )
inline

Definition at line 52 of file VP1RawDataHandle_LUCID.cxx.

52{ if (m_group) m_group->unref();if (m_transform) m_transform->unref(); }

Member Function Documentation

◆ get3DObjects()

SoGroup * VP1RawDataHandle_LUCID::Imp::TubeInfo::get3DObjects ( )
inline

Definition at line 59 of file VP1RawDataHandle_LUCID.cxx.

59 {
60 if (!m_group)
61 init();
62 return m_group;
63 }

◆ getTransform()

SoTransform * VP1RawDataHandle_LUCID::Imp::TubeInfo::getTransform ( )
inline

Definition at line 54 of file VP1RawDataHandle_LUCID.cxx.

54 {
55 if (!m_transform)
56 init();
57 return m_transform;
58 }

◆ init()

void VP1RawDataHandle_LUCID::Imp::TubeInfo::init ( )
inlineprivate

Definition at line 65 of file VP1RawDataHandle_LUCID.cxx.

65 {
66 m_group = new SoGroup;
67 m_group->ref();
68
69 SoVisualizeAction a;
70 a.handleTube(m_geotube);
71
72 SoShape * shape(a.getShape() ? a.getShape() : new SoCylinder);
73 m_group->addChild(shape);
74
76 if (shape->getTypeId().isDerivedFrom(SoTubs::getClassTypeId())) {
77 SoTubs * tubs = static_cast<SoTubs*>(shape);
78 const double halfz(tubs->pDz.getValue());
79 tubs->pDz.setValue(halfz + 0.2*CLHEP::mm);
80 //Fixme:: Add line (0.1mm shorter than the geotube) under m_group
81 SoLineSet * line = new SoLineSet;
82 SoVertexProperty * vertices = new SoVertexProperty;
83 line->vertexProperty = vertices;
84 vertices->vertex.set1Value(0,0,0,+(halfz-0.1*CLHEP::mm));
85 vertices->vertex.set1Value(1,0,0,-(halfz-0.1*CLHEP::mm));
86 line->numVertices.set1Value(0,2);
87 m_group->addChild(line);
88 }
90 m_transform->ref();
91 }
static Double_t a
SoSFFloat pDz
Half-length in Z.
Definition SoTubs.h:70
static void initClass()
Class Initializer, required.
Definition SoTubs.cxx:63
static SoTransform * toSoTransform(const HepGeom::Transform3D &, SoTransform *t=0)

◆ tubeID()

int VP1RawDataHandle_LUCID::Imp::TubeInfo::tubeID ( ) const
inline

Definition at line 53 of file VP1RawDataHandle_LUCID.cxx.

53{ return m_tubeID; }

Member Data Documentation

◆ m_geotube

const GeoTube* VP1RawDataHandle_LUCID::Imp::TubeInfo::m_geotube
private

Definition at line 96 of file VP1RawDataHandle_LUCID.cxx.

◆ m_group

SoGroup* VP1RawDataHandle_LUCID::Imp::TubeInfo::m_group
private

Definition at line 93 of file VP1RawDataHandle_LUCID.cxx.

◆ m_heptransform

const Amg::Transform3D VP1RawDataHandle_LUCID::Imp::TubeInfo::m_heptransform
private

Definition at line 95 of file VP1RawDataHandle_LUCID.cxx.

◆ m_transform

SoTransform* VP1RawDataHandle_LUCID::Imp::TubeInfo::m_transform
private

Definition at line 94 of file VP1RawDataHandle_LUCID.cxx.

◆ m_tubeID

int VP1RawDataHandle_LUCID::Imp::TubeInfo::m_tubeID
private

Definition at line 92 of file VP1RawDataHandle_LUCID.cxx.


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