Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ErrorPlaneSurfaceTarget Class Reference

#include <G4ErrorPlaneSurfaceTarget.hh>

+ Inheritance diagram for G4ErrorPlaneSurfaceTarget:

Public Member Functions

 G4ErrorPlaneSurfaceTarget (G4double a=0., G4double b=0., G4double c=0., G4double d=0.)
 
 G4ErrorPlaneSurfaceTarget (const G4Normal3D &n, const G4Point3D &p)
 
 G4ErrorPlaneSurfaceTarget (const G4Point3D &p1, const G4Point3D &p2, const G4Point3D &p3)
 
 ~G4ErrorPlaneSurfaceTarget () override=default
 
virtual G4ThreeVector Intersect (const G4ThreeVector &point, const G4ThreeVector &direc) const
 
G4double GetDistanceFromPoint (const G4ThreeVector &point, const G4ThreeVector &direc) const override
 
G4double GetDistanceFromPoint (const G4ThreeVector &pt) const override
 
G4Plane3D GetTangentPlane (const G4ThreeVector &point) const override
 
void Dump (const G4String &msg) const override
 
- Public Member Functions inherited from G4ErrorSurfaceTarget
 G4ErrorSurfaceTarget ()
 
 ~G4ErrorSurfaceTarget () override=default
 
- Public Member Functions inherited from G4ErrorTanPlaneTarget
 G4ErrorTanPlaneTarget ()
 
 ~G4ErrorTanPlaneTarget () override=default
 
- Public Member Functions inherited from G4ErrorTarget
 G4ErrorTarget ()
 
virtual ~G4ErrorTarget ()=default
 
virtual G4bool TargetReached (const G4Step *)
 
G4ErrorTargetType GetType () const
 

Additional Inherited Members

- Protected Attributes inherited from G4ErrorTarget
G4ErrorTargetType theType {G4ErrorTarget_GeomVolume}
 

Detailed Description

Definition at line 44 of file G4ErrorPlaneSurfaceTarget.hh.

Constructor & Destructor Documentation

◆ G4ErrorPlaneSurfaceTarget() [1/3]

G4ErrorPlaneSurfaceTarget::G4ErrorPlaneSurfaceTarget ( G4double a = 0.,
G4double b = 0.,
G4double c = 0.,
G4double d = 0. )

Definition at line 42 of file G4ErrorPlaneSurfaceTarget.cc.

44 : G4Plane3D( aa, ab, ac, ad )
45{
47
48#ifdef G4VERBOSE
50 {
51 Dump( " $$$ creating G4ErrorPlaneSurfaceTarget from parameters");
52 }
53#endif
54}
@ G4ErrorTarget_PlaneSurface
HepGeom::Plane3D< G4double > G4Plane3D
Definition G4Plane3D.hh:34
void Dump(const G4String &msg) const override
G4ErrorTargetType theType

◆ G4ErrorPlaneSurfaceTarget() [2/3]

G4ErrorPlaneSurfaceTarget::G4ErrorPlaneSurfaceTarget ( const G4Normal3D & n,
const G4Point3D & p )

Definition at line 58 of file G4ErrorPlaneSurfaceTarget.cc.

60 : G4Plane3D( norm, pt )
61{
63
64#ifdef G4VERBOSE
66 {
67 Dump( " $$$ creating G4ErrorPlaneSurfaceTarget from point and normal");
68 }
69#endif
70}

◆ G4ErrorPlaneSurfaceTarget() [3/3]

G4ErrorPlaneSurfaceTarget::G4ErrorPlaneSurfaceTarget ( const G4Point3D & p1,
const G4Point3D & p2,
const G4Point3D & p3 )

Definition at line 74 of file G4ErrorPlaneSurfaceTarget.cc.

78 : G4Plane3D( p1, p2, p3 )
79{
81
82#ifdef G4VERBOSE
84 {
85 Dump( " $$$ creating G4ErrorPlaneSurfaceTarget from three points");
86 }
87#endif
88}

