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

#include <SCT_InterLink.h>

Inheritance diagram for SCT_InterLink:
Collaboration diagram for SCT_InterLink:

Public Member Functions

 SCT_InterLink (const std::string &name, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials)
 
 ~SCT_InterLink ()
 
double innerRadius () const
 
double outerRadius () const
 
double length () const
 
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 ()
 
virtual GeoVPhysVol * build ()
 

Private Attributes

std::string m_materialName
 
double m_innerRadius = 0.0
 
double m_outerRadius = 0.0
 
double m_length = 0.0
 
double m_dPhi = 0.0
 
double m_phiPos = 0.0
 
int m_nRepeat = 0
 
bool m_includeFSIFlange = false
 
double m_innerRadiusFSIFlange = 0.0
 
double m_outerRadiusFSIFlange = 0.0
 
std::string m_materialNameFSIFlange
 
std::string m_materialNameBearing
 
double m_innerRadiusBearing = 0.0
 
double m_outerRadiusBearing = 0.0
 
double m_lengthBearing = 0.0
 
double m_dPhiBearing = 0.0
 
double m_phiPosBearing = 0.0
 
int m_nRepeatBearing = 0
 
GeoIntrusivePtr< const GeoTube > m_interLinkShape {}
 
GeoIntrusivePtr< const GeoLogVol > m_interLinkLog {}
 
GeoIntrusivePtr< GeoPhysVol > m_interLink {}
 
GeoIntrusivePtr< const GeoTubs > m_interLinkSegShape {}
 
GeoIntrusivePtr< const GeoLogVol > m_interLinkSegLog {}
 
GeoIntrusivePtr< GeoPhysVol > m_interLinkSeg {}
 
GeoIntrusivePtr< const GeoTubs > m_bearingShape {}
 
GeoIntrusivePtr< const GeoLogVol > m_bearingLog {}
 
GeoIntrusivePtr< GeoPhysVol > m_bearing {}
 
GeoIntrusivePtr< const GeoTubs > m_FSIFlangeShape {}
 
GeoIntrusivePtr< const GeoLogVol > m_FSIFlangeLog {}
 
GeoIntrusivePtr< GeoPhysVol > m_FSIFlange {}
 
std::vector< GeoIntrusivePtr< GeoTransform > > m_geoTransforms {}
 
std::string m_name
 

Static Private Attributes

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

Detailed Description

Definition at line 20 of file SCT_InterLink.h.

Constructor & Destructor Documentation

◆ SCT_InterLink()

SCT_InterLink::SCT_InterLink ( const std::string &  name,
InDetDD::SCT_DetectorManager detectorManager,
SCT_GeometryManager geometryManager,
SCT_MaterialManager materials 
)

Definition at line 19 of file SCT_InterLink.cxx.

23  : SCT_SharedComponentFactory(name, detectorManager, geometryManager, materials),
24  m_interLinkShape(nullptr),
25  m_interLinkLog(nullptr),
26  m_interLink(nullptr),
27  m_interLinkSegShape(nullptr),
28  m_interLinkSegLog(nullptr),
29  m_interLinkSeg(nullptr),
30  m_bearingShape(nullptr),
31  m_bearingLog(nullptr),
32  m_bearing(nullptr),
33  m_FSIFlangeShape(nullptr),
34  m_FSIFlangeLog(nullptr),
35  m_FSIFlange(nullptr)
36 {
37  getParameters();
39 }

◆ ~SCT_InterLink()

SCT_InterLink::~SCT_InterLink ( )
default

Member Function Documentation

◆ build()

GeoVPhysVol * SCT_InterLink::build ( )
privatevirtual

Implements SCT_SharedComponentFactory.

Definition at line 84 of file SCT_InterLink.cxx.

