|
|
Go to the documentation of this file.
19 #include "CLHEP/Units/GlobalSystemOfUnits.h"
25 #include <boost/lexical_cast.hpp>
38 string volName =
name;
39 volName.erase(0, volName.rfind(
'_') + 1);
40 volumeno = boost::lexical_cast<unsigned short>(volName);
42 for (
int i = 0;
i < 6; ++
i) {
136 cout <<
" Orientation of surfaces:";
137 std::string sideName[3] = {
"positiveSide",
"negativeSide",
"onSurface"};
138 for (
int i = 0;
i < 6; ++
i) {
181 if (
x.Cross(
y).Dot(
z) < 0.5) {
182 cout <<
"*** WARNING: Rotation is not RH " << endl;
201 cout <<
"Refplane pos " << refPlane->position() << endl;
208 if (refPlane->toGlobal(globalZdir).z() < 0.) {
209 globalZdir = -globalZdir;
214 cout <<
"*** WARNING RefPlane check failed!***" << chk << endl;
219 std::vector<VolumeSide>
result;
220 for (
int i = 0;
i < 6; ++
i) {
243 template <
class NumType>
244 inline constexpr NumType convertUnits(NumType millimeters)
250 #include "buildBox.icc"
251 #include "buildTrap.icc"
252 #include "buildTubs.icc"
253 #include "buildCons.icc"
254 #include "buildPseudoTrap.icc"
255 #include "buildTruncTubs.icc"
std::string magFile
Name of magnetic field table file.
DDSolidShape shape() const override
Shape of the solid.
double radius(void) const
radius of the cut-out (neg.) or rounding (pos.)
const DDRotationMatrix & rotation() const
The absolute rotation of the current node.
double y2(void) const
half length along y on +z
bool atMinusZ(void) const
true, if cut-out or rounding is on the -z side
MagGeoBuilderFromDDD::volumeHandle volumeHandle
std::vector< VolumeSide > sides() const override
The surfaces and they orientation, as required to build a MagVolume.
const GlobalPoint & center() const
Return the center of the volume.
const DDMaterial & material(void) const
Returns a reference object of the material this LogicalPart is made of.
double x2(void) const
half length along x on +z
Global3DVector GlobalVector
unsigned short volumeno
volume number
void referencePlane(const DDExpandedView &fv)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DD3Vector
A DD Translation is currently implemented with Root Vector3D.
volumeHandle(const DDExpandedView &fv, bool expand2Pi=false, bool debugVal=false)
int copyno() const
Copy number associated with the current node.
DDSolidShape shape(void) const
The type of the solid.
Surface::GlobalPoint GlobalPoint
Provides an exploded view of the detector (tree-view)
int masterSector
The sector for which an interpolator for this class of volumes should be built.
double y1(void) const
half length along y on -z
static const char *const name(DDSolidShape s)
void buildPseudoTrap(double x1, double x2, double y1, double y2, double halfZ, double radius, bool atMinusZ)
Local3DVector LocalVector
double x1(void) const
half length along x on -z
const std::string & name() const
Returns the name.
unsigned short copyno
copy number
PreciseFloatType< T, U >::Type dot(const Vector3DBase< U, FrameTag > &v) const
double halfZ(void) const
half of the z-Axis
std::string name
Name of the volume.
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the expanded-view.
constexpr NumType convertMmToCm(NumType millimeters)
const DDTranslation & translation() const
The absolute translation of the current node.
const DDSolid & solid(void) const
Returns a reference object of the solid being the shape of this LogicalPart.
Geom::Phi< T > phi() const