ATLAS Offline Software
SCT_InterLink.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef SCT_GEOMODEL_SCT_INTERLINK_H
6 #define SCT_GEOMODEL_SCT_INTERLINK_H
7 
9 
10 #include <string>
11 #include <vector>
12 
13 #include "GeoModelKernel/GeoPhysVol.h"
14 #include "GeoModelKernel/GeoTubs.h"
15 #include "GeoModelKernel/GeoTube.h"
16 #include "GeoModelKernel/GeoTransform.h"
17 
18 class GeoMaterial;
19 
21 {
22 
23 public:
24  SCT_InterLink(const std::string & name,
25  InDetDD::SCT_DetectorManager* detectorManager,
26  SCT_GeometryManager* geometryManager,
27  SCT_MaterialManager* materials);
29 
30 public:
31  // const GeoMaterial * material() const {return m_material;}
32  double innerRadius() const {return m_innerRadius;}
33  double outerRadius() const {return m_outerRadius;}
34  double length() const {return m_length;}
35 
36 private:
37  void getParameters();
38  virtual GeoVPhysVol * build();
39 
40  // Following are for interlink
41  std::string m_materialName;
42  double m_innerRadius = 0.0;
43  double m_outerRadius = 0.0;
44  double m_length = 0.0;
45  double m_dPhi = 0.0;
46  double m_phiPos = 0.0;
47  int m_nRepeat = 0;
48 
49  // Following are for FSI flange
50  bool m_includeFSIFlange = false;
51  double m_innerRadiusFSIFlange = 0.0;
52  double m_outerRadiusFSIFlange = 0.0;
54 
55  // Following are for B6 bearing
56  std::string m_materialNameBearing;
57  double m_innerRadiusBearing = 0.0;
58  double m_outerRadiusBearing = 0.0;
59  double m_lengthBearing = 0.0;
60  double m_dPhiBearing = 0.0;
61  double m_phiPosBearing = 0.0;
63 
64  GeoIntrusivePtr<const GeoTube> m_interLinkShape{};
65  GeoIntrusivePtr<const GeoLogVol> m_interLinkLog{};
66  GeoIntrusivePtr<GeoPhysVol> m_interLink{};
67  GeoIntrusivePtr<const GeoTubs> m_interLinkSegShape{};
68  GeoIntrusivePtr<const GeoLogVol> m_interLinkSegLog{};
69  GeoIntrusivePtr<GeoPhysVol> m_interLinkSeg{};
70  GeoIntrusivePtr<const GeoTubs> m_bearingShape{};
71  GeoIntrusivePtr<const GeoLogVol> m_bearingLog{};
72  GeoIntrusivePtr<GeoPhysVol> m_bearing{};
73  GeoIntrusivePtr<const GeoTubs> m_FSIFlangeShape{};
74  GeoIntrusivePtr<const GeoLogVol> m_FSIFlangeLog{};
75  GeoIntrusivePtr<GeoPhysVol> m_FSIFlange{};
76  std::vector<GeoIntrusivePtr<GeoTransform>> m_geoTransforms{};
77 };
78 
79 #endif // SCT_GEOMODEL_SCT_INTERLINK_H
80 
SCT_MaterialManager
Definition: SCT_MaterialManager.h:21
InDetDD::SCT_DetectorManager
Definition: SCT_DetectorManager.h:49
SCT_ComponentFactory.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
SCT_SharedComponentFactory
Definition: SCT_ComponentFactory.h:56
SCT_GeometryManager
Definition: SCT_GeometryManager.h:25