85 {
86  // Make the interlink.
87  if(m_nRepeat == 1) {
88  // For old geometry interlink is a simple tube of material
90  const GeoMaterial* material = m_materials->getMaterialForVolume(m_materialName, m_interLinkShape->volume());
91  if(!material) {material = m_materials->getMaterial(m_materialName);}
92  m_interLinkLog = new GeoLogVol(getName(), m_interLinkShape, material);
93  m_interLink = new GeoPhysVol(m_interLinkLog);
94  }
95 
96  else {
97  // In updated version we make air tube containing interlink segments and B6 bearings
98  // And also include FSI flange segments if defined
99  // Air tube:
102  m_interLink = new GeoPhysVol(m_interLinkLog);
103 
104  // Interlink segments:
107  m_interLinkSeg = new GeoPhysVol(m_interLinkSegLog);
108 
109  for(int i=0; i<m_nRepeat; i++) {
110  double interlinkAngle = m_phiPos + (i * 360./m_nRepeat)*Gaudi::Units::deg;
111  GeoTransform* geoTransform = new GeoTransform(GeoTrf::RotateZ3D(interlinkAngle));
112  m_geoTransforms.push_back(geoTransform);
113  m_interLink->add(geoTransform);
115  }
116 
117  // B6 bearings
120  m_bearing = new GeoPhysVol(m_bearingLog);
121 
122  for(int i=0; i<m_nRepeatBearing; i++) {
123  double bearingAngle = m_phiPosBearing + (i * 360./m_nRepeatBearing)*Gaudi::Units::deg;
124  GeoTransform* geoTransform = new GeoTransform(GeoTrf::RotateZ3D(bearingAngle));
125  m_geoTransforms.push_back(geoTransform);
126  m_interLink->add(geoTransform);
127  m_interLink->add(m_bearing);
128  }
129 
130  // FSI Flange segments:
131  // These exactly fill gaps between interlink segments, with smaller radial extent
132  if(m_includeFSIFlange) {
133  double dPhiFSI = (360./m_nRepeat)*Gaudi::Units::deg - m_dPhi;
136  m_FSIFlange = new GeoPhysVol(m_FSIFlangeLog);
137 
138  for(int i=0; i<m_nRepeat; i++) {
139  double phiPosFSI = m_phiPos + (180./m_nRepeat)*Gaudi::Units::deg;
140  double FSIFlangeAngle = phiPosFSI + (i * 360./m_nRepeat)*Gaudi::Units::deg;
141  GeoTransform* geoTransform = new GeoTransform(GeoTrf::RotateZ3D(FSIFlangeAngle));
142  m_geoTransforms.push_back(geoTransform);
143  m_interLink->add(geoTransform);
144  m_interLink->add(m_FSIFlange);
145  }
146  }
147  }
148 
149  return m_interLink;
150 }

◆ epsilon()

double SCT_ComponentFactory::epsilon ( ) const
protectedinherited

Definition at line 37 of file SCT_ComponentFactory.cxx.

38 {
39  return s_epsilon;
40 }

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

Definition at line 44 of file SCT_InterLink.cxx.

45 {
47 
48  // Interlink parameters
49  m_materialName = parameters->interLinkMaterial();
50  m_length = parameters->interLinkDeltaZ();
51  m_innerRadius = parameters->interLinkInnerRadius();
52  m_outerRadius = parameters->interLinkOuterRadius();
53  m_dPhi = parameters->interLinkDeltaPhi();
54  m_phiPos = parameters->interLinkPhiPos();
55  m_nRepeat = parameters->interLinkNRepeat();
56 
57  // FSIFlange parameters: only for non-uniform interlink
58  if(m_nRepeat > 1) {
59  m_includeFSIFlange = parameters->includeFSI();
60  }
61  else {
62  m_includeFSIFlange = false;
63  }
64  if(m_includeFSIFlange) {
65  m_innerRadiusFSIFlange = parameters->fsiFlangeInnerRadius();
66  m_outerRadiusFSIFlange = parameters->fsiFlangeOuterRadius();
67  m_materialNameFSIFlange = parameters->fsiFlangeMaterial();
68  }
69 
70  // B6 bearing parameters: only for non-uniform interlink
71  if(m_nRepeat > 1) {
72  m_materialNameBearing = parameters->bearingMaterial();
75  m_outerRadiusBearing = parameters->thermalShieldBulkheadInnerRadius();
76  m_dPhiBearing = parameters->bearingDeltaPhi();
77  m_phiPosBearing = parameters->bearingPhiPos();
78  m_nRepeatBearing = parameters->bearingNRepeat();
79  }
80 
81 }

