48 string volName =
name;
49 volName.erase(0, volName.rfind(
'_') + 1);
52 for (
int i = 0;
i < 6; ++
i) {
64 double halfX = convertUnits(box.halfX());
65 double halfY = convertUnits(box.halfY());
66 double halfZ = convertUnits(box.halfZ());
70 double x1 = convertUnits(trap.x1());
71 double x2 = convertUnits(trap.x2());
72 double x3 = convertUnits(trap.x3());
73 double x4 = convertUnits(trap.x4());
74 double y1 = convertUnits(trap.y1());
75 double y2 = convertUnits(trap.y2());
76 double theta = trap.theta();
77 double phi = trap.phi();
78 double halfZ = convertUnits(trap.halfZ());
79 double alpha1 = trap.alpha1();
80 double alpha2 = trap.alpha2();
81 buildTrap(x1, x2, x3, x4, y1, y2, theta, phi, halfZ, alpha1, alpha2);
84 double zhalf = convertUnits(cons.zhalf());
85 double rInMinusZ = convertUnits(cons.rInMinusZ());
86 double rOutMinusZ = convertUnits(cons.rOutMinusZ());
87 double rInPlusZ = convertUnits(cons.rInPlusZ());
88 double rOutPlusZ = convertUnits(cons.rOutPlusZ());
89 double startPhi = cons.phiFrom();
91 buildCons(zhalf, rInMinusZ, rOutMinusZ, rInPlusZ, rOutPlusZ, startPhi, deltaPhi);
94 double zhalf = convertUnits(tubs.zhalf());
95 double rIn = convertUnits(tubs.rIn());
96 double rOut = convertUnits(tubs.rOut());
97 double startPhi = tubs.startPhi();
98 double deltaPhi = tubs.deltaPhi();
99 buildTubs(zhalf, rIn, rOut, startPhi, deltaPhi);
102 double x1 = convertUnits(ptrap.x1());
103 double x2 = convertUnits(ptrap.x2());
104 double y1 = convertUnits(ptrap.y1());
105 double y2 = convertUnits(ptrap.y2());
106 double halfZ = convertUnits(ptrap.halfZ());
107 double radius = convertUnits(ptrap.radius());
108 bool atMinusZ = ptrap.atMinusZ();
112 double zhalf = convertUnits(tubs.zHalf());
113 double rIn = convertUnits(tubs.rIn());
114 double rOut = convertUnits(tubs.rOut());
115 double startPhi = tubs.startPhi();
116 double deltaPhi = tubs.deltaPhi();
117 double cutAtStart = convertUnits(tubs.cutAtStart());
118 double cutAtDelta = convertUnits(tubs.cutAtDelta());
119 bool cutInside = tubs.cutInside();
120 buildTruncTubs(zhalf, rIn, rOut, startPhi, deltaPhi, cutAtStart, cutAtDelta, cutInside);
192 cout <<
" Orientation of surfaces:";
193 std::string sideName[3] = {
"positiveSide",
"negativeSide",
"onSurface"};
194 for (
int i = 0;
i < 6; ++
i) {
A truncated tube section.
void buildTrap(double x1, double x2, double x3, double x4, double y1, double y2, double theta, double phi, double halfZ, double alpha1, double alpha2)
Geom::Phi< T > phi() const
Geom::Theta< T > theta() const
const DDSolid & solid(void) const
Returns a reference object of the solid being the shape of this LogicalPart.
unsigned short volumeno
volume number
unsigned short copyno
copy number
static const char *const name(DDSolidShape s)
void buildBox(double halfX, double halfY, double halfZ)
Surface::GlobalPoint GlobalPoint
Interface to a Trapezoid.
int masterSector
The sector for which an interpolator for this class of volumes should be built.
void buildCons(double zhalf, double rInMinusZ, double rOutMinusZ, double rInPlusZ, double rOutPlusZ, double startPhi, double deltaPhi)
DDSolidShape shape(void) const
The type of the solid.
void referencePlane(const DDExpandedView &fv)
const DDTranslation & translation() const
The absolute translation of the current node.
const GlobalPoint & center() const
Return the center of the volume.
int copyno() const
Copy number associated with the current node.
void buildTruncTubs(double zhalf, double rIn, double rOut, double startPhi, double deltaPhi, double cutAtStart, double cutAtDelta, bool cutInside)
void buildPseudoTrap(double x1, double x2, double y1, double y2, double halfZ, double radius, bool atMinusZ)
std::string name
Name of the volume.
DDSolidShape shape() const override
Shape of the solid.
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the expanded-view.
const std::string & name() const
Returns the name.
void buildTubs(double zhalf, double rIn, double rOut, double startPhi, double deltaPhi)
const DDMaterial & material(void) const
Returns a reference object of the material this LogicalPart is made of.
std::string magFile
Name of magnetic field table file.