|
|
Go to the documentation of this file.
31 const auto *
const transArray = fv.
trans();
35 string volName =
name;
36 volName.erase(0, volName.rfind(
'_') + 1);
37 volumeno = static_cast<unsigned short>(std::atoi(volName.c_str()));
39 for (
int i = 0;
i < 6; ++
i) {
57 vector<double>
d =
solid.
volume().volume().solid().dimensions();
64 LogError(
"magneticfield::volumeHandle")
65 <<
"ctor: Unexpected shape # " << static_cast<int>(
theShape) <<
" for vol " <<
name;
76 LogTrace(
"MagGeoBuilder") <<
"*** WARNING: wrong RMin/RN/RMax";
83 LogTrace(
"MagGeoBuilder") <<
" Orientation of surfaces:";
84 std::string sideName[3] = {
"positiveSide",
"negativeSide",
"onSurface"};
85 for (
int i = 0;
i < 6; ++
i) {
126 dd4hep::Rotation3D refRot;
128 refRot.GetComponents(x, y, z);
130 if (x.Cross(y).Dot(z) < 0.5) {
131 LogTrace(
"MagGeoBuilder") <<
"*** WARNING: Rotation is not RH ";
160 globalZdir = -globalZdir;
164 LogTrace(
"MagGeoBuilder") <<
"*** WARNING RefPlane check failed!***" << chk;
169 std::vector<VolumeSide>
result;
170 for (
int i = 0;
i < 6; ++
i) {
192 template <
class NumType>
193 inline constexpr NumType convertUnits(NumType centimeters) {
194 return (centimeters);
200 #include "buildBox.icc"
201 #include "buildTrap.icc"
202 #include "buildTubs.icc"
203 #include "buildCons.icc"
204 #include "buildPseudoTrap.icc"
205 #include "buildTruncTubs.icc"
std::string magFile
Name of magnetic field table file.
const Double_t * rot() const
The absolute rotation of the current node.
const PlacedVolume volume() const
The physical volume of the current node.
MagGeoBuilderFromDDD::volumeHandle volumeHandle
const DDSolidShape theShape
unsigned short copyNum() const
const GlobalPoint & center() const
Return the center of the volume.
Global3DVector GlobalVector
unsigned short volumeno
volume number
std::string_view name() const
const Double_t * trans() const
The absolute translation of the current node.
Surface::GlobalPoint GlobalPoint
int masterSector
The sector for which an interpolator for this class of volumes should be built.
DDSolidShape getCurrentShape(const cms::DDFilteredView &fview)
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Surface::LocalVector LocalVector
void referencePlane(const cms::DDFilteredView &fv)
unsigned short copyno
copy number
const PositionType & position() const
std::string name
Name of the volume.
std::string_view materialName() const
const cms::DDFilteredView & solid
GloballyPositioned< float > * refPlane
void buildPseudoTrap(double x1, double x2, double y1, double y2, double halfZ, double radius, bool atMinusZ)
Geom::Phi< T > phi() const
GlobalPoint toGlobal(const LocalPoint &lp) const
std::vector< VolumeSide > sides() const override
The surfaces and they orientation, as required to build a MagVolume.
Namespace of DDCMS conversion namespace.