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

Public Member Functions

 Imp (ProjectionSurfacesHelper *tc, SoSeparator *as)
SoShape * barrelCylShape ()
SoShape * endcapInnerShape ()
SoShape * endcapOuterShape ()
SoShape * endcapZAsRCylShape ()
void initPartsSep (float zpos, SoSeparator *&sep, SoShape *)
void ensureDetached (SoSeparator *)
void ensureAttached (SoSeparator *)

Public Attributes

ProjectionSurfacesHelpertheclass
SoSeparator * attachsep
InDetProjFlags::InDetProjPartsFlags parts
SoMaterial * material
SoSeparator * sep
SoShape * barrelcylshape
SoShape * endcapinnershape
SoShape * endcapoutershape
SoShape * endcapzasrcylshape
SoSeparator * sep_barrel_central
SoSeparator * sep_barrel_pos
SoSeparator * sep_barrel_neg
SoSeparator * sep_endcap_inner_pos
SoSeparator * sep_endcap_outer_pos
SoSeparator * sep_endcap_inner_neg
SoSeparator * sep_endcap_outer_neg
SoSeparator * sep_endcap_zasr_central
SoSeparator * sep_endcap_zasr_pos
SoSeparator * sep_endcap_zasr_neg
double surfacethickness
double barrel_inner_radius
double barrel_outer_radius
double barrel_posneg_z
double endcap_surface_z
double endcap_surface_length
double endcap_inner_radius
double endcap_outer_radius
double endcap_zasr_disttobarrelcyl
double endcap_zasr_squeezefact

Static Public Attributes

static const int nphi = 64

Detailed Description

Definition at line 73 of file ProjectionSurfacesHelper.cxx.

Constructor & Destructor Documentation

◆ Imp()

ProjectionSurfacesHelper::Imp::Imp ( ProjectionSurfacesHelper * tc,
SoSeparator * as )
inline

Definition at line 75 of file ProjectionSurfacesHelper.cxx.

75 : theclass(tc),
76 attachsep(as),
78 material(0),
79 sep(0),
104 {
105 if (as)
106 as->ref();
107 }
static Double_t tc
InDetProjFlags::InDetProjPartsFlags parts

Member Function Documentation

◆ barrelCylShape()

SoShape * ProjectionSurfacesHelper::Imp::barrelCylShape ( )

Definition at line 374 of file ProjectionSurfacesHelper.cxx.

