A temporary container to cache info on a six-surface volume during the processing. Used to sort, organise, and build shared planes. One instance is created for each DDVolume. The parameters of the boundary surfaces are calculated during construction.
- Author
- N. Amapane - INFN Torino (original developer)
Definition at line 23 of file volumeHandle.h.
MagGeoBuilderFromDDD::volumeHandle::volumeHandle |
( |
const DDExpandedView & |
fv, |
|
|
bool |
expand2Pi = false , |
|
|
bool |
debugVal = false |
|
) |
| |
Definition at line 32 of file volumeHandle.cc.
References buildBox(), buildCons(), buildPseudoTrap(), buildTrap(), buildTruncTubs(), buildTubs(), magneticfield::BaseVolumeHandle::center(), magneticfield::BaseVolumeHandle::center_, magneticfield::BaseVolumeHandle::copyno, DDExpandedView::copyno(), gather_cfg::cout, ddbox, ddcons, ddpseudotrap, ddtrap, ddtrunctubs, ddtubs, magneticfield::BaseVolumeHandle::debug, mps_fire::i, magneticfield::BaseVolumeHandle::isAssigned, magneticfield::BaseVolumeHandle::isIronFlag, DDExpandedView::logicalPart(), magneticfield::BaseVolumeHandle::magFile, magneticfield::BaseVolumeHandle::masterSector, DDLogicalPart::material(), DDSolidShapesName::name(), DDName::name(), DDBase< N, C >::name(), magneticfield::BaseVolumeHandle::name, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), referencePlane(), shape(), DDSolid::shape(), solid, DDLogicalPart::solid(), AlCaHLTBitMon_QueryRunRegistry::string, magneticfield::BaseVolumeHandle::surfaces, magneticfield::BaseVolumeHandle::theRMax, magneticfield::BaseVolumeHandle::theRMin, magneticfield::BaseVolumeHandle::theRN, DDExpandedView::translation(), and magneticfield::BaseVolumeHandle::volumeno.
40 string volName =
name;
41 volName.erase(0, volName.rfind(
'_') + 1);
42 volumeno = boost::lexical_cast<
unsigned short>(volName);
44 for (
int i = 0;
i < 6; ++
i) {
137 cout <<
" Orientation of surfaces:";
138 std::string sideName[3] = {
"positiveSide",
"negativeSide",
"onSurface"};
139 for (
int i = 0;
i < 6; ++
i) {
Geom::Phi< T > phi() 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)
Surface::GlobalPoint GlobalPoint
int masterSector
The sector for which an interpolator for this class of volumes should be built.
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.
std::string name
Name of the volume.
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the expanded-view.
const std::string & name() const
Returns the name.
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.
DDSolidShape shape() const override
Shape of the solid.
void MagGeoBuilderFromDDD::volumeHandle::referencePlane |
( |
const DDExpandedView & |
fv | ) |
|
|
private |
Definition at line 146 of file volumeHandle.cc.
References magneticfield::BaseVolumeHandle::center_, gather_cfg::cout, ddpseudotrap, magneticfield::BaseVolumeHandle::debug, GloballyPositioned< T >::position(), magneticfield::BaseVolumeHandle::refPlane, DDExpandedView::rotation(), DDSolid::shape(), solid, GloballyPositioned< T >::toGlobal(), x, y, z, and PV3DBase< T, PVType, FrameType >::z().
Referenced by shape(), and volumeHandle().
180 fv.
rotation().GetComponents(x, y, z);
182 if (x.Cross(y).Dot(z) < 0.5) {
183 cout <<
"*** WARNING: Rotation is not RH " << endl;
210 globalZdir = -globalZdir;
215 cout <<
"*** WARNING RefPlane check failed!***" << chk << endl;
const DDRotationMatrix & rotation() const
The absolute rotation of the current node.
Surface::LocalVector LocalVector
GloballyPositioned< float > * refPlane
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > DD3Vector
A DD Translation is currently implemented with Root Vector3D.
DDSolidShape shape(void) const
The type of the solid.
GlobalPoint toGlobal(const LocalPoint &lp) const
const PositionType & position() const
Global3DVector GlobalVector