Geant4
10.01
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
UEnclosingCylinder.hh
Go to the documentation of this file.
1
//
2
// ********************************************************************
3
// * This Software is part of the AIDA Unified Solids Library package *
4
// * See: https://aidasoft.web.cern.ch/USolids *
5
// ********************************************************************
6
//
7
// $Id:$
8
//
9
// --------------------------------------------------------------------
10
//
11
// UEnclosingCylinder
12
//
13
// Class description:
14
//
15
// Definition of a utility class for quickly deciding if a point
16
// is clearly outside a polyhedra or polycone or deciding if
17
// a trajectory is clearly going to miss those shapes.
18
//
19
// 19.10.12 Marek Gayer
20
// Created from original implementation in Geant4
21
// --------------------------------------------------------------------
22
23
#ifndef UEnclosingCylinder_hh
24
#define UEnclosingCylinder_hh
25
26
#include "
UTypes.hh
"
27
#include "
UTubs.hh
"
28
29
class
UReduciblePolygon
;
30
31
class
UEnclosingCylinder
32
{
33
public
:
// with description
34
35
UEnclosingCylinder
(
/*const UReduciblePolygon *rz*/
double
r,
double
lo,
double
hi,
36
bool
phiIsOpen
,
37
double
startPhi
,
double
totalPhi
);
38
~UEnclosingCylinder
();
39
40
bool
MustBeOutside
(
const
UVector3
& p)
const
;
41
// Decide very rapidly if the point is outside the cylinder.
42
// If one is not certain, return false.
43
44
bool
ShouldMiss
(
const
UVector3
& p,
const
UVector3
& v)
const
;
45
// Decide very rapidly if the trajectory is going to miss the cylinder.
46
// If one is not sure, return false.
47
48
double
DistanceTo
(
const
UVector3
& p,
const
UVector3
& v)
const
;
49
50
double
SafetyFromOutside
(
const
UVector3
& p)
const
;
51
52
public
:
// without description
53
54
void
Extent
(
UVector3
& aMin,
UVector3
& aMax)
const
;
55
56
double
radius
;
// radius of our cylinder
57
58
protected
:
59
60
double
zLo
,
zHi
;
// z extent
61
62
bool
phiIsOpen
;
// true if there is a phi segment
63
double
startPhi
,
// for isPhiOpen==true, starting of phi segment
64
totalPhi
;
// for isPhiOpen==true, size of phi segment
65
66
double
rx1
,
ry1
,
67
dx1
,
dy1
;
68
double
rx2
,
ry2
,
69
dx2
,
dy2
;
70
71
bool
concave
;
// true, if x/y Cross section is concave
72
73
UTubs
*
tube
;
74
};
75
76
#endif
UTubs
Definition:
UTubs.hh:47
UEnclosingCylinder::SafetyFromOutside
double SafetyFromOutside(const UVector3 &p) const
Definition:
UEnclosingCylinder.cc:184
UEnclosingCylinder
Definition:
UEnclosingCylinder.hh:31
UEnclosingCylinder::dy1
double dy1
Definition:
UEnclosingCylinder.hh:66
UEnclosingCylinder::totalPhi
double totalPhi
Definition:
UEnclosingCylinder.hh:63
UEnclosingCylinder::MustBeOutside
bool MustBeOutside(const UVector3 &p) const
Definition:
UEnclosingCylinder.cc:99
UEnclosingCylinder::ry1
double ry1
Definition:
UEnclosingCylinder.hh:66
UEnclosingCylinder::ry2
double ry2
Definition:
UEnclosingCylinder.hh:68
UEnclosingCylinder::concave
bool concave
Definition:
UEnclosingCylinder.hh:71
UEnclosingCylinder::rx2
double rx2
Definition:
UEnclosingCylinder.hh:68
UEnclosingCylinder::rx1
double rx1
Definition:
UEnclosingCylinder.hh:66
UEnclosingCylinder::phiIsOpen
bool phiIsOpen
Definition:
UEnclosingCylinder.hh:62
UEnclosingCylinder::UEnclosingCylinder
UEnclosingCylinder(double r, double lo, double hi, bool phiIsOpen, double startPhi, double totalPhi)
Definition:
UEnclosingCylinder.cc:31
UEnclosingCylinder::ShouldMiss
bool ShouldMiss(const UVector3 &p, const UVector3 &v) const
Definition:
UEnclosingCylinder.cc:131
UVector3
Definition:
UVector3.hh:28
UEnclosingCylinder::zHi
double zHi
Definition:
UEnclosingCylinder.hh:60
UTypes.hh
UEnclosingCylinder::dx2
double dx2
Definition:
UEnclosingCylinder.hh:68
UTubs.hh
UEnclosingCylinder::tube
UTubs * tube
Definition:
UEnclosingCylinder.hh:73
UEnclosingCylinder::Extent
void Extent(UVector3 &aMin, UVector3 &aMax) const
Definition:
UEnclosingCylinder.cc:173
UEnclosingCylinder::radius
double radius
Definition:
UEnclosingCylinder.hh:56
UReduciblePolygon
Definition:
UReduciblePolygon.hh:39
UEnclosingCylinder::startPhi
double startPhi
Definition:
UEnclosingCylinder.hh:63
UEnclosingCylinder::~UEnclosingCylinder
~UEnclosingCylinder()
Definition:
UEnclosingCylinder.cc:87
UEnclosingCylinder::dx1
double dx1
Definition:
UEnclosingCylinder.hh:66
UEnclosingCylinder::DistanceTo
double DistanceTo(const UVector3 &p, const UVector3 &v) const
Definition:
UEnclosingCylinder.cc:179
UEnclosingCylinder::dy2
double dy2
Definition:
UEnclosingCylinder.hh:68
UEnclosingCylinder::zLo
double zLo
Definition:
UEnclosingCylinder.hh:60
source
source
externals
usolids
include
UEnclosingCylinder.hh
Generated on Fri Dec 12 2014 22:47:35 for Geant4 by
1.8.8