201 int cubVolStatistics = 1000000;
202 double cubVolEpsilon = 0.001;
217 double px,py,pz,volume;
230 if(nStat < 100) nStat = 100;
231 if(epsilon > 0.01) epsilon = 0.01;
233 for(
int i = 0; i < nStat; i++ )
242 volume = (max.
x()-min.
x())*(max.
y()-min.
y())*(max.
z()-min.
z())*iInside/nStat;
271 double px,py,pz,surf;
284 if(nStat < 100) { nStat = 100; }
286 double dX=max.
x()-min.
x();
287 double dY=max.
y()-min.
y();
288 double dZ=max.
z()-min.
z();
292 if(dY<dX) { minval=dY; }
293 if(dZ<minval) { minval=dZ; }
298 min.
x()-=ell; min.
y()-=ell; min.
z()-=ell; dX+=dd; dY+=dd; dZ+=dd;
300 for(
int i = 0; i < nStat; i++ )
314 surf = dX*dY*dZ*inside/dd/nStat;
322 if (aAxis >= 0 && aAxis <= 2)
326 aMin = min[aAxis]; aMax = max[aAxis];
330 cout <<
"Extent: unknown axis" << aAxis << std::endl;
void SetRadTolerance(double eps)
static double frTolerance
virtual double SurfaceArea()=0
void SetCarTolerance(double eps)
static double fgTolerance
void SetAngTolerance(double eps)
double EstimateCubicVolume(int nStat, double epsilon) const
static const G4double eps
virtual EnumInside Inside(const UVector3 &aPoint) const =0
double EstimateSurfaceArea(int nStat, double ell) const
void SetName(const std::string &aName)
static double faTolerance
virtual double SafetyFromInside(const UVector3 &aPoint, bool aAccurate=false) const =0
T max(const T t1, const T t2)
brief Return the largest of the two arguments
virtual void ExtentAxis(EAxisType aAxis, double &aMin, double &aMax) const
virtual double SafetyFromOutside(const UVector3 &aPoint, bool aAccurate=false) const =0
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
virtual void Extent(UVector3 &aMin, UVector3 &aMax) const =0
double Random(double min=0.0, double max=1.0)
virtual double Capacity()=0