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
G4NavigationLevel.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// class G4NavigationLevel
30//
31// Class description:
32//
33// Maintains one level of the geometrical hierarchy.
34// A utility class for use by G4NavigationHistory.
35
36// History:
37//
38// 30.09.97 J.Apostolakis Initial version. Services derived from
39// requirements of touchables & G4NavigatorHistory.
40// ----------------------------------------------------------------------
41#ifndef G4NAVIGATIONLEVEL_HH
42#define G4NAVIGATIONLEVEL_HH
43
44#include "G4Types.hh"
45
46#include "G4AffineTransform.hh"
47#include "G4VPhysicalVolume.hh"
48
50#include "G4Allocator.hh"
51
53{
54
55 public: // with description
56
58 const G4AffineTransform& newT,
59 EVolume newVolTp,
60 G4int newRepNo= -1);
61
63 const G4AffineTransform& levelAbove,
64 const G4AffineTransform& relativeCurrent,
65 EVolume newVolTp,
66 G4int newRepNo= -1);
67 // As the previous constructor, but instead of giving Transform, give
68 // the AffineTransform to the level above and the current level's
69 // Transform relative to that.
70
73
75
77
79 inline const G4AffineTransform* GetTransformPtr() const ; // New
80 inline const G4AffineTransform& GetTransform() const ; // Old
81
82 inline EVolume GetVolumeType() const ;
83 inline G4int GetReplicaNo() const ;
84
85 public: // without description
86
87 inline const G4AffineTransform* GetPtrTransform() const;
88 // To try to resolve the possible problem with returning a reference.
89
90 inline void *operator new(size_t);
91 inline void operator delete(void *aLevel);
92 // Override "new" and "delete" to use "G4Allocator".
93
94 inline void *operator new(size_t, void *);
95#ifndef G4NOT_ISO_DELETES
96 inline void operator delete(void *ptr, void*); // Not accepted Sun/HP
97#endif
98 // Pre-allocated 'new' and 'delete' for use with STL
99 // Do not (directly) use Allocator
100
101 private:
102
103 G4NavigationLevelRep* fLevelRep;
104};
105
106#include "G4NavigationLevel.icc"
107
108#endif
int G4int
Definition: G4Types.hh:66
const G4AffineTransform & GetTransform() const
G4NavigationLevel & operator=(const G4NavigationLevel &right)
G4VPhysicalVolume * GetPhysicalVolume() const
EVolume GetVolumeType() const
const G4AffineTransform * GetTransformPtr() const
const G4AffineTransform * GetPtrTransform() const
G4int GetReplicaNo() const
EVolume
Definition: geomdefs.hh:68