Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
HepGeom::Point3D< double > Class Reference

#include <Point3D.h>

Inheritance diagram for HepGeom::Point3D< double >:

Public Member Functions

 Point3D ()=default
 Point3D (double x1, double y1, double z1)
 Point3D (const float *a)
 Point3D (const double *a)
 Point3D (const Point3D< double > &)=default
 Point3D (Point3D< double > &&)=default
 Point3D (const BasicVector3D< float > &v)
 Point3D (const BasicVector3D< double > &v)
 ~Point3D ()=default
 Point3D (const CLHEP::Hep3Vector &v)
 operator CLHEP::Hep3Vector () const
Point3D< double > & operator= (const Point3D< double > &)=default
Point3D< double > & operator= (const BasicVector3D< float > &v)
Point3D< double > & operator= (const BasicVector3D< double > &v)
Point3D< double > & operator= (Point3D< double > &&)=default
double distance2 () const
double distance2 (const Point3D< double > &p) const
double distance () const
double distance (const Point3D< double > &p) const
Point3D< double > & transform (const Transform3D &m)
Public Member Functions inherited from HepGeom::BasicVector3D< double >
float pseudoRapidity () const
void setEta (float a)
float angle (const BasicVector3D< float > &v) const
BasicVector3D< float > & rotateX (float a)
BasicVector3D< float > & rotateY (float a)
BasicVector3D< float > & rotateZ (float a)
BasicVector3D< float > & rotate (float a, const BasicVector3D< float > &v)
double pseudoRapidity () const
void setEta (double a)
double angle (const BasicVector3D< double > &v) const
BasicVector3D< double > & rotateX (double a)
BasicVector3D< double > & rotateY (double a)
BasicVector3D< double > & rotateZ (double a)
BasicVector3D< double > & rotate (double a, const BasicVector3D< double > &v)
virtual ~BasicVector3D ()=default
 operator double * ()
 operator const double * () const
 operator CLHEP::Hep3Vector () const
BasicVector3D< double > & operator= (const BasicVector3D< double > &)=default
BasicVector3D< double > & operator+= (const BasicVector3D< double > &v)
BasicVector3D< double > & operator-= (const BasicVector3D< double > &v)
BasicVector3D< double > & operator*= (double a)
BasicVector3D< double > & operator/= (double a)
double operator() (int i) const
double operator[] (int i) const
double x () const
double y () const
double z () const
void setX (double a)
void setY (double a)
void setZ (double a)
void set (double x1, double y1, double z1)
double perp2 () const
double perp () const
double rho () const
void setPerp (double rh)
double mag2 () const
double mag () const
double r () const
double phi () const
double theta () const
double cosTheta () const
double getR () const
double getPhi () const
double getTheta () const
void setMag (double ma)
void setR (double ma)
void setPhi (double ph)
void setTheta (double th)
double eta () const
double getEta () const
double dot (const BasicVector3D< double > &v) const
BasicVector3D< double > cross (const BasicVector3D< double > &v) const
BasicVector3D< double > unit () const
BasicVector3D< double > orthogonal () const

(Note that these are not member symbols.)

Point3D< float > operator* (const Transform3D &m, const Point3D< float > &p)
Point3D< double > operator* (const Transform3D &m, const Point3D< double > &p)

Additional Inherited Members

Public Types inherited from HepGeom::BasicVector3D< double >
enum  
Protected Member Functions inherited from HepGeom::BasicVector3D< double >
 BasicVector3D ()
Protected Attributes inherited from HepGeom::BasicVector3D< double >
double v_ [3]

Detailed Description

Geometrical 3D Point with components of double type.

Author
Evgeni Chernyaev Evgue.nosp@m.ni.T.nosp@m.chern.nosp@m.iaev.nosp@m.@cern.nosp@m..ch

Definition at line 128 of file Point3D.h.

Constructor & Destructor Documentation

◆ Point3D() [1/9]

HepGeom::Point3D< double >::Point3D ( )
default

◆ Point3D() [2/9]

HepGeom::Point3D< double >::Point3D ( double x1,
double y1,
double z1 )
inline

Constructor from three numbers.

Definition at line 136 of file Point3D.h.

◆ Point3D() [3/9]

HepGeom::Point3D< double >::Point3D ( const float * a)
inlineexplicit

Constructor from array of floats.

Definition at line 140 of file Point3D.h.

141 : BasicVector3D<double>(a[0],a[1],a[2]) {}

◆ Point3D() [4/9]

HepGeom::Point3D< double >::Point3D ( const double * a)
inlineexplicit

Constructor from array of doubles.

Definition at line 145 of file Point3D.h.

146 : BasicVector3D<double>(a[0],a[1],a[2]) {}

◆ Point3D() [5/9]

HepGeom::Point3D< double >::Point3D ( const Point3D< double > & )
default

Copy constructor.

◆ Point3D() [6/9]

HepGeom::Point3D< double >::Point3D ( Point3D< double > && )
default

Move constructor.

◆ Point3D() [7/9]

HepGeom::Point3D< double >::Point3D ( const BasicVector3D< float > & v)
inline

Constructor from BasicVector3D<float>.

Definition at line 158 of file Point3D.h.

◆ Point3D() [8/9]

HepGeom::Point3D< double >::Point3D ( const BasicVector3D< double > & v)
inline

Constructor from BasicVector3D<double>.

Definition at line 162 of file Point3D.h.

◆ ~Point3D()

HepGeom::Point3D< double >::~Point3D ( )
default

Destructor.

◆ Point3D() [9/9]

HepGeom::Point3D< double >::Point3D ( const CLHEP::Hep3Vector & v)
inline

Constructor from CLHEP::Hep3Vector. This constructor is needed only for backward compatibility and in principle should be absent.

Definition at line 173 of file Point3D.h.

Member Function Documentation

◆ distance() [1/2]

double HepGeom::Point3D< double >::distance ( ) const
inline

Returns distance to the origin.

Definition at line 218 of file Point3D.h.

218{ return std::sqrt(distance2()); }
double distance2() const
Definition Point3D.h:207

◆ distance() [2/2]

double HepGeom::Point3D< double >::distance ( const Point3D< double > & p) const
inline

Returns distance to the point.

Definition at line 222 of file Point3D.h.

222 {
223 return std::sqrt(distance2(p));
224 }

◆ distance2() [1/2]

double HepGeom::Point3D< double >::distance2 ( ) const
inline

Returns distance to the origin squared.

Definition at line 207 of file Point3D.h.

207{ return mag2(); }

Referenced by distance(), and distance().

◆ distance2() [2/2]

double HepGeom::Point3D< double >::distance2 ( const Point3D< double > & p) const
inline

Returns distance to the point squared.

Definition at line 211 of file Point3D.h.

211 {
212 double dx = p.x()-x(), dy = p.y()-y(), dz = p.z()-z();
213 return dx*dx + dy*dy + dz*dz;
214 }

◆ operator CLHEP::Hep3Vector()

HepGeom::Point3D< double >::operator CLHEP::Hep3Vector ( ) const
inline

Conversion (cast) to CLHEP::Hep3Vector. This operator is needed only for backward compatibility and in principle should not exit.

Definition at line 181 of file Point3D.h.

181{ return CLHEP::Hep3Vector(x(),y(),z()); }

◆ operator=() [1/4]

Point3D< double > & HepGeom::Point3D< double >::operator= ( const BasicVector3D< double > & v)
inline

Assignment from BasicVector3D<double>.

Definition at line 196 of file Point3D.h.

196 {
198 return *this;
199 }
BasicVector3D< T > & operator=(const BasicVector3D< T > &)=default

◆ operator=() [2/4]

Point3D< double > & HepGeom::Point3D< double >::operator= ( const BasicVector3D< float > & v)
inline

Assignment from BasicVector3D<float>.

Definition at line 189 of file Point3D.h.

189 {
191 return *this;
192 }

◆ operator=() [3/4]

Point3D< double > & HepGeom::Point3D< double >::operator= ( const Point3D< double > & )
default

Assignment.

◆ operator=() [4/4]

Point3D< double > & HepGeom::Point3D< double >::operator= ( Point3D< double > && )
default

Move assignment.

◆ transform()

Point3D< double > & HepGeom::Point3D< double >::transform ( const Transform3D & m)

Transformation by Transform3D.

Definition at line 30 of file Point3D.cc.

30 {
31 double vx = x(), vy = y(), vz = z();
32 set(m.xx()*vx + m.xy()*vy + m.xz()*vz + m.dx(),
33 m.yx()*vx + m.yy()*vy + m.yz()*vz + m.dy(),
34 m.zx()*vx + m.zy()*vy + m.zz()*vz + m.dz());
35 return *this;
36 }
void set(double x1, double y1, double z1)

◆ operator*() [1/2]

Point3D< double > operator* ( const Transform3D & m,
const Point3D< double > & p )
related

Transformation of Point3D<double> by Transform3D.

Definition at line 236 of file Point3D.cc.

40 {
41 double vx = v.x(), vy = v.y(), vz = v.z();
42 return Point3D<double>
43 (m.xx()*vx + m.xy()*vy + m.xz()*vz + m.dx(),
44 m.yx()*vx + m.yy()*vy + m.yz()*vz + m.dy(),
45 m.zx()*vx + m.zy()*vy + m.zz()*vz + m.dz());
46 }

◆ operator*() [2/2]

Point3D< float > operator* ( const Transform3D & m,
const Point3D< float > & p )
related

Transformation of Point3D<float> by Transform3D.

Definition at line 119 of file Point3D.cc.

20 {
21 double vx = v.x(), vy = v.y(), vz = v.z();
22 return Point3D<float>
23 (m.xx()*vx + m.xy()*vy + m.xz()*vz + m.dx(),
24 m.yx()*vx + m.yy()*vy + m.yz()*vz + m.dy(),
25 m.zx()*vx + m.zy()*vy + m.zz()*vz + m.dz());
26 }

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