◆ getVolume()

GeoVPhysVol* SCT_SharedComponentFactory::getVolume ( )
inlineinherited

Definition at line 67 of file SCT_ComponentFactory.h.

67 {return m_physVolume;}

◆ innerRadius()

double SCT_InterLink::innerRadius ( ) const
inline

Definition at line 32 of file SCT_InterLink.h.

32 {return m_innerRadius;}

◆ intToString()

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

Definition at line 29 of file SCT_ComponentFactory.cxx.

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

◆ length()

double SCT_InterLink::length ( ) const
inline

Definition at line 34 of file SCT_InterLink.h.

34 {return m_length;}

◆ outerRadius()

double SCT_InterLink::outerRadius ( ) const
inline

Definition at line 33 of file SCT_InterLink.h.

33 {return m_outerRadius;}

Member Data Documentation

◆ m_bearing

GeoIntrusivePtr<GeoPhysVol> SCT_InterLink::m_bearing {}
private

Definition at line 72 of file SCT_InterLink.h.

◆ m_bearingLog

GeoIntrusivePtr<const GeoLogVol> SCT_InterLink::m_bearingLog {}
private

Definition at line 71 of file SCT_InterLink.h.

◆ m_bearingShape

GeoIntrusivePtr<const GeoTubs> SCT_InterLink::m_bearingShape {}
private

Definition at line 70 of file SCT_InterLink.h.

◆ m_detectorManager

InDetDD::SCT_DetectorManager* SCT_ComponentFactory::m_detectorManager
protectedinherited

Definition at line 41 of file SCT_ComponentFactory.h.

◆ m_dPhi

double SCT_InterLink::m_dPhi = 0.0
private

Definition at line 45 of file SCT_InterLink.h.

◆ m_dPhiBearing

double SCT_InterLink::m_dPhiBearing = 0.0
private

Definition at line 60 of file SCT_InterLink.h.

◆ m_FSIFlange

GeoIntrusivePtr<GeoPhysVol> SCT_InterLink::m_FSIFlange {}
private

Definition at line 75 of file SCT_InterLink.h.

◆ m_FSIFlangeLog

GeoIntrusivePtr<const GeoLogVol> SCT_InterLink::m_FSIFlangeLog {}
private

Definition at line 74 of file SCT_InterLink.h.

◆ m_FSIFlangeShape

GeoIntrusivePtr<const GeoTubs> SCT_InterLink::m_FSIFlangeShape {}
private

Definition at line 73 of file SCT_InterLink.h.

◆ m_geometryManager

SCT_GeometryManager* SCT_ComponentFactory::m_geometryManager
protectedinherited

Definition at line 42 of file SCT_ComponentFactory.h.

◆ m_geoTransforms

std::vector<GeoIntrusivePtr<GeoTransform> > SCT_InterLink::m_geoTransforms {}
private

Definition at line 76 of file SCT_InterLink.h.

◆ m_includeFSIFlange

bool SCT_InterLink::m_includeFSIFlange = false
private

Definition at line 50 of file SCT_InterLink.h.

◆ m_innerRadius

double SCT_InterLink::m_innerRadius = 0.0
private

Definition at line 42 of file SCT_InterLink.h.

◆ m_innerRadiusBearing

double SCT_InterLink::m_innerRadiusBearing = 0.0
private

Definition at line 57 of file SCT_InterLink.h.

◆ m_innerRadiusFSIFlange

double SCT_InterLink::m_innerRadiusFSIFlange = 0.0
private

Definition at line 51 of file SCT_InterLink.h.

◆ m_interLink

GeoIntrusivePtr<GeoPhysVol> SCT_InterLink::m_interLink {}
private

Definition at line 66 of file SCT_InterLink.h.

◆ m_interLinkLog

GeoIntrusivePtr<const GeoLogVol> SCT_InterLink::m_interLinkLog {}
private

Definition at line 65 of file SCT_InterLink.h.

