#include <GenericTubeMaker.h>
|
| | GenericTubeMaker (const IRDBRecord *) |
| const TubeVolData & | volData () const |
| std::string | name () const |
| std::string | materialName () const |
| const GeoShape * | buildShape () |
| void | placeVolume (GeoPhysVol *parent, GeoVPhysVol *child, double zParent=0) |
| void | placeVolume (GeoFullPhysVol *fullparent, GeoVPhysVol *child, double zParent=0) |
| void | placeVolTwoSide (GeoPhysVol *parentPos, GeoPhysVol *parentNeg, GeoVPhysVol *child, double zParent=0) |
| void | placeVolTwoSide (GeoFullPhysVol *fullparentPos, GeoFullPhysVol *fullparentNeg, GeoVPhysVol *child, double zParent=0) |
|
| void | placeVolume (GeoPhysVol *parent, GeoFullPhysVol *fullparent, GeoVPhysVol *child, double zParent) |
| void | placeVolTwoSide (GeoPhysVol *parentPos, GeoPhysVol *parentNeg, GeoFullPhysVol *fullparentPos, GeoFullPhysVol *fullparentNeg, GeoVPhysVol *child, double zParent) |
Definition at line 28 of file GenericTubeMaker.h.
◆ GenericTubeMaker()
| InDetDD::GenericTubeMaker::GenericTubeMaker |
( |
const IRDBRecord * | record | ) |
|
◆ buildShape()
| const GeoShape * InDetDD::GenericTubeMaker::buildShape |
( |
| ) |
|
Definition at line 37 of file GenericTubeMaker.cxx.
37 {
38 const GeoShape* shape = nullptr;
39
43 break;
44
48 break;
49
53 break;
54
56
57 double zstart = -0.5 *
m_volData.length();
61 for (
int i = 0;
i <
m_volData.radialDivisions();
i++) {
62 double rIntermediate =
m_volData.rmax() -
i * radialDelta;
63 double reductionFactor =
m_volData.rmin() / rIntermediate;
64 shapeTmp->addPlane(zstart + reductionFactor *
m_volData.length(),
m_volData.rmin(), rIntermediate);
65 }
67 shape = shapeTmp;
68 break;
69 }
70
71 return shape;
72 }
◆ materialName()
| std::string InDetDD::GenericTubeMaker::materialName |
( |
| ) |
const |
◆ name()
| std::string InDetDD::GenericTubeMaker::name |
( |
| ) |
const |
◆ placeVolTwoSide() [1/3]
| void InDetDD::GenericTubeMaker::placeVolTwoSide |
( |
GeoFullPhysVol * | fullparentPos, |
|
|
GeoFullPhysVol * | fullparentNeg, |
|
|
GeoVPhysVol * | child, |
|
|
double | zParent = 0 ) |
Definition at line 90 of file GenericTubeMaker.cxx.
91 {
92 placeVolTwoSide(
nullptr,
nullptr, fullparentPos, fullparentNeg, child, zParent);
93 }
void placeVolTwoSide(GeoPhysVol *parentPos, GeoPhysVol *parentNeg, GeoVPhysVol *child, double zParent=0)
◆ placeVolTwoSide() [2/3]
| void InDetDD::GenericTubeMaker::placeVolTwoSide |
( |
GeoPhysVol * | parentPos, |
|
|
GeoPhysVol * | parentNeg, |
|
|
GeoFullPhysVol * | fullparentPos, |
|
|
GeoFullPhysVol * | fullparentNeg, |
|
|
GeoVPhysVol * | child, |
|
|
double | zParent ) |
|
private |
Definition at line 130 of file GenericTubeMaker.cxx.
132 {
133 for (
int iRepeat = 0; iRepeat <
m_volData.nRepeat(); iRepeat++) {
135 double zOffset =
m_volData.zMid() - zParent;
136 const bool newXform((zOffset != 0)or(iRepeat > 0));
137
138 if (parentPos) {
139 if (newXform) {
140 parentPos->add(
new GeoTransform(GeoTrf::TranslateZ3D(zOffset) * GeoTrf::RotateZ3D(
phi)));
141 }
142 parentPos->add(child);
143 } else if (fullparentPos) {
144 if (newXform) {
145 fullparentPos->add(
new GeoTransform(GeoTrf::TranslateZ3D(zOffset) * GeoTrf::RotateZ3D(
phi)));
146 }
147 fullparentPos->add(child);
148 }
149
150
152 GeoTransform* xformNeg = new GeoTransform(GeoTrf::RotateY3D(180 * Gaudi::Units::deg) * GeoTrf::TranslateZ3D(
153 zOffset) * GeoTrf::RotateZ3D(
phi));
154 if (parentNeg) {
155 parentNeg->add(xformNeg);
156 parentNeg->add(child);
157 } else {
158 fullparentNeg->add(xformNeg);
159 fullparentNeg->add(child);
160 }
161 }
162 }
163 }
Scalar phi() const
phi method
◆ placeVolTwoSide() [3/3]
| void InDetDD::GenericTubeMaker::placeVolTwoSide |
( |
GeoPhysVol * | parentPos, |
|
|
GeoPhysVol * | parentNeg, |
|
|
GeoVPhysVol * | child, |
|
|
double | zParent = 0 ) |
◆ placeVolume() [1/3]
| void InDetDD::GenericTubeMaker::placeVolume |
( |
GeoFullPhysVol * | fullparent, |
|
|
GeoVPhysVol * | child, |
|
|
double | zParent = 0 ) |
Definition at line 80 of file GenericTubeMaker.cxx.
80 {
82 }
void placeVolume(GeoPhysVol *parent, GeoVPhysVol *child, double zParent=0)
◆ placeVolume() [2/3]
| void InDetDD::GenericTubeMaker::placeVolume |
( |
GeoPhysVol * | parent, |
|
|
GeoFullPhysVol * | fullparent, |
|
|
GeoVPhysVol * | child, |
|
|
double | zParent ) |
|
private |
Definition at line 96 of file GenericTubeMaker.cxx.
96 {
97 for (
int iRepeat = 0; iRepeat <
m_volData.nRepeat(); iRepeat++) {
99
100 GeoTransform* xform = nullptr;
101 double zOffset =
m_volData.zMid() - zParent;
102 if (zOffset != 0 || iRepeat > 0) {
103 xform =
new GeoTransform(GeoTrf::TranslateZ3D(zOffset) * GeoTrf::RotateZ3D(
phi));
104 }
105
106 if (parent) {
107 if (xform)
parent->add(xform);
109 } else {
110 if (xform) fullparent->add(xform);
111 fullparent->add(child);
112 }
113
114
116 GeoTransform* xformNeg = new GeoTransform(GeoTrf::RotateY3D(180 * Gaudi::Units::deg) * GeoTrf::TranslateZ3D(
117 zOffset) * GeoTrf::RotateZ3D(
phi));
118 if (parent) {
121 } else {
122 fullparent->add(xformNeg);
123 fullparent->add(child);
124 }
125 }
126 }
127 }
◆ placeVolume() [3/3]
| void InDetDD::GenericTubeMaker::placeVolume |
( |
GeoPhysVol * | parent, |
|
|
GeoVPhysVol * | child, |
|
|
double | zParent = 0 ) |
◆ volData()
| const TubeVolData & InDetDD::GenericTubeMaker::volData |
( |
| ) |
const |
|
inline |
◆ m_record
| const IRDBRecord* InDetDD::GenericTubeMaker::m_record |
|
private |
◆ m_volData
The documentation for this class was generated from the following files: