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

#include <SCT_FwdSpine.h>

Inheritance diagram for SCT_FwdSpine:
Collaboration diagram for SCT_FwdSpine:

Public Member Functions

 SCT_FwdSpine (const std::string &name, int ringType, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials)
const GeoMaterial * material () const
double thickness () const
double width () const
double length () const
double moduleCenterToEnd () const
virtual GeoVPhysVol * build ()
GeoVPhysVol * getVolume ()
const std::string & getName () const
std::string intToString (int i) const

Protected Member Functions

double epsilon () const

Protected Attributes

GeoVPhysVol * m_physVolume
InDetDD::SCT_DetectorManagerm_detectorManager
SCT_GeometryManagerm_geometryManager
SCT_MaterialManagerm_materials

Private Member Functions

void getParameters ()

Private Attributes

int m_ringType
const GeoMaterial * m_material = nullptr
std::string m_materialName
double m_thickness = 0.0
double m_width = 0.0
double m_length = 0.0
double m_moduleCenterToEnd = 0.0
double m_moduleCenterToEndTmp = 0.0
std::string m_name

Static Private Attributes

static const double s_epsilon = 1.0e-6 * Gaudi::Units::mm

Detailed Description

Definition at line 15 of file SCT_FwdSpine.h.

Constructor & Destructor Documentation

◆ SCT_FwdSpine()

SCT_FwdSpine::SCT_FwdSpine ( const std::string & name,
int ringType,
InDetDD::SCT_DetectorManager * detectorManager,
SCT_GeometryManager * geometryManager,
SCT_MaterialManager * materials )

Definition at line 32 of file SCT_FwdSpine.cxx.

37 : SCT_SharedComponentFactory(name, detectorManager, geometryManager, materials),
38 m_ringType(ringType)
39{
42}
virtual GeoVPhysVol * build()
void getParameters()
SCT_SharedComponentFactory(const std::string &name, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials=nullptr)

Member Function Documentation

◆ build()

GeoVPhysVol * SCT_FwdSpine::build ( )
virtual

Implements SCT_SharedComponentFactory.

Definition at line 75 of file SCT_FwdSpine.cxx.

76{
77
78
79 // Build the spine. Just a simple box. Its orientated for building a module in a trapezoid so the spine
80 // has its length along the z axis, width along the y axis and thickness along the x axis.
81
82 const GeoBox * spineShapeMain = new GeoBox( 0.5*m_thickness, 0.5*m_width, 0.5*m_length);
83
84 double position;
85
86 int HybPos;
87 if (m_ringType == 0) { HybPos = -1; } // outer module, hybrid in inner side
88 else { HybPos = 1; } //hybrid in outer side
89
90 // shift between module center and spine center.
91 position = (0.5*m_length - m_moduleCenterToEndTmp) * HybPos;
92 //position = zsmi[m_ringType].mountd - zhyb->hybysh - zhyb->hybgap0 - zssp[m_ringType].spndox;
93
94 //position = position / 2. * HybPos;
95
96 const GeoShape & spinePosMain = (*spineShapeMain << GeoTrf::TranslateZ3D(position) );
97 m_material = m_materials->getMaterialForVolume(m_materialName, spineShapeMain->volume());
98 GeoLogVol * spineLog = new GeoLogVol(getName(), &spinePosMain, m_material);
99 GeoPhysVol * spine = new GeoPhysVol(spineLog);
100
101 return spine;
102}
const std::string & getName() const
SCT_MaterialManager * m_materials
std::string m_materialName
const GeoMaterial * m_material
double m_moduleCenterToEndTmp
double m_length
double m_thickness

◆ epsilon()

double SCT_ComponentFactory::epsilon ( ) const
protectedinherited

Definition at line 38 of file SCT_ComponentFactory.cxx.

39{
40 return s_epsilon;
41}
static const double s_epsilon

◆ getName()

const std::string & SCT_ComponentFactory::getName ( ) const
inlineinherited

Definition at line 35 of file SCT_ComponentFactory.h.

35{return m_name;}

◆ getParameters()

void SCT_FwdSpine::getParameters ( )
private

Definition at line 45 of file SCT_FwdSpine.cxx.

46{
47 const SCT_ForwardModuleParameters * parameters = m_geometryManager->forwardModuleParameters();
48
49 m_materialName = parameters->fwdSpineMaterial(m_ringType);
50
51 //Main spine
52 m_thickness = parameters->fwdSpineThickness(m_ringType);
53 m_width = parameters->fwdSpineWidth(m_ringType);
54
55
56 m_moduleCenterToEndTmp = parameters->fwdSpineEndToModuleCenter(m_ringType);
57 // FIXME: More accurate definition is
58 m_moduleCenterToEnd = parameters->fwdModuleDistBtwMountPoints(m_ringType)
59 - parameters->fwdModuleMountPoint(m_ringType)
60 + parameters->fwdSpineEndLocatorToEndMount(m_ringType);
61 //m_length = parameters->fwdSpineEndToModuleCenter(m_ringType)
62 // + parameters->fwdModuleMountPoint(m_ringType)
63 // - parameters->fwdHybridMountPointToInnerEdge()
64 // - parameters->fwdModuleHybridEdgeToSpine();
65 // FIXME: Better definition would be
66 m_length = parameters->fwdModuleDistBtwMountPoints(m_ringType) + parameters->fwdSpineEndLocatorToEndMount(m_ringType)
67 - parameters->fwdHybridMountPointToInnerEdge()
68 - parameters->fwdModuleHybridEdgeToSpine(m_ringType);
69
70 // (zssp[m_ringType].spndox + zsmi[m_ringType].mountd - zhyb->hybysh - zhyb->hybgap0) * Gaudi::Units::cm;
71
72}
SCT_GeometryManager * m_geometryManager
double m_moduleCenterToEnd

◆ getVolume()

GeoVPhysVol * SCT_SharedComponentFactory::getVolume ( )
inlineinherited

Definition at line 67 of file SCT_ComponentFactory.h.

67{return m_physVolume;}

◆ intToString()

std::string SCT_ComponentFactory::intToString ( int i) const
inherited

Definition at line 30 of file SCT_ComponentFactory.cxx.

31{
32 std::ostringstream str;
33 str << i;
34 return str.str();
35}

◆ length()

double SCT_FwdSpine::length ( ) const
inline

Definition at line 30 of file SCT_FwdSpine.h.

30{return m_length;}

◆ material()

const GeoMaterial * SCT_FwdSpine::material ( ) const
inline

Definition at line 26 of file SCT_FwdSpine.h.

26{return m_material;}

◆ moduleCenterToEnd()

double SCT_FwdSpine::moduleCenterToEnd ( ) const
inline

Definition at line 32 of file SCT_FwdSpine.h.

32{return m_moduleCenterToEnd;}

◆ thickness()

double SCT_FwdSpine::thickness ( ) const
inline

Definition at line 28 of file SCT_FwdSpine.h.

28{return m_thickness;}

◆ width()

double SCT_FwdSpine::width ( ) const
inline

Definition at line 29 of file SCT_FwdSpine.h.

29{return m_width;}

Member Data Documentation

◆ m_detectorManager

InDetDD::SCT_DetectorManager* SCT_ComponentFactory::m_detectorManager
protectedinherited

Definition at line 41 of file SCT_ComponentFactory.h.

◆ m_geometryManager

SCT_GeometryManager* SCT_ComponentFactory::m_geometryManager
protectedinherited

Definition at line 42 of file SCT_ComponentFactory.h.

◆ m_length

double SCT_FwdSpine::m_length = 0.0
private

Definition at line 45 of file SCT_FwdSpine.h.

◆ m_material

const GeoMaterial* SCT_FwdSpine::m_material = nullptr
private

Definition at line 41 of file SCT_FwdSpine.h.

◆ m_materialName

std::string SCT_FwdSpine::m_materialName
private

Definition at line 42 of file SCT_FwdSpine.h.

◆ m_materials

SCT_MaterialManager* SCT_ComponentFactory::m_materials
protectedinherited

Definition at line 43 of file SCT_ComponentFactory.h.

◆ m_moduleCenterToEnd

double SCT_FwdSpine::m_moduleCenterToEnd = 0.0
private

Definition at line 46 of file SCT_FwdSpine.h.

◆ m_moduleCenterToEndTmp

double SCT_FwdSpine::m_moduleCenterToEndTmp = 0.0
private

Definition at line 47 of file SCT_FwdSpine.h.

◆ m_name

std::string SCT_ComponentFactory::m_name
privateinherited

Definition at line 49 of file SCT_ComponentFactory.h.

◆ m_physVolume

GeoVPhysVol* SCT_SharedComponentFactory::m_physVolume
protectedinherited

Definition at line 70 of file SCT_ComponentFactory.h.

◆ m_ringType

int SCT_FwdSpine::m_ringType
private

Definition at line 39 of file SCT_FwdSpine.h.

◆ m_thickness

double SCT_FwdSpine::m_thickness = 0.0
private

Definition at line 43 of file SCT_FwdSpine.h.

◆ m_width

double SCT_FwdSpine::m_width = 0.0
private

Definition at line 44 of file SCT_FwdSpine.h.

◆ s_epsilon

const double SCT_ComponentFactory::s_epsilon = 1.0e-6 * Gaudi::Units::mm
staticprivateinherited

Definition at line 50 of file SCT_ComponentFactory.h.


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