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

Public Member Functions

 Imp (VP1TrackingVolumes *tc, SoMaterial *materialID, SoMaterial *materialCalo, SoMaterial *materialMS, SoSeparator *attachsep, bool showID, bool showCalo, bool showMS)
void updateFields ()
void ensureInit3DObjects ()

Public Attributes

VP1TrackingVolumestheclass
SoSeparator * attachSep
SoMaterial * materialID
SoMaterial * materialCalo
SoMaterial * materialMS
bool shown
bool shownID
bool shownCalo
bool shownMS
SoSeparator * sep
SoSeparator * sepID
SoSeparator * sepCalo
SoSeparator * sepMS
SoCylinder * innerDetector
SoCylinder * calos
SoCylinder * muonSpectrometer

Detailed Description

Definition at line 25 of file VP1TrackingVolumes.cxx.

Constructor & Destructor Documentation

◆ Imp()

VP1TrackingVolumes::Imp::Imp ( VP1TrackingVolumes * tc,
SoMaterial * materialID,
SoMaterial * materialCalo,
SoMaterial * materialMS,
SoSeparator * attachsep,
bool showID,
bool showCalo,
bool showMS )

Definition at line 86 of file VP1TrackingVolumes.cxx.

87 : theclass(tc), attachSep(as),
89 shown(false), shownID(showID), shownCalo(showCalo), shownMS(showMS),
91{
92 attachSep->ref();
93}
static Double_t tc
VP1TrackingVolumes * theclass

Member Function Documentation

◆ ensureInit3DObjects()

void VP1TrackingVolumes::Imp::ensureInit3DObjects ( )

Definition at line 96 of file VP1TrackingVolumes.cxx.

97{
98 if (sep && sepID && sepCalo && sepMS)
99 return;
100 theclass->messageVerbose("Building 3D objects");
101
102 sep = new SoSeparator;
103 sep->ref();
104 SoRotationXYZ * rotz = new SoRotationXYZ;
105 rotz->axis.setValue(SoRotationXYZ::X);
106 rotz->angle.setValue(0.5*M_PI);
107 sep->addChild(rotz);
108
109 sepID = new SoSeparator;
110 sepID->ref();
111 sepID->addChild(materialID);
112 innerDetector = new SoCylinder;
113 innerDetector->radius.setValue(1100.0);
114 innerDetector->height.setValue( 6400.0 );
115 sepID->addChild(innerDetector);
116
117 sepCalo = new SoSeparator;
118 sepCalo->ref();
119 sepCalo->addChild(materialCalo);
120 calos = new SoCylinder;
121 calos->radius.setValue(4250.0);
122 calos->height.setValue( 6779.0*2.0 );
123 sepCalo->addChild(calos);
124
125 sepMS = new SoSeparator;
126 sepMS->ref();
127 sepMS->addChild(materialMS);
128 muonSpectrometer = new SoCylinder;
129 muonSpectrometer->radius.setValue(15000.0);
130 muonSpectrometer->height.setValue( 21000.0*2.0 );
131 sepMS->addChild(muonSpectrometer);
132
133
134// innerDetector->parts.setValue(SoCylinder::SIDES|SoCylinder::BOTTOM);
135}
#define M_PI

◆ updateFields()

void VP1TrackingVolumes::Imp::updateFields ( )

Definition at line 138 of file VP1TrackingVolumes.cxx.

139{
141 theclass->messageVerbose("Updating fields");
142
143 const bool save = sep->enableNotify(false);
144
145 if (shownID ){
146 if (sep->findChild(sepID)<0)
147 sep->addChild(sepID);
148 } else {
149 sep->removeChild(sepID);
150 }
151
152 if (shownCalo ){
153 if (sep->findChild(sepCalo)<0)
154 sep->addChild(sepCalo);
155 } else {
156 sep->removeChild(sepCalo);
157 }
158
159 if (shownMS ){
160 if (sep->findChild(sepMS)<0)
161 sep->addChild(sepMS);
162 } else {
163 sep->removeChild(sepMS);
164 }
165
166 if (save) {
167 sep->enableNotify(true);
168 sep->touch();
169 }
170}

Member Data Documentation

◆ attachSep

SoSeparator* VP1TrackingVolumes::Imp::attachSep

Definition at line 34 of file VP1TrackingVolumes.cxx.

◆ calos

SoCylinder* VP1TrackingVolumes::Imp::calos

Definition at line 49 of file VP1TrackingVolumes.cxx.

◆ innerDetector

SoCylinder* VP1TrackingVolumes::Imp::innerDetector

Definition at line 48 of file VP1TrackingVolumes.cxx.

◆ materialCalo

SoMaterial* VP1TrackingVolumes::Imp::materialCalo

Definition at line 36 of file VP1TrackingVolumes.cxx.

◆ materialID

SoMaterial* VP1TrackingVolumes::Imp::materialID

Definition at line 35 of file VP1TrackingVolumes.cxx.

◆ materialMS

SoMaterial* VP1TrackingVolumes::Imp::materialMS

Definition at line 37 of file VP1TrackingVolumes.cxx.

◆ muonSpectrometer

SoCylinder* VP1TrackingVolumes::Imp::muonSpectrometer

Definition at line 50 of file VP1TrackingVolumes.cxx.

◆ sep

SoSeparator* VP1TrackingVolumes::Imp::sep

Definition at line 44 of file VP1TrackingVolumes.cxx.

◆ sepCalo

SoSeparator* VP1TrackingVolumes::Imp::sepCalo

Definition at line 46 of file VP1TrackingVolumes.cxx.

◆ sepID

SoSeparator* VP1TrackingVolumes::Imp::sepID

Definition at line 45 of file VP1TrackingVolumes.cxx.

◆ sepMS

SoSeparator* VP1TrackingVolumes::Imp::sepMS

Definition at line 47 of file VP1TrackingVolumes.cxx.

◆ shown

bool VP1TrackingVolumes::Imp::shown

Definition at line 39 of file VP1TrackingVolumes.cxx.

◆ shownCalo

bool VP1TrackingVolumes::Imp::shownCalo

Definition at line 41 of file VP1TrackingVolumes.cxx.

◆ shownID

bool VP1TrackingVolumes::Imp::shownID

Definition at line 40 of file VP1TrackingVolumes.cxx.

◆ shownMS

bool VP1TrackingVolumes::Imp::shownMS

Definition at line 42 of file VP1TrackingVolumes.cxx.

◆ theclass

VP1TrackingVolumes* VP1TrackingVolumes::Imp::theclass

Definition at line 33 of file VP1TrackingVolumes.cxx.


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