Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HepGeom::Normal3D< double > Class Template Reference

#include <Normal3D.h>

Inheritance diagram for HepGeom::Normal3D< double >:
Collaboration diagram for HepGeom::Normal3D< double >:

Public Member Functions

 Normal3D ()
 
 Normal3D (double x1, double y1, double z1)
 
 Normal3D (const float *a)
 
 Normal3D (const double *a)
 
 Normal3D (const Normal3D< double > &v)
 
 Normal3D (const BasicVector3D< float > &v)
 
 Normal3D (const BasicVector3D< double > &v)
 
 ~Normal3D ()
 
 Normal3D (const CLHEP::Hep3Vector &v)
 
 operator CLHEP::Hep3Vector () const
 
Normal3D< double > & operator= (const Normal3D< double > &v)
 
Normal3D< double > & operator= (const BasicVector3D< float > &v)
 
Normal3D< double > & operator= (const BasicVector3D< double > &v)
 
Normal3D< double > & transform (const Transform3D &m)
 
- Public Member Functions inherited from HepGeom::BasicVector3D< double >
 BasicVector3D (doublex1, doubley1, doublez1)
 
 BasicVector3D (const BasicVector3D< float > &v)
 
virtual ~BasicVector3D ()
 
 operator double * ()
 
 operator const double * () const
 
 operator CLHEP::Hep3Vector () const
 
BasicVector3D< double > & operator= (const BasicVector3D< double > &v)
 
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)
 
double operator[] (int i) const
 
double & operator[] (int i)
 
double x () const
 
double y () const
 
double z () const
 
void setX (doublea)
 
void setY (doublea)
 
void setZ (doublea)
 
void set (doublex1, doubley1, doublez1)
 
double perp2 () const
 
double perp2 (const BasicVector3D< double > &v) const
 
double perp () const
 
double perp (const BasicVector3D< double > &v) const
 
double rho () const
 
void setPerp (doublerh)
 
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 (doublema)
 
void setR (doublema)
 
void setPhi (doubleph)
 
void setTheta (doubleth)
 
double pseudoRapidity () const
 
double eta () const
 
double getEta () const
 
void setEta (doublea)
 
double dot (const BasicVector3D< double > &v) const
 
BasicVector3D< double > cross (const BasicVector3D< double > &v) const
 
double angle (const BasicVector3D< double > &v) const
 
BasicVector3D< double > unit () const
 
BasicVector3D< double > orthogonal () const
 
BasicVector3D< double > & rotateX (doublea)
 
BasicVector3D< double > & rotateY (doublea)
 
BasicVector3D< double > & rotateZ (doublea)
 
BasicVector3D< double > & rotate (doublea, const BasicVector3D< double > &v)
 

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

template<>
class HepGeom::Normal3D< double >

Geometrical 3D Normal 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 101 of file Normal3D.h.

Constructor & Destructor Documentation

HepGeom::Normal3D< double >::Normal3D ( )
inline

Default constructor.

Definition at line 105 of file Normal3D.h.

105 {}
HepGeom::Normal3D< double >::Normal3D ( double  x1,
double  y1,
double  z1 
)
inline

Constructor from three numbers.

Definition at line 109 of file Normal3D.h.

109 : BasicVector3D<double>(x1,y1,z1) {}
HepGeom::Normal3D< double >::Normal3D ( const float *  a)
inlineexplicit

Constructor from array of floats.

Definition at line 113 of file Normal3D.h.

114  : BasicVector3D<double>(a[0],a[1],a[2]) {}
HepGeom::Normal3D< double >::Normal3D ( const double *  a)
inlineexplicit

Constructor from array of doubles.

Definition at line 118 of file Normal3D.h.

119  : BasicVector3D<double>(a[0],a[1],a[2]) {}
HepGeom::Normal3D< double >::Normal3D ( const Normal3D< double > &  v)
inline

Copy constructor.

Definition at line 123 of file Normal3D.h.

123 : BasicVector3D<double>(v) {}
HepGeom::Normal3D< double >::Normal3D ( const BasicVector3D< float > &  v)
inline

Constructor from BasicVector3D<float>.

Definition at line 127 of file Normal3D.h.

127 : BasicVector3D<double>(v) {}
HepGeom::Normal3D< double >::Normal3D ( const BasicVector3D< double > &  v)
inline

Constructor from BasicVector3D<double>.

Definition at line 131 of file Normal3D.h.

131 : BasicVector3D<double>(v) {}
HepGeom::Normal3D< double >::~Normal3D ( )
inline

Destructor.

Definition at line 135 of file Normal3D.h.

135 {}
HepGeom::Normal3D< double >::Normal3D ( 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 142 of file Normal3D.h.

143  : BasicVector3D<double>(v.x(),v.y(),v.z()) {}
double x() const
double z() const
double y() const

Member Function Documentation

HepGeom::Normal3D< 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 150 of file Normal3D.h.

Here is the call graph for this function:

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

Assignment.

Definition at line 154 of file Normal3D.h.

154  {
155  set(v.x(),v.y(),v.z()); return *this;
156  }
void set(doublex1, doubley1, doublez1)

Here is the call graph for this function:

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

Assignment from BasicVector3D<float>.

Definition at line 160 of file Normal3D.h.

160  {
161  set(v.x(),v.y(),v.z()); return *this;
162  }
void set(doublex1, doubley1, doublez1)

Here is the call graph for this function:

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

Assignment from BasicVector3D<double>.

Definition at line 166 of file Normal3D.h.

166  {
167  set(v.x(),v.y(),v.z()); return *this;
168  }
void set(doublex1, doubley1, doublez1)

Here is the call graph for this function:

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

Transformation by Transform3D.

Definition at line 37 of file Normal3D.cc.

37  {
38  double vx = x(), vy = y(), vz = z();
39  double xx = m.xx(), xy = m.xy(), xz = m.xz();
40  double yx = m.yx(), yy = m.yy(), yz = m.yz();
41  double zx = m.zx(), zy = m.zy(), zz = m.zz();
42  set((yy*zz-yz*zy)*vx+(yz*zx-yx*zz)*vy+(yx*zy-yy*zx)*vz,
43  (zy*xz-zz*xy)*vx+(zz*xx-zx*xz)*vy+(zx*xy-zy*xx)*vz,
44  (xy*yz-xz*yy)*vx+(xz*yx-xx*yz)*vy+(xx*yy-xy*yx)*vz);
45  return *this;
46  }
void set(doublex1, doubley1, doublez1)
static constexpr double m
Definition: G4SIunits.hh:129

Here is the call graph for this function:


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