5#ifndef InDetGeoModelUtils_VolumeSplitterUtils_H
6#define InDetGeoModelUtils_VolumeSplitterUtils_H
28 double z()
const {
return m_z;}
29 double r()
const {
return m_r;}
101 TubeZone(
const std::string &
label,
double zmin,
double zmax,
double rmin,
double rmax,
bool rotated =
false);
102 TubeZone(
const std::string &
label,
const GeoTube * shape,
double zOffset,
bool rotated =
false);
111 bool inR(
double r)
const;
112 bool inZ(
double z)
const;
124 void addPlane(
double z,
double rmin,
double rmax);
129 bool inR(
unsigned int i,
double r)
const;
130 bool inZ(
unsigned int i,
double z)
const;
158 void add(
const std::string &
label,
const Point & start,
const Point & end,
bool rotated =
false);
PconZone(const std::string &label, bool rotated=false)
virtual Point findExit(const Ray &ray) const
std::vector< double > m_z
std::vector< double > m_rmax
virtual bool inSide(const Point &point) const
std::vector< double > m_rmin
bool inZ(unsigned int i, double z) const
virtual Point findEntry(const Ray &ray) const
void addPlane(double z, double rmin, double rmax)
bool inR(unsigned int i, double r) const
const Zone * child() const
void setChild(const Zone *zone)
void set(const Point &start, const Point &end)
const Point & end() const
const Point & start() const
void add(const std::string &label, const Point &start, const Point &end, bool rotated=false)
unsigned int size() const
std::vector< Segment > m_segments
const Segment & getSegment(unsigned int i) const
void addSegment(const Zone *, const Point &start, const Point &end)
const SegmentList & split(const Zone *, const Ray &)
Ray searchPoint(const Zone *zone, const Ray &ray)
Point getNextBoundary(const Zone *, const Ray &)
Point nearestPoint(const Point &point1, const Point &point2)
Ray addChildSegment(const Zone *, const Ray &)
const std::string & label() const
Segment(const std::string &label, const Point &start, const Point &end, bool rotated=false)
virtual double getRmin() const
virtual double getZmax() const
virtual double getRmax() const
TubeZone(const std::string &label, double zmin, double zmax, double rmin, double rmax, bool rotated=false)
virtual double getZmin() const
virtual bool inSide(const Point &point) const
virtual Point findExit(const Ray &ray) const
virtual Point findEntry(const Ray &ray) const
UnboundedZone(const std::string &label)
virtual Point findExit(const Ray &ray) const
virtual Point findEntry(const Ray &ray) const
virtual bool inSide(const Point &point) const
ChildIterator begin() const
virtual Point findExit(const Ray &ray) const =0
std::vector< constZone * >::const_iterator ChildIterator
const std::string & label() const
virtual bool inSide(const Point &point) const =0
virtual Point findEntry(const Ray &ray) const =0
std::vector< const Zone * > m_children
ChildIterator end() const
Zone(const std::string &label, bool rotated=false)
std::string label(const std::string &format, int i)
std::ostream & operator<<(std::ostream &os, const SiCellId &cellId)