1 #ifndef MagneticField_GeomBuilder_BaseVolumeHandle_H
2 #define MagneticField_GeomBuilder_BaseVolumeHandle_H
20 namespace magneticfield {
100 virtual std::vector<VolumeSide>
sides()
const = 0;
154 typedef std::vector<BaseVolumeHandle*>
handles;
218 inline const char*
const newln =
"\n";
Geom::Phi< float > maxPhi() const
Maximum value of phi covered by the volume.
int references(int which_side) const
Surface::LocalVector LocalVector
double minR() const
Minimum R for any point within the volume.
double minZ() const
Z limits.
Geom::Phi< T > phi() const
Surface::LocalPoint LocalPoint
bool isPlaneMatched(int which_side) const
if the specified surface has been matched.
unsigned short volumeno
volume number
SurfaceOrientation::GlobalFace Sides
unsigned short copyno
copy number
GloballyPositioned< float > * refPlane
const Surface & surface(int which_side) const
Get the current surface on specified side.
std::vector< BaseVolumeHandle * > handles
bool isIron() const
Temporary hack to pass information on material. Will eventually be replaced!
Surface::GlobalPoint GlobalPoint
int masterSector
The sector for which an interpolator for this class of volumes should be built.
virtual DDSolidShape shape() const =0
Shape of the solid.
Geom::Phi< float > minPhi() const
Minimum value of phi covered by the volume.
MagVolume6Faces * magVolume
Pointer to the final MagVolume (must be set from outside)
const GlobalPoint & center() const
Return the center of the volume.
void buildPhiZSurf(double startPhi, double deltaPhi, double zhalf, double rCentr)
ConstReferenceCountingPointer< Surface > RCPS
std::string name
Name of the volume.
bool operator()(double phi1, double phi2) const
virtual std::vector< VolumeSide > sides() const =0
The surfaces and they orientation, as required to build a MagVolume.
BaseVolumeHandle(bool expand2Pi=false, bool debugVal=false)
const GloballyPositioned< float > * placement() const
Position and rotation.
const double RN() const
Distance of (x,y) plane from origin.
bool setSurface(const Surface &s1, Sides which_side)
Assign a shared surface perorming sanity checks.
bool operator()(const BaseVolumeHandle *v1, const BaseVolumeHandle *v2) const
Geom::Phi< float > thePhiMin
const PositionType & position() const
std::string magFile
Name of magnetic field table file.
bool sameSurface(const Surface &s1, Sides which_side, float tolerance=0.01)
Find out if two surfaces are the same physical surface.
virtual ~BaseVolumeHandle()