375{
376 theclass->messageVerbose("barrelCylShape");
377 if (!barrelcylshape) {
379 SoTubs * disc = new SoTubs;
382 disc->pDz = 0.5*surfacethickness;
383 disc->pSPhi = 0.0;
384 disc->pDPhi = 2*M_PI;
385 disc->pOverrideNPhi = nphi;//Ignore complexity and just use a good amount of subdivisions =n*32 (its just a single surface anyway)
386 barrelcylshape = disc;
387 barrelcylshape->ref();
388 }
389 return barrelcylshape;
390}
#define M_PI
SoSFInt32 pOverrideNPhi
Override number of phi subdivision used for rendering shape (i.e.
Definition SoTubs.h:83
SoSFFloat pDz
Half-length in Z.
Definition SoTubs.h:70
SoSFFloat pDPhi
Delta-angle, in radians.
Definition SoTubs.h:78
SoSFFloat pSPhi
Starting angle, in radians.
Definition SoTubs.h:74
static void initClass()
Class Initializer, required.
Definition SoTubs.cxx:63
SoSFFloat pRMin
Inside radius of the tube.
Definition SoTubs.h:62
SoSFFloat pRMax
Outside radius of the tube.
Definition SoTubs.h:66

◆ endcapInnerShape()

SoShape * ProjectionSurfacesHelper::Imp::endcapInnerShape ( )

Definition at line 393 of file ProjectionSurfacesHelper.cxx.

394{
395 theclass->messageVerbose("endcapInnerShape");
396 if (!endcapinnershape) {
398 SoTubs * cyl = new SoTubs;
401 cyl->pDz = 0.5*endcap_surface_length;
402 cyl->pSPhi = 0.0;
403 cyl->pDPhi = 2*M_PI;
404 cyl->pOverrideNPhi = nphi;//Ignore complexity and just use a good amount of subdivisions =n*32 (its just a single surface anyway)
405 endcapinnershape = cyl;
406 endcapinnershape->ref();
407 }
408 return endcapinnershape;
409}

◆ endcapOuterShape()

SoShape * ProjectionSurfacesHelper::Imp::endcapOuterShape ( )

Definition at line 412 of file ProjectionSurfacesHelper.cxx.

413{
414 theclass->messageVerbose("endcapOuterShape");
415 if (!endcapoutershape) {
417 SoTubs * cyl = new SoTubs;
420 cyl->pDz = 0.5*endcap_surface_length;
421 cyl->pSPhi = 0.0;
422 cyl->pDPhi = 2*M_PI;
423 cyl->pOverrideNPhi = nphi;//Ignore complexity and just use a good amount of subdivisions =n*32 (its just a single surface anyway)
424 endcapoutershape = cyl;
425 endcapoutershape->ref();
426 }
427 return endcapoutershape;
428}

◆ endcapZAsRCylShape()

SoShape * ProjectionSurfacesHelper::Imp::endcapZAsRCylShape ( )

Definition at line 431 of file ProjectionSurfacesHelper.cxx.

432{
433 theclass->messageVerbose("endcapZAsRCylShape");
434 if (!endcapzasrcylshape) {
436 SoTubs * disc = new SoTubs;
438 disc->pRMin = rmin;
440 disc->pDz = 0.5*surfacethickness;
441 disc->pSPhi = 0.0;
442 disc->pDPhi = 2*M_PI;
443 disc->pOverrideNPhi = nphi;//Ignore complexity and just use a good amount of subdivisions =n*32 (its just a single surface anyway)
444 endcapzasrcylshape = disc;
445 endcapzasrcylshape->ref();
446 }
447 return endcapzasrcylshape;
448}

◆ ensureAttached()

void ProjectionSurfacesHelper::Imp::ensureAttached ( SoSeparator * s)

Definition at line 462 of file ProjectionSurfacesHelper.cxx.

463{
464 if (VP1Msg::verbose())
465 theclass->messageVerbose("ensureAttached");
466 if (!s)
467 return;
468 if (!sep) {
469 sep = new SoSeparator;
470 sep->ref();
471 SoPickStyle *pickStyle = new SoPickStyle;
472 pickStyle->style=SoPickStyle::UNPICKABLE;
473 sep->addChild(pickStyle);
474 if (material)
475 sep->addChild(material);
476 attachsep->addChild(sep);
477 }
478 sep->addChild(s);
479 if (VP1Msg::verbose())
480 theclass->messageVerbose("ensureAttached done");
481}
static bool verbose()
Definition VP1Msg.h:31

◆ ensureDetached()

void ProjectionSurfacesHelper::Imp::ensureDetached ( SoSeparator * s)

Definition at line 451 of file ProjectionSurfacesHelper.cxx.

452{
453 if (VP1Msg::verbose())
454 theclass->messageVerbose("ensureDetached");
455 if (!sep||!s)
456 return;
457 if (sep->findChild(s)>-1)
458 sep->removeChild(s);
459}

◆ initPartsSep()

void ProjectionSurfacesHelper::Imp::initPartsSep ( float zpos,
SoSeparator *& sep,
SoShape * shape )

Definition at line 351 of file ProjectionSurfacesHelper.cxx.

352{
353 theclass->messageVerbose("initPartsSep begin");
354 sep = new SoSeparator();
355 sep->ref();
356 if (zpos!=0.0f) {
357 SoTranslation * t = new SoTranslation;
358 t->translation.setValue(0.0f,0.0f,zpos);
359 sep->addChild(t);
360 }
361 sep->addChild(shape);
362 theclass->messageVerbose("initPartsSep end");
363}

Member Data Documentation

◆ attachsep

SoSeparator* ProjectionSurfacesHelper::Imp::attachsep

Definition at line 110 of file ProjectionSurfacesHelper.cxx.

◆ barrel_inner_radius

double ProjectionSurfacesHelper::Imp::barrel_inner_radius

Definition at line 142 of file ProjectionSurfacesHelper.cxx.

◆ barrel_outer_radius

double ProjectionSurfacesHelper::Imp::barrel_outer_radius

Definition at line 143 of file ProjectionSurfacesHelper.cxx.

◆ barrel_posneg_z

double ProjectionSurfacesHelper::Imp::barrel_posneg_z

Definition at line 144 of file ProjectionSurfacesHelper.cxx.

◆ barrelcylshape

SoShape* ProjectionSurfacesHelper::Imp::barrelcylshape

Definition at line 115 of file ProjectionSurfacesHelper.cxx.

◆ endcap_inner_radius

double ProjectionSurfacesHelper::Imp::endcap_inner_radius

Definition at line 147 of file ProjectionSurfacesHelper.cxx.

◆ endcap_outer_radius

double ProjectionSurfacesHelper::Imp::endcap_outer_radius

Definition at line 148 of file ProjectionSurfacesHelper.cxx.

◆ endcap_surface_length

double ProjectionSurfacesHelper::Imp::endcap_surface_length

Definition at line 146 of file ProjectionSurfacesHelper.cxx.

◆ endcap_surface_z

double ProjectionSurfacesHelper::Imp::endcap_surface_z

Definition at line 145 of file ProjectionSurfacesHelper.cxx.

◆ endcap_zasr_disttobarrelcyl

double ProjectionSurfacesHelper::Imp::endcap_zasr_disttobarrelcyl

Definition at line 149 of file ProjectionSurfacesHelper.cxx.

◆ endcap_zasr_squeezefact

double ProjectionSurfacesHelper::Imp::endcap_zasr_squeezefact

Definition at line 150 of file ProjectionSurfacesHelper.cxx.

◆ endcapinnershape

SoShape* ProjectionSurfacesHelper::Imp::endcapinnershape

Definition at line 116 of file ProjectionSurfacesHelper.cxx.

◆ endcapoutershape

SoShape* ProjectionSurfacesHelper::Imp::endcapoutershape

Definition at line 117 of file ProjectionSurfacesHelper.cxx.

◆ endcapzasrcylshape

SoShape* ProjectionSurfacesHelper::Imp::endcapzasrcylshape

Definition at line 118 of file ProjectionSurfacesHelper.cxx.

◆ material

SoMaterial* ProjectionSurfacesHelper::Imp::material

Definition at line 113 of file ProjectionSurfacesHelper.cxx.

◆ nphi

const int ProjectionSurfacesHelper::Imp::nphi = 64
static

Definition at line 151 of file ProjectionSurfacesHelper.cxx.

◆ parts

InDetProjFlags::InDetProjPartsFlags ProjectionSurfacesHelper::Imp::parts

Definition at line 111 of file ProjectionSurfacesHelper.cxx.

◆ sep

SoSeparator* ProjectionSurfacesHelper::Imp::sep

Definition at line 114 of file ProjectionSurfacesHelper.cxx.

◆ sep_barrel_central

SoSeparator* ProjectionSurfacesHelper::Imp::sep_barrel_central

Definition at line 124 of file ProjectionSurfacesHelper.cxx.

◆ sep_barrel_neg

SoSeparator* ProjectionSurfacesHelper::Imp::sep_barrel_neg

Definition at line 126 of file ProjectionSurfacesHelper.cxx.

◆ sep_barrel_pos

SoSeparator* ProjectionSurfacesHelper::Imp::sep_barrel_pos

Definition at line 125 of file ProjectionSurfacesHelper.cxx.

◆ sep_endcap_inner_neg

SoSeparator* ProjectionSurfacesHelper::Imp::sep_endcap_inner_neg

Definition at line 129 of file ProjectionSurfacesHelper.cxx.

◆ sep_endcap_inner_pos

SoSeparator* ProjectionSurfacesHelper::Imp::sep_endcap_inner_pos

Definition at line 127 of file ProjectionSurfacesHelper.cxx.

◆ sep_endcap_outer_neg

SoSeparator* ProjectionSurfacesHelper::Imp::sep_endcap_outer_neg

Definition at line 130 of file ProjectionSurfacesHelper.cxx.

◆ sep_endcap_outer_pos

SoSeparator* ProjectionSurfacesHelper::Imp::sep_endcap_outer_pos

Definition at line 128 of file ProjectionSurfacesHelper.cxx.

◆ sep_endcap_zasr_central

SoSeparator* ProjectionSurfacesHelper::Imp::sep_endcap_zasr_central

Definition at line 131 of file ProjectionSurfacesHelper.cxx.

◆ sep_endcap_zasr_neg

SoSeparator* ProjectionSurfacesHelper::Imp::sep_endcap_zasr_neg

Definition at line 133 of file ProjectionSurfacesHelper.cxx.

◆ sep_endcap_zasr_pos

SoSeparator* ProjectionSurfacesHelper::Imp::sep_endcap_zasr_pos

Definition at line 132 of file ProjectionSurfacesHelper.cxx.

◆ surfacethickness

double ProjectionSurfacesHelper::Imp::surfacethickness

Definition at line 141 of file ProjectionSurfacesHelper.cxx.

◆ theclass

ProjectionSurfacesHelper* ProjectionSurfacesHelper::Imp::theclass

Definition at line 109 of file ProjectionSurfacesHelper.cxx.


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