◆ m_interLinkSeg

GeoIntrusivePtr<GeoPhysVol> SCT_InterLink::m_interLinkSeg {}
private

Definition at line 69 of file SCT_InterLink.h.

◆ m_interLinkSegLog

GeoIntrusivePtr<const GeoLogVol> SCT_InterLink::m_interLinkSegLog {}
private

Definition at line 68 of file SCT_InterLink.h.

◆ m_interLinkSegShape

GeoIntrusivePtr<const GeoTubs> SCT_InterLink::m_interLinkSegShape {}
private

Definition at line 67 of file SCT_InterLink.h.

◆ m_interLinkShape

GeoIntrusivePtr<const GeoTube> SCT_InterLink::m_interLinkShape {}
private

Definition at line 64 of file SCT_InterLink.h.

◆ m_length

double SCT_InterLink::m_length = 0.0
private

Definition at line 44 of file SCT_InterLink.h.

◆ m_lengthBearing

double SCT_InterLink::m_lengthBearing = 0.0
private

Definition at line 59 of file SCT_InterLink.h.

◆ m_materialName

std::string SCT_InterLink::m_materialName
private

Definition at line 41 of file SCT_InterLink.h.

◆ m_materialNameBearing

std::string SCT_InterLink::m_materialNameBearing
private

Definition at line 56 of file SCT_InterLink.h.

◆ m_materialNameFSIFlange

std::string SCT_InterLink::m_materialNameFSIFlange
private

Definition at line 53 of file SCT_InterLink.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_nRepeat

int SCT_InterLink::m_nRepeat = 0
private

Definition at line 47 of file SCT_InterLink.h.

◆ m_nRepeatBearing

int SCT_InterLink::m_nRepeatBearing = 0
private

Definition at line 62 of file SCT_InterLink.h.

◆ m_outerRadius

double SCT_InterLink::m_outerRadius = 0.0
private

Definition at line 43 of file SCT_InterLink.h.

◆ m_outerRadiusBearing

double SCT_InterLink::m_outerRadiusBearing = 0.0
private

Definition at line 58 of file SCT_InterLink.h.

◆ m_outerRadiusFSIFlange

double SCT_InterLink::m_outerRadiusFSIFlange = 0.0
private

Definition at line 52 of file SCT_InterLink.h.

◆ m_phiPos

double SCT_InterLink::m_phiPos = 0.0
private

Definition at line 46 of file SCT_InterLink.h.

◆ m_phiPosBearing

double SCT_InterLink::m_phiPosBearing = 0.0
private

Definition at line 61 of file SCT_InterLink.h.

◆ m_physVolume

GeoVPhysVol* SCT_SharedComponentFactory::m_physVolume
protectedinherited

Definition at line 70 of file SCT_ComponentFactory.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_ComponentFactory::m_name
std::string m_name
Definition: SCT_ComponentFactory.h:49
deg
#define deg
Definition: SbPolyhedron.cxx:17
python.SystemOfUnits.radian
int radian
Definition: SystemOfUnits.py:104
lumiFormat.i
int i
Definition: lumiFormat.py:92
SCT_MaterialManager::gasMaterial
const GeoMaterial * gasMaterial() const
Definition: SCT_MaterialManager.cxx:80
SCT_GeometryManager::barrelParameters
const SCT_BarrelParameters * barrelParameters() const
Definition: SCT_GeometryManager.cxx:78
SCT_ComponentFactory::s_epsilon
static const double s_epsilon
Definition: SCT_ComponentFactory.h:50
SCT_MaterialManager::getMaterialForVolume
const GeoMaterial * getMaterialForVolume(const std::string &materialName, double volume)
Definition: SCT_MaterialManager.cxx:72
SCT_ComponentFactory::m_materials
SCT_MaterialManager * m_materials
Definition: SCT_ComponentFactory.h:43
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
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_MaterialManager::getMaterial
const GeoMaterial * getMaterial(const std::string &materialName)
Definition: SCT_MaterialManager.cxx:51
SCT_BarrelParameters
Definition: SCT_BarrelParameters.h:12
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