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