◆ ~G4ErrorPlaneSurfaceTarget()

G4ErrorPlaneSurfaceTarget::~G4ErrorPlaneSurfaceTarget ( )
overridedefault

Member Function Documentation

◆ Dump()

void G4ErrorPlaneSurfaceTarget::Dump ( const G4String & msg) const
overridevirtual

Implements G4ErrorSurfaceTarget.

Definition at line 166 of file G4ErrorPlaneSurfaceTarget.cc.

167{
168 G4cout << msg << " point = " << point()
169 << " normal = " << normal() << G4endl;
170}
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
Normal3D< G4double > normal() const
Definition Plane3D.h:97
Point3D< G4double > point() const
Definition Plane3D.h:122

Referenced by G4ErrorPlaneSurfaceTarget(), G4ErrorPlaneSurfaceTarget(), and G4ErrorPlaneSurfaceTarget().

◆ GetDistanceFromPoint() [1/2]

G4double G4ErrorPlaneSurfaceTarget::GetDistanceFromPoint ( const G4ThreeVector & point,
const G4ThreeVector & direc ) const
overridevirtual

Implements G4ErrorSurfaceTarget.

Definition at line 111 of file G4ErrorPlaneSurfaceTarget.cc.

113{
114 if( std::fabs( dir.mag() -1. ) > 1.E-6 )
115 {
116 std::ostringstream message;
117 message << "Direction is not a unit vector: " << dir << " !";
118 G4Exception("G4ErrorPlaneSurfaceTarget::GetDistanceFromPoint()",
119 "GeomMgt1002", JustWarning, message);
120 }
121 G4double dist = -(a_ * pt.x() + b_ * pt.y() + c_ * pt.z() + d_)
122 / (a_ * dir.x() + b_ * dir.y() + c_ * dir.z() );
123
124#ifdef G4VERBOSE
126 {
127 G4cout << " G4ErrorPlaneSurfaceTarget::GetDistanceFromPoint()" << G4endl
128 << " Point: " << pt << ", Direction: " << dir << G4endl
129 << " Distance: " << dist << G4endl;
130 }
131#endif
132
133 return dist;
134}
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
double G4double
Definition G4Types.hh:83

Referenced by Intersect().

◆ GetDistanceFromPoint() [2/2]

G4double G4ErrorPlaneSurfaceTarget::GetDistanceFromPoint ( const G4ThreeVector & pt) const
overridevirtual

Implements G4ErrorSurfaceTarget.

Definition at line 138 of file G4ErrorPlaneSurfaceTarget.cc.

140{
141 G4ThreeVector vec = point() - pt;
142 G4double dist = std::fabs(vec * normal() / normal().mag());
143
144#ifdef G4VERBOSE
146 {
147 G4cout << " G4ErrorPlaneSurfaceTarget::GetDistanceFromPoint()" << G4endl
148 << " Point: " << pt << G4endl
149 << " Distance: " << dist << G4endl;
150 }
151#endif
152
153 return dist;
154}

◆ GetTangentPlane()

G4Plane3D G4ErrorPlaneSurfaceTarget::GetTangentPlane ( const G4ThreeVector & point) const
overridevirtual

Implements G4ErrorSurfaceTarget.

Definition at line 158 of file G4ErrorPlaneSurfaceTarget.cc.

160{
161 return *this;
162}

◆ Intersect()

G4ThreeVector G4ErrorPlaneSurfaceTarget::Intersect ( const G4ThreeVector & point,
const G4ThreeVector & direc ) const
virtual

Definition at line 92 of file G4ErrorPlaneSurfaceTarget.cc.

94{
96 G4Point3D inters = pt + lam * dir;
97
98#ifdef G4VERBOSE
100 {
101 G4cout << " $$$ creating G4ErrorPlaneSurfaceTarget::Intersect "
102 << inters << G4endl;
103 }
104#endif
105
106 return inters;
107}
G4double GetDistanceFromPoint(const G4ThreeVector &point, const G4ThreeVector &direc) const override

The documentation for this class was generated from the following files: