Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4ITNavigatorState2.cc
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 * G4ITNavigatorState2.cc
28 *
29 * Created on: 25 févr. 2014
30 * Author: kara
31 */
32
33#include "G4ITNavigator.hh"
34//#include "G4ITNavigator2.hh"
35
36// !>
37
38G4ITNavigator2 ::G4NavigatorState::G4NavigatorState() :
40{
41 ResetState();
42}
43
45{
46 fHistory.Reset();
47}
48
50{
55 fEntering = false;
56 fExiting = false;
57 fLocatedOnEdge = false;
58 fLastStepWasZero = false;
59 fEnteredDaughter = false;
60 fExitedMother = false;
61 fPushed = false;
62
63 fValidExitNormal = false;
64 fExitNormal = G4ThreeVector(0, 0, 0);
65
67 fPreviousSafety = 0.0;
68
70
71 fStepEndPoint = G4ThreeVector(kInfinity, kInfinity, kInfinity);
72 fLastStepEndPointLocal = G4ThreeVector(kInfinity, kInfinity, kInfinity);
73
76
77 fLastLocatedPointLocal = G4ThreeVector(kInfinity, -kInfinity, 0.0);
79}
80
81G4ITNavigator2 ::G4NavigatorState::G4NavigatorState(const G4NavigatorState& rhs) :
83{
84 fExitNormal = rhs.fExitNormal;
85 fValidExitNormal = rhs.fValidExitNormal;
86 fExiting = rhs.fExiting;
87 fEntering = rhs.fEntering;
88
89 fBlockedPhysicalVolume = rhs.fBlockedPhysicalVolume;
90 fBlockedReplicaNo = rhs.fBlockedReplicaNo,
91
92 fLastStepWasZero = rhs.fLastStepWasZero;
93
94 fLocatedOutsideWorld = rhs.fLocatedOutsideWorld;
95 fLastLocatedPointLocal = rhs.fLastLocatedPointLocal;
99
100 fPreviousSftOrigin = rhs.fPreviousSftOrigin;
101 fPreviousSafety = rhs.fPreviousSafety;
102
103 fLastTriedStepComputation = rhs.fLastTriedStepComputation;
104 fChangedGrandMotherRefFrame = rhs.fChangedGrandMotherRefFrame;
105 fCalculatedExitNormal = rhs.fCalculatedExitNormal;
106
107 fNumberZeroSteps = rhs.fNumberZeroSteps;
108 fLocatedOnEdge = rhs.fLocatedOnEdge;
109 fPushed = rhs.fPushed;
110 fNumberZeroSteps = rhs.fNumberZeroSteps;
111}
112
115{
116 if (this == &rhs) return *this;
117 fExitNormal = rhs.fExitNormal;
118 fValidExitNormal = rhs.fValidExitNormal;
119 fExiting = rhs.fExiting;
120 fEntering = rhs.fEntering;
121
122 fBlockedPhysicalVolume = rhs.fBlockedPhysicalVolume;
123 fBlockedReplicaNo = rhs.fBlockedReplicaNo;
124 fCalculatedExitNormal = rhs.fCalculatedExitNormal;
125
126 fLastStepWasZero = rhs.fLastStepWasZero;
127 fLastTriedStepComputation = rhs.fLastTriedStepComputation;
128 fChangedGrandMotherRefFrame = rhs.fChangedGrandMotherRefFrame;
129
130 fPreviousSftOrigin = rhs.fPreviousSftOrigin;
131 fPreviousSafety = rhs.fPreviousSafety;
132 fNumberZeroSteps = rhs.fNumberZeroSteps;
133 fLocatedOnEdge = rhs.fLocatedOnEdge;
135 fPushed = rhs.fPushed;
136 fNumberZeroSteps = rhs.fNumberZeroSteps;
139
140 fLastLocatedPointLocal = rhs.fLastLocatedPointLocal;
141 fLocatedOutsideWorld = rhs.fLocatedOutsideWorld;
142
143 return *this;
144}
145
146G4ITNavigator2 ::G4SaveNavigatorState::G4SaveNavigatorState()
147{
148
149 sWasLimitedByGeometry = false;
150 sEntering = false;
151 sExiting = false;
152 sLastStepWasZero = false;
153 sEnteredDaughter = false;
154 sExitedMother = false;
155
156
157 sValidExitNormal = false;
158 sExitNormal = G4ThreeVector(0, 0, 0);
159
160 sPreviousSftOrigin = G4ThreeVector(0, 0, 0);
161 sPreviousSafety = 0.0;
162
163// sLocatedOnEdge = false;
164// sPushed = false;
165// sNumberZeroSteps = 0;
166
167 spBlockedPhysicalVolume = 0;
168 sBlockedReplicaNo = -1;
169
170 sLastLocatedPointLocal = G4ThreeVector(kInfinity, -kInfinity, 0.0);
171 sLocatedOutsideWorld = false;
172}
173
174G4ITNavigator2 ::G4SaveNavigatorState::G4SaveNavigatorState(G4NavigatorState* rhs)
175{
176 sExitNormal = rhs->fExitNormal;
177 sValidExitNormal = rhs->fValidExitNormal;
178 sExiting = rhs->fExiting;
179 sEntering = rhs->fEntering;
180
181 spBlockedPhysicalVolume = rhs->fBlockedPhysicalVolume;
182 sBlockedReplicaNo = rhs->fBlockedReplicaNo;
183
184 sLastStepWasZero = rhs->fLastStepWasZero;
185
186 sPreviousSftOrigin = rhs->fPreviousSftOrigin;
187 sPreviousSafety = rhs->fPreviousSafety;
188
189 sWasLimitedByGeometry = rhs->fWasLimitedByGeometry;
190
191// sLocatedOnEdge = rhs->fLocatedOnEdge;
192// sPushed = rhs->fPushed;
193// sNumberZeroSteps = rhs->fNumberZeroSteps;
194
195 sEnteredDaughter = rhs->fEnteredDaughter;
196 sExitedMother = rhs->fExitedMother;
197
198 sLastLocatedPointLocal = rhs->fLastLocatedPointLocal;
199 sLocatedOutsideWorld = rhs->fLocatedOutsideWorld;
200}
201
203{
206 fExiting = rhs.sExiting;
207 fEntering = rhs.sEntering;
208
211// fCalculatedExitNormal = rhs.sCalculatedExitNormal;
212
214// fLastTriedStepComputation =rhs.sLastTriedStepComputation;
215// fChangedGrandMotherRefFrame = rhs.sChangedGrandMotherRefFrame;
216
219// fNumberZeroSteps = rhs.sNumberZeroSteps;
220// fLocatedOnEdge = rhs.sLocatedOnEdge;
221// fPushed = rhs.sPushed;
223
226
229 return *this;
230}
#define fWasLimitedByGeometry
#define fLastStepEndPointLocal
#define fExiting
#define fLocatedOutsideWorld
#define fBlockedReplicaNo
#define fLocatedOnEdge
#define fStepEndPoint
#define fHistory
#define fLastLocatedPointLocal
#define fValidExitNormal
#define fChangedGrandMotherRefFrame
#define fBlockedPhysicalVolume
#define fCalculatedExitNormal
#define fNumberZeroSteps
#define fPreviousSftOrigin
#define fEnteredDaughter
#define fPushed
#define fExitNormal
#define fExitedMother
#define fLastStepWasZero
#define fPreviousSafety
#define fEntering
#define fLastTriedStepComputation
CLHEP::Hep3Vector G4ThreeVector
G4NavigatorState & operator=(const G4NavigatorState &)
G4VPhysicalVolume * spBlockedPhysicalVolume