Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4PointRat.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id$
28//
29// ----------------------------------------------------------------------
30// Class G4PointRat
31//
32// Class description:
33//
34// A G4PointRat object is composed of:
35// - a point in 3D space (G4Point3D)
36// - a scale factor (set to 1 by default)
37
38// Authors: J.Sulkimo, P.Urban.
39// Revisions by: A.Floquet, L.Broglia, G.Cosmo.
40// ----------------------------------------------------------------------
41#ifndef __G4POINT_RAT
42#define __G4POINT_RAT
43
44#include "geomdefs.hh" // For kInfinity
45
46#include "G4Point3D.hh"
47#include "G4Plane3D.hh"
48
49#define SQRT_SMALL_FASTF 1.0e-18
50#define SMALL SQRT_SMALL_FASTF
51#define ROW 0
52#define COL 1
53
54const G4Point3D PINFINITY(kInfinity, kInfinity, kInfinity);
55
57{
58
59public: // with description
60
61 G4PointRat();
63 // Constructor & destructor.
64
65 G4PointRat(const G4Point3D&);
66 // Copy constructor.
67
70 // Overloaded assignment operators.
71
72 inline G4double x() const;
73 inline void setX (G4double Value);
74 inline G4double y() const;
75 inline void setY (G4double Value);
76 inline G4double z() const;
77 inline void setZ (G4double Value);
78 inline G4double w() const;
79 inline void setW(G4double Value);
80 inline G4Point3D pt() const;
81 // Get/Set methods for attributes.
82
83 inline G4double PlaneDistance(const G4Plane3D& Pl) const;
84 // Returns distance from a given plane.
85
86public: // without description
87
88 G4int GetType(void) const; // This function should be removed
89 // if calls to this are also removed
90
91private:
92
93 G4Point3D pt3d;
94 G4double s;
95};
96
97#include "G4PointRat.icc"
98
99#endif
const G4Point3D PINFINITY(kInfinity, kInfinity, kInfinity)
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
G4double x() const
G4int GetType(void) const
G4double y() const
void setX(G4double Value)
G4PointRat & operator=(const G4Point3D &)
Definition: G4PointRat.cc:64
G4Point3D pt() const
void setY(G4double Value)
G4double w() const
G4double z() const
G4double PlaneDistance(const G4Plane3D &Pl) const
void setZ(G4double Value)
void setW(G4double Value)