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();
94 double zhalf = convertUnits(tubs.zhalf());
95 double rIn = convertUnits(tubs.rIn());
96 double rOut = convertUnits(tubs.rOut());
97 double startPhi = tubs.startPhi();
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();
117 double cutAtStart = convertUnits(tubs.cutAtStart());
118 double cutAtDelta = convertUnits(tubs.cutAtDelta());
119 bool cutInside = tubs.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.
const DDTranslation & translation() const
The absolute translation of the current node.
void buildTrap(double x1, double x2, double x3, double x4, double y1, double y2, double theta, double phi, double halfZ, double alpha1, double alpha2)
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the expanded-view.
Geom::Phi< T > phi() const
const GlobalPoint & center() const
Return the center of the volume.
unsigned short volumeno
volume number
unsigned short copyno
copy number
static const char *const name(DDSolidShape s)
const std::string & name() const
Returns the name.
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)
void referencePlane(const DDExpandedView &fv)
DDSolidShape shape(void) const
The type of the solid.
const DDMaterial & material(void) const
Returns a reference object of the material this LogicalPart is made of.
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 DDSolid & solid(void) const
Returns a reference object of the solid being the shape of this LogicalPart.
Geom::Theta< T > theta() const
void buildTubs(double zhalf, double rIn, double rOut, double startPhi, double deltaPhi)
std::string magFile
Name of magnetic field table file.