#include <G4IntersectingCone.hh>
Definition at line 51 of file G4IntersectingCone.hh.
G4IntersectingCone::G4IntersectingCone |
( |
const G4double |
r[2], |
|
|
const G4double |
z[2] |
|
) |
| |
Definition at line 46 of file G4IntersectingCone.cc.
55 type1 = (std::fabs(z[1]-z[0]) > std::fabs(r[1]-r[0]));
59 B = (r[1]-r[0])/(z[1]-z[0]);
60 A = 0.5*( r[1]+r[0] -
B*(z[1]+z[0]) );
64 B = (z[1]-z[0])/(r[1]-r[0]);
65 A = 0.5*( z[1]+z[0] -
B*(r[1]+r[0]) );
72 rLo = r[0]-halfCarTolerance;
rHi = r[1]+halfCarTolerance;
76 rLo = r[1]-halfCarTolerance;
rHi = r[0]+halfCarTolerance;
81 zLo = z[0]-halfCarTolerance;
zHi = z[1]+halfCarTolerance;
85 zLo = z[1]-halfCarTolerance;
zHi = z[0]+halfCarTolerance;
G4double GetSurfaceTolerance() const
static G4GeometryTolerance * GetInstance()
G4IntersectingCone::~G4IntersectingCone |
( |
| ) |
|
|
virtual |
G4IntersectingCone::G4IntersectingCone |
( |
__void__ & |
| ) |
|
Definition at line 140 of file G4IntersectingCone.cc.
G4int LineHitsCone1(const G4ThreeVector &p, const G4ThreeVector &v, G4double *s1, G4double *s2)
G4int LineHitsCone2(const G4ThreeVector &p, const G4ThreeVector &v, G4double *s1, G4double *s2)
Definition at line 214 of file G4IntersectingCone.cc.
229 if (radical < -EPS*std::fabs(b)) {
return 0; }
231 if (radical < EPS*std::fabs(b))
238 if(
B==0.) {
return 0; }
239 if ( std::fabs(x0*ty - y0*tx) < std::fabs(EPS/
B) )
249 radical = std::sqrt(radical);
254 G4double sa, sb, q = -0.5*( b + (b < 0 ? -radical : +radical) );
257 if (sa < sb) { *s1 = sa; *s2 = sb; }
else { *s1 = sb; *s2 = sa; }
258 if (
A +
B*(
z0+(*s1)*tz) < 0) {
return 0; }
263 G4double sa, sb, q = -0.5*( b + (b < 0 ? -radical : +radical) );
266 *s1 = (
B*tz > 0)^(sa > sb) ? sb : sa;
276 if (
A +
B*(
z0+(*s1)*tz) < 0) {
return 0; }
static const G4double kInfinity
Definition at line 306 of file G4IntersectingCone.cc.
319 if (std::fabs(tz) < 1/
kInfinity) {
return 0; }
327 G4double a = tz*tz - B2*(tx*tx + ty*ty);
333 if (radical < -EPS*std::fabs(b)) {
return 0; }
335 if (radical < EPS*std::fabs(b))
342 if ( std::fabs(x0*ty - y0*tx) < std::fabs(EPS/B) )
352 radical = std::sqrt(radical);
357 G4double sa, sb, q = -0.5*( b + (b < 0 ? -radical : +radical) );
360 if (sa < sb) { *s1 = sa; *s2 = sb; }
else { *s1 = sb; *s2 = sa; }
361 if ((
z0 + (*s1)*tz -
A)/B < 0) {
return 0; }
366 G4double sa, sb, q = -0.5*( b + (b < 0 ? -radical : +radical) );
369 *s1 = (tz*B > 0)^(sa > sb) ? sb : sa;
379 if ((
z0 + (*s1)*tz -
A)/B < 0) {
return 0; }
static const G4double kInfinity
G4double G4IntersectingCone::RHi |
( |
| ) |
const |
|
inline |
G4double G4IntersectingCone::RLo |
( |
| ) |
const |
|
inline |
G4double G4IntersectingCone::ZHi |
( |
| ) |
const |
|
inline |
G4double G4IntersectingCone::ZLo |
( |
| ) |
const |
|
inline |
G4bool G4IntersectingCone::type1 |
|
protected |
The documentation for this class was generated from the following files: