ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
SCT_FwdSubSpine Class Reference

#include <SCT_FwdSubSpine.h>

Inheritance diagram for SCT_FwdSubSpine:
Collaboration diagram for SCT_FwdSubSpine:

Public Member Functions

 SCT_FwdSubSpine (const std::string &name, int ringType, int spineSide, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials)
 
const GeoMaterial * material () const
 
double innerThickness () const
 
double innerWidth () const
 
double innerLength () const
 
double middleThickness () const
 
double middleWidth () const
 
double middleLength () const
 
double outerThickness () const
 
double outerWidth () const
 
double outerLength () 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
 
int m_spineSide
 
const GeoMaterial * m_material = nullptr
 
double m_thickness1 = 0.0
 
double m_width1 = 0.0
 
double m_length1 = 0.0
 
double m_thickness2 = 0.0
 
double m_width2 = 0.0
 
double m_length2 = 0.0
 
double m_thickness3 = 0.0
 
double m_width3 = 0.0
 
double m_length3 = 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 19 of file SCT_FwdSubSpine.h.

Constructor & Destructor Documentation

◆ SCT_FwdSubSpine()

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

Definition at line 37 of file SCT_FwdSubSpine.cxx.

42  : SCT_SharedComponentFactory(name, detectorManager, geometryManager, materials),
43  m_ringType(ringType), m_spineSide(spineSide)
44 {
45  getParameters();
47 }

Member Function Documentation

◆ build()

GeoVPhysVol * SCT_FwdSubSpine::build ( )
virtual

Implements SCT_SharedComponentFactory.

Definition at line 75 of file SCT_FwdSubSpine.cxx.

76 {
77  // x,y,z are in the geomodel module coordinates
78 
80 
81  const GeoBox * spineShape1 = new GeoBox( m_thickness1/2., m_width1/2., m_length1/2.);
82  const GeoBox * spineShape2 = nullptr;
83  if (m_ringType != 3) spineShape2 = new GeoBox( m_thickness2/2., m_width2/2., m_length2/2.);
84  const GeoBox * spineShape3 = new GeoBox( m_thickness3/2., m_width3/2., m_length3/2.);
85 
86 
87  double position, position2;
88 
89  int HybPos;
90 
91  if (m_ringType == 0) { HybPos = -1; } // outer module, hybrid in inner side
92  else { HybPos = 1; } //hybrid in outer side
93 
94 
95  double widthMain = parameters->fwdSpineWidth(m_ringType); // width of main spine
96 
97 
98  const GeoShape * subSpineMiddle = nullptr;
99 
100  // Inner sub spine
101  double mountPosition = parameters->fwdModuleMountPoint(m_ringType); // mount point to physics center
102  position = mountPosition - parameters->fwdSubSpineInnerRefDist(m_ringType) - 0.5*m_length1;
103  position = position * HybPos;
104  position2 = (widthMain + m_width1) / 2.;
105  const GeoShape & spinePos1 = (*spineShape1 << GeoTrf::TranslateY3D(m_spineSide * position2) << GeoTrf::TranslateZ3D(position) );
106 
107 
108  // Middle sub spine
109  // Not defined for inner module.
110  if (m_ringType != 3) {
111  position = mountPosition - parameters->fwdSubSpineMiddleRefDist(m_ringType) - 0.5*m_length2;
112  position = position * HybPos;
113  position2 = (widthMain + m_width2) / 2.;
114  const GeoShape & spinePos2 = (*spineShape2 << GeoTrf::TranslateY3D(m_spineSide * position2) << GeoTrf::TranslateZ3D(position) );
115  subSpineMiddle = &spinePos2;
116  }
117 
118  // Outer sub spine
119  position = mountPosition - parameters->fwdSubSpineOuterRefDist(m_ringType) - 0.5*m_length3;
120  position = position * HybPos;
121  position2 = (widthMain + m_width3) / 2.;
122  const GeoShape & spinePos3 = (*spineShape3 << GeoTrf::TranslateY3D(m_spineSide * position2) << GeoTrf::TranslateZ3D(position) );
123 
124  const GeoShapeUnion & spineTmp = (spinePos1).add(spinePos3);
125  GeoLogVol * spineLog = nullptr;
126  if (m_ringType != 3) {
127  const GeoShapeUnion & spineTmp2 = spineTmp.add(*subSpineMiddle);
128  spineLog = new GeoLogVol(getName(), &spineTmp2, m_material);
129  } else {
130  spineLog = new GeoLogVol(getName(), &spineTmp, m_material);
131  }
132 
133  GeoPhysVol * spine = new GeoPhysVol(spineLog);
134 
135  return spine;
136 }

◆ epsilon()

double SCT_ComponentFactory::epsilon ( ) const
protectedinherited

Definition at line 38 of file SCT_ComponentFactory.cxx.

39 {
40  return s_epsilon;
41 }

◆ 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_FwdSubSpine::getParameters ( )
private

Definition at line 52 of file SCT_FwdSubSpine.cxx.

53 {
55 
56  m_material = m_materials->getMaterial(parameters->fwdSubSpineMaterial(m_ringType));
57 
58  // Width is in direction of module width (ie long axis of arm)
59  // Length is in direction of module length (ie short axis of arm)
60 
61  //Inner subspine
62  m_thickness1 = parameters->fwdSpineThickness(m_ringType);
63  m_width1 = parameters->fwdSubSpineInnerWidth(m_ringType);
64  m_length1 = parameters->fwdSubSpineInnerLength(m_ringType);
65  //Middle subspine
66  m_thickness2 = parameters->fwdSpineThickness(m_ringType);
67  m_width2 = parameters->fwdSubSpineMiddleWidth(m_ringType);
68  m_length2 = parameters->fwdSubSpineMiddleLength(m_ringType);
69  //Outer subspine
70  m_thickness3 = parameters->fwdSpineThickness(m_ringType);
71  m_width3 = parameters->fwdSubSpineOuterWidth(m_ringType);
72  m_length3 = parameters->fwdSubSpineOuterLength(m_ringType);
73 }

◆ getVolume()

GeoVPhysVol* SCT_SharedComponentFactory::getVolume ( )
inlineinherited

Definition at line 67 of file SCT_ComponentFactory.h.

67 {return m_physVolume;}

◆ innerLength()

double SCT_FwdSubSpine::innerLength ( ) const
inline

Definition at line 34 of file SCT_FwdSubSpine.h.

34 {return m_length1;}

◆ innerThickness()

double SCT_FwdSubSpine::innerThickness ( ) const
inline

Definition at line 32 of file SCT_FwdSubSpine.h.

32 {return m_thickness1;}

◆ innerWidth()

double SCT_FwdSubSpine::innerWidth ( ) const
inline

Definition at line 33 of file SCT_FwdSubSpine.h.

33 {return m_width1;}

◆ 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 }

◆ material()

const GeoMaterial* SCT_FwdSubSpine::material ( ) const
inline

Definition at line 29 of file SCT_FwdSubSpine.h.

29 {return m_material;}

◆ middleLength()

double SCT_FwdSubSpine::middleLength ( ) const
inline

Definition at line 38 of file SCT_FwdSubSpine.h.

38 {return m_length2;}

◆ middleThickness()

double SCT_FwdSubSpine::middleThickness ( ) const
inline

Definition at line 36 of file SCT_FwdSubSpine.h.

36 {return m_thickness2;}

◆ middleWidth()

double SCT_FwdSubSpine::middleWidth ( ) const
inline

Definition at line 37 of file SCT_FwdSubSpine.h.

37 {return m_width2;}

◆ outerLength()

double SCT_FwdSubSpine::outerLength ( ) const
inline

Definition at line 42 of file SCT_FwdSubSpine.h.

42 {return m_length3;}

◆ outerThickness()

double SCT_FwdSubSpine::outerThickness ( ) const
inline

Definition at line 40 of file SCT_FwdSubSpine.h.

40 {return m_thickness3;}

◆ outerWidth()

double SCT_FwdSubSpine::outerWidth ( ) const
inline

Definition at line 41 of file SCT_FwdSubSpine.h.

41 {return m_width3;}

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_length1

double SCT_FwdSubSpine::m_length1 = 0.0
private

Definition at line 55 of file SCT_FwdSubSpine.h.

◆ m_length2

double SCT_FwdSubSpine::m_length2 = 0.0
private

Definition at line 59 of file SCT_FwdSubSpine.h.

◆ m_length3

double SCT_FwdSubSpine::m_length3 = 0.0
private

Definition at line 63 of file SCT_FwdSubSpine.h.

◆ m_material

const GeoMaterial* SCT_FwdSubSpine::m_material = nullptr
private

Definition at line 51 of file SCT_FwdSubSpine.h.

◆ m_materials

SCT_MaterialManager* SCT_ComponentFactory::m_materials
protectedinherited

Definition at line 43 of file SCT_ComponentFactory.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_FwdSubSpine::m_ringType
private

Definition at line 49 of file SCT_FwdSubSpine.h.

◆ m_spineSide

int SCT_FwdSubSpine::m_spineSide
private

Definition at line 50 of file SCT_FwdSubSpine.h.

◆ m_thickness1

double SCT_FwdSubSpine::m_thickness1 = 0.0
private

Definition at line 53 of file SCT_FwdSubSpine.h.

◆ m_thickness2

double SCT_FwdSubSpine::m_thickness2 = 0.0
private

Definition at line 57 of file SCT_FwdSubSpine.h.

◆ m_thickness3

double SCT_FwdSubSpine::m_thickness3 = 0.0
private

Definition at line 61 of file SCT_FwdSubSpine.h.

◆ m_width1

double SCT_FwdSubSpine::m_width1 = 0.0
private

Definition at line 54 of file SCT_FwdSubSpine.h.

◆ m_width2

double SCT_FwdSubSpine::m_width2 = 0.0
private

Definition at line 58 of file SCT_FwdSubSpine.h.

◆ m_width3

double SCT_FwdSubSpine::m_width3 = 0.0
private

Definition at line 62 of file SCT_FwdSubSpine.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:
SCT_ComponentFactory::m_geometryManager
SCT_GeometryManager * m_geometryManager
Definition: SCT_ComponentFactory.h:42
SCT_GeometryManager::forwardModuleParameters
const SCT_ForwardModuleParameters * forwardModuleParameters() const
Definition: SCT_GeometryManager.cxx:91
SCT_ComponentFactory::m_name
std::string m_name
Definition: SCT_ComponentFactory.h:49
SCT_FwdSubSpine::m_ringType
int m_ringType
Definition: SCT_FwdSubSpine.h:49
SCT_FwdSubSpine::m_width3
double m_width3
Definition: SCT_FwdSubSpine.h:62
SCT_FwdSubSpine::m_width1
double m_width1
Definition: SCT_FwdSubSpine.h:54
SCT_FwdSubSpine::m_length3
double m_length3
Definition: SCT_FwdSubSpine.h:63
SCT_FwdSubSpine::m_width2
double m_width2
Definition: SCT_FwdSubSpine.h:58
SCT_FwdSubSpine::m_thickness3
double m_thickness3
Definition: SCT_FwdSubSpine.h:61
SCT_FwdSubSpine::m_material
const GeoMaterial * m_material
Definition: SCT_FwdSubSpine.h:51
SCT_ForwardModuleParameters
Definition: SCT_ForwardModuleParameters.h:12
lumiFormat.i
int i
Definition: lumiFormat.py:85
SCT_FwdSubSpine::getParameters
void getParameters()
Definition: SCT_FwdSubSpine.cxx:52
add
bool add(const std::string &hname, TKey *tobj)
Definition: fastadd.cxx:55
SCT_FwdSubSpine::build
virtual GeoVPhysVol * build()
Definition: SCT_FwdSubSpine.cxx:75
SCT_FwdSubSpine::m_spineSide
int m_spineSide
Definition: SCT_FwdSubSpine.h:50
SCT_FwdSubSpine::m_length2
double m_length2
Definition: SCT_FwdSubSpine.h:59
SCT_ComponentFactory::s_epsilon
static const double s_epsilon
Definition: SCT_ComponentFactory.h:50
SCT_ComponentFactory::m_materials
SCT_MaterialManager * m_materials
Definition: SCT_ComponentFactory.h:43
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
SCT_FwdSubSpine::m_thickness2
double m_thickness2
Definition: SCT_FwdSubSpine.h:57
SCT_SharedComponentFactory::m_physVolume
GeoVPhysVol * m_physVolume
Definition: SCT_ComponentFactory.h:70
SCT_SharedComponentFactory::SCT_SharedComponentFactory
SCT_SharedComponentFactory(const std::string &name, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials=nullptr)
Definition: SCT_ComponentFactory.h:59
SCT_FwdSubSpine::m_thickness1
double m_thickness1
Definition: SCT_FwdSubSpine.h:53
SCT_MaterialManager::getMaterial
const GeoMaterial * getMaterial(const std::string &materialName)
Definition: SCT_MaterialManager.cxx:40
python.CaloScaleNoiseConfig.str
str
Definition: CaloScaleNoiseConfig.py:78
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
str
Definition: BTagTrackIpAccessor.cxx:11
SCT_ComponentFactory::getName
const std::string & getName() const
Definition: SCT_ComponentFactory.h:35
SCT_FwdSubSpine::m_length1
double m_length1
Definition: SCT_FwdSubSpine.h:55