Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4SteppingVerboseWithUnits.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/// \file
27/// \brief Implementation of the G4SteppingVerboseWithUnits class
28//
29//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
30//
31// Stepping Verbose with units for all the applicable double values
32// This class is ported from TestEm2 extended example
33// Original author : Michel Maire (LAPP)
34// Porting with addition of UI command : Makoto Asai (SLAC) Feb.23.2021
35//
36//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
37
39
40#include "G4GenericMessenger.hh"
41#include "G4SteppingManager.hh"
42#include "G4UnitsTable.hh"
43
44//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
45
47
48//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
49
51
52//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
53
55{
56 fManager = fMan;
57 fmessenger = new G4GenericMessenger(this, "/tracking/", "precision of verbose output");
58 auto& cmd =
59 fmessenger->DeclareProperty("setVerbosePrecision", fprec, "set precision of verbose output");
61}
62
63//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
64
66{
67 CopyState();
68 G4long oldprec = G4cout.precision(fprec);
69
70 // Step zero
71 //
72 if (verboseLevel > 0) {
73 G4cout << std::setw(5) << "Step#"
74 << " " << std::setw(fprec + 3) << "X"
75 << " " << std::setw(fprec + 3) << "Y"
76 << " " << std::setw(fprec + 3) << "Z"
77 << " " << std::setw(fprec + 6) << "KineE"
78 << " " << std::setw(fprec + 10) << "dEStep"
79 << " " << std::setw(fprec + 7) << "StepLeng" << std::setw(fprec + 7) << "TrakLeng"
80 << std::setw(10) << "Volume"
81 << " " << std::setw(10) << "Process" << G4endl;
82
83 G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " << std::setw(fprec + 3)
84 << G4BestUnit(fTrack->GetPosition().x(), "Length") << std::setw(fprec + 3)
85 << G4BestUnit(fTrack->GetPosition().y(), "Length") << std::setw(fprec + 3)
86 << G4BestUnit(fTrack->GetPosition().z(), "Length") << std::setw(fprec + 3)
87 << G4BestUnit(fTrack->GetKineticEnergy(), "Energy") << std::setw(fprec + 7)
88 << G4BestUnit(fStep->GetTotalEnergyDeposit(), "Energy") << std::setw(fprec + 3)
89 << G4BestUnit(fStep->GetStepLength(), "Length") << std::setw(fprec + 3)
90 << G4BestUnit(fTrack->GetTrackLength(), "Length") << std::setw(10)
91 << fTrack->GetVolume()->GetName() << std::setw(9) << " initStep" << G4endl;
92 }
93 G4cout.precision(oldprec);
94}
95
96//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
97
99{
100 CopyState();
101 G4long oldprec = G4cout.precision(fprec);
102
103 if (verboseLevel >= 1) {
104 if (verboseLevel >= 4) VerboseTrack();
105 if (verboseLevel >= 3) {
106 G4cout << G4endl;
107 G4cout << std::setw(5) << "#Step#"
108 << " " << std::setw(fprec + 3) << "X"
109 << " " << std::setw(fprec + 3) << "Y"
110 << " " << std::setw(fprec + 3) << "Z"
111 << " " << std::setw(fprec + 6) << "KineE"
112 << " " << std::setw(fprec + 10) << "dEStep"
113 << " " << std::setw(fprec + 7) << "StepLeng" << std::setw(fprec + 7) << "TrakLeng"
114 << std::setw(10) << "Volume"
115 << " " << std::setw(10) << "Process" << G4endl;
116 }
117
118 G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " << std::setw(fprec + 3)
119 << G4BestUnit(fTrack->GetPosition().x(), "Length") << std::setw(fprec + 3)
120 << G4BestUnit(fTrack->GetPosition().y(), "Length") << std::setw(fprec + 3)
121 << G4BestUnit(fTrack->GetPosition().z(), "Length") << std::setw(fprec + 3)
122 << G4BestUnit(fTrack->GetKineticEnergy(), "Energy") << std::setw(fprec + 7)
123 << G4BestUnit(fStep->GetTotalEnergyDeposit(), "Energy") << std::setw(fprec + 3)
124 << G4BestUnit(fStep->GetStepLength(), "Length") << std::setw(fprec + 3)
125 << G4BestUnit(fTrack->GetTrackLength(), "Length") << std::setw(10)
126 << fTrack->GetVolume()->GetName();
127
129 G4String procName = " UserLimit";
130 if (process != nullptr) procName = process->GetProcessName();
131 if (fStepStatus == fWorldBoundary) procName = "OutOfWorld";
132 G4cout << " " << std::setw(9) << procName;
133 G4cout << G4endl;
134
135 if (verboseLevel == 2) {
136 const std::vector<const G4Track*>* secondary = fStep->GetSecondaryInCurrentStep();
137 if (! secondary->empty()) {
138 G4cout << "\n :----- List of secondaries ----------------" << G4endl;
139 G4cout.precision(4);
140 for (auto lp : *secondary) {
141 G4cout << " " << std::setw(13) << lp->GetDefinition()->GetParticleName()
142 << ": energy =" << std::setw(6) << G4BestUnit(lp->GetKineticEnergy(), "Energy")
143 << " time =" << std::setw(6) << G4BestUnit(lp->GetGlobalTime(), "Time");
144 G4cout << G4endl;
145 }
146
147 G4cout << " :------------------------------------------\n" << G4endl;
148 }
149 }
150 }
151 G4cout.precision(oldprec);
152}
153
154//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
155
157{
158 G4VProcess* ptProcManager;
159 CopyState();
160
161 if (verboseLevel >= 3) {
162 G4int npt = 0;
163 G4cout << " **List of AtRestDoIt invoked:" << G4endl;
164 for (std::size_t np = 0; np < MAXofAtRestLoops; ++np) {
165 std::size_t npGPIL = MAXofAtRestLoops - np - 1;
167 ++npt;
168 ptProcManager = (*fAtRestDoItVector)[(G4int)np];
169 G4cout << " # " << npt << " : " << ptProcManager->GetProcessName() << " (Forced)"
170 << G4endl;
171 }
173 ++npt;
174 ptProcManager = (*fAtRestDoItVector)[(G4int)np];
175 G4cout << " # " << npt << " : " << ptProcManager->GetProcessName() << G4endl;
176 }
177 }
178
179 G4cout << " Generated secondaries = " << fN2ndariesAtRestDoIt << G4endl;
180
181 if (fN2ndariesAtRestDoIt > 0) {
182 G4cout << " -- List of secondaries generated : "
183 << "(x,y,z,kE,t,PID) --" << G4endl;
184 for (std::size_t lp1 = (*fSecondary).size() - fN2ndariesAtRestDoIt;
185 lp1 < (*fSecondary).size(); ++lp1)
186 {
187 G4cout << " " << std::setw(9)
188 << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(), "Length") << " " << std::setw(9)
189 << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(), "Length") << " " << std::setw(9)
190 << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(), "Length") << " " << std::setw(9)
191 << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(), "Energy") << " "
192 << std::setw(9) << G4BestUnit((*fSecondary)[lp1]->GetGlobalTime(), "Time") << " "
193 << std::setw(18) << (*fSecondary)[lp1]->GetDefinition()->GetParticleName() << G4endl;
194 }
195 }
196 }
197
198 if (verboseLevel >= 4) {
199 ShowStep();
200 G4cout << G4endl;
201 }
202}
203
204//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
205
207{
208 G4VProcess* ptProcManager;
209
210 CopyState();
211
212 if (verboseLevel >= 3) {
213 G4cout << G4endl;
214 G4cout << " >>AlongStepDoIt (after all invocations):" << G4endl;
215 G4cout << " ++List of invoked processes " << G4endl;
216
217 for (std::size_t ci = 0; ci < MAXofAlongStepLoops; ++ci) {
218 ptProcManager = (*fAlongStepDoItVector)((G4int)ci);
219 G4cout << " " << ci + 1 << ") ";
220 if (ptProcManager != nullptr) {
221 G4cout << ptProcManager->GetProcessName() << G4endl;
222 }
223 }
224
225 ShowStep();
226 G4cout << G4endl;
227 G4cout << " ++List of secondaries generated "
228 << "(x,y,z,kE,t,PID):"
229 << " No. of secondaries = " << (*fSecondary).size() << G4endl;
230
231 if (! (*fSecondary).empty()) {
232 for (auto& lp1 : *fSecondary) {
233 G4cout << " " << std::setw(9) << G4BestUnit(lp1->GetPosition().x(), "Length") << " "
234 << std::setw(9) << G4BestUnit(lp1->GetPosition().y(), "Length") << " "
235 << std::setw(9) << G4BestUnit(lp1->GetPosition().z(), "Length") << " "
236 << std::setw(9) << G4BestUnit(lp1->GetKineticEnergy(), "Energy") << " "
237 << std::setw(9) << G4BestUnit(lp1->GetGlobalTime(), "Time") << " " << std::setw(18)
238 << lp1->GetDefinition()->GetParticleName() << G4endl;
239 }
240 }
241 }
242}
243
244//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
245
247{
248 G4VProcess* ptProcManager;
249
250 CopyState();
251
252 if ((static_cast<int>(fStepStatus == fPostStepDoItProc) | static_cast<int>(fCondition == Forced) |
253 static_cast<int>(fCondition == Conditionally) |
254 static_cast<int>(fCondition == ExclusivelyForced) |
255 static_cast<int>(fCondition == StronglyForced)) != 0)
256 {
257 if (verboseLevel >= 3) {
258 G4int npt = 0;
259 G4cout << G4endl;
260 G4cout << " **PostStepDoIt (after all invocations):" << G4endl;
261 G4cout << " ++List of invoked processes " << G4endl;
262
263 for (std::size_t np = 0; np < MAXofPostStepLoops; ++np) {
264 std::size_t npGPIL = MAXofPostStepLoops - np - 1;
266 ++npt;
267 ptProcManager = (*fPostStepDoItVector)[(G4int)np];
268 G4cout << " " << npt << ") " << ptProcManager->GetProcessName() << " (Forced)"
269 << G4endl;
270 }
272 ++npt;
273 ptProcManager = (*fPostStepDoItVector)[(G4int)np];
274 G4cout << " " << npt << ") " << ptProcManager->GetProcessName() << G4endl;
275 }
276 }
277
278 ShowStep();
279 G4cout << G4endl;
280 G4cout << " ++List of secondaries generated "
281 << "(x,y,z,kE,t,PID):"
282 << " No. of secondaries = " << (*fSecondary).size() << G4endl;
283 G4cout << " [Note]Secondaries from AlongStepDoIt included." << G4endl;
284
285 if (! (*fSecondary).empty()) {
286 for (auto& lp1 : *fSecondary) {
287 G4cout << " " << std::setw(9) << G4BestUnit(lp1->GetPosition().x(), "Length") << " "
288 << std::setw(9) << G4BestUnit(lp1->GetPosition().y(), "Length") << " "
289 << std::setw(9) << G4BestUnit(lp1->GetPosition().z(), "Length") << " "
290 << std::setw(9) << G4BestUnit(lp1->GetKineticEnergy(), "Energy") << " "
291 << std::setw(9) << G4BestUnit(lp1->GetGlobalTime(), "Time") << " " << std::setw(18)
292 << lp1->GetDefinition()->GetParticleName() << G4endl;
293 }
294 }
295 }
296 }
297}
298
299//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
300
302{
303 CopyState();
304
305 if (verboseLevel > 5) {
306 G4cout << G4endl << " >>DefinePhysicalStepLength (List of proposed StepLengths): " << G4endl;
307 }
308}
309
310//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
311
313{
314 CopyState();
315
316 if (verboseLevel > 5) {
317 G4cout << G4endl << G4endl;
318 G4cout << "=== Defined Physical Step Length (DPSL)" << G4endl;
319 G4cout << " ++ProposedStep(UserLimit) = " << std::setw(9)
320 << G4BestUnit(physIntLength, "Length")
321 << " : ProcName = User defined maximum allowed Step" << G4endl;
322 }
323}
324
325//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
326
328{
329 CopyState();
330
331 if (verboseLevel > 5) {
332 G4cout << " ++ProposedStep(PostStep ) = " << std::setw(9)
333 << G4BestUnit(physIntLength, "Length")
334 << " : ProcName = " << fCurrentProcess->GetProcessName() << " (";
336 G4cout << "ExclusivelyForced)" << G4endl;
337 }
338 else if (fCondition == StronglyForced) {
339 G4cout << "StronglyForced)" << G4endl;
340 }
341 else if (fCondition == Conditionally) {
342 G4cout << "Conditionally)" << G4endl;
343 }
344 else if (fCondition == Forced) {
345 G4cout << "Forced)" << G4endl;
346 }
347 else {
348 G4cout << "No ForceCondition)" << G4endl;
349 }
350 }
351}
352
353//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
354
356{
357 CopyState();
358
359 if (verboseLevel > 5) {
360 G4cout << " ++ProposedStep(AlongStep) = " << std::setw(9)
361 << G4BestUnit(physIntLength, "Length")
362 << " : ProcName = " << fCurrentProcess->GetProcessName() << " (";
364 G4cout << "CandidateForSelection)" << G4endl;
365 }
367 G4cout << "NotCandidateForSelection)" << G4endl;
368 }
369 else {
370 G4cout << "?!?)" << G4endl;
371 }
372 }
373}
374
375//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
376
378{
379 CopyState();
380
381 if (verboseLevel >= 4) {
382 G4cout << G4endl;
383 G4cout << " >>AlongStepDoIt (process by process): "
384 << " Process Name = " << fCurrentProcess->GetProcessName() << G4endl;
385
386 ShowStep();
387 G4cout << " "
388 << "!Note! Safety of PostStep is only valid "
389 << "after all DoIt invocations." << G4endl;
390
392 G4cout << G4endl;
393
394 G4cout << " ++List of secondaries generated "
395 << "(x,y,z,kE,t,PID):"
396 << " No. of secondaries = " << fN2ndariesAlongStepDoIt << G4endl;
397
398 if (fN2ndariesAlongStepDoIt > 0) {
399 for (std::size_t lp1 = (*fSecondary).size() - fN2ndariesAlongStepDoIt;
400 lp1 < (*fSecondary).size(); ++lp1)
401 {
402 G4cout << " " << std::setw(9)
403 << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(), "Length") << " " << std::setw(9)
404 << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(), "Length") << " " << std::setw(9)
405 << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(), "Length") << " " << std::setw(9)
406 << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(), "Energy") << " "
407 << std::setw(9) << G4BestUnit((*fSecondary)[lp1]->GetGlobalTime(), "Time") << " "
408 << std::setw(18) << (*fSecondary)[lp1]->GetDefinition()->GetParticleName() << G4endl;
409 }
410 }
411 }
412}
413
414//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
415
417{
418 CopyState();
419
420 if (verboseLevel >= 4) {
421 G4cout << G4endl;
422 G4cout << " >>PostStepDoIt (process by process): "
423 << " Process Name = " << fCurrentProcess->GetProcessName() << G4endl;
424
425 ShowStep();
426 G4cout << G4endl;
428 G4cout << G4endl;
429
430 G4cout << " ++List of secondaries generated "
431 << "(x,y,z,kE,t,PID):"
432 << " No. of secondaries = " << fN2ndariesPostStepDoIt << G4endl;
433
434 if (fN2ndariesPostStepDoIt > 0) {
435 for (std::size_t lp1 = (*fSecondary).size() - fN2ndariesPostStepDoIt;
436 lp1 < (*fSecondary).size(); ++lp1)
437 {
438 G4cout << " " << std::setw(9)
439 << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(), "Length") << " " << std::setw(9)
440 << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(), "Length") << " " << std::setw(9)
441 << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(), "Length") << " " << std::setw(9)
442 << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(), "Energy") << " "
443 << std::setw(9) << G4BestUnit((*fSecondary)[lp1]->GetGlobalTime(), "Time") << " "
444 << std::setw(18) << (*fSecondary)[lp1]->GetDefinition()->GetParticleName() << G4endl;
445 }
446 }
447 }
448}
449
450//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
451
453{
454 CopyState();
455
456 G4cout << G4endl;
457 G4cout << " ++G4Track Information " << G4endl;
458 G4long oldprec = G4cout.precision(fprec);
459
460 G4cout << " -----------------------------------------------" << G4endl;
461 G4cout << " G4Track Information " << std::setw(20) << G4endl;
462 G4cout << " -----------------------------------------------" << G4endl;
463
464 G4cout << " Step number : " << std::setw(20) << fTrack->GetCurrentStepNumber()
465 << G4endl;
466 G4cout << " Position - x : " << std::setw(20)
467 << G4BestUnit(fTrack->GetPosition().x(), "Length") << G4endl;
468 G4cout << " Position - y : " << std::setw(20)
469 << G4BestUnit(fTrack->GetPosition().y(), "Length") << G4endl;
470 G4cout << " Position - z : " << std::setw(20)
471 << G4BestUnit(fTrack->GetPosition().z(), "Length") << G4endl;
472 G4cout << " Global Time : " << std::setw(20)
473 << G4BestUnit(fTrack->GetGlobalTime(), "Time") << G4endl;
474 G4cout << " Local Time : " << std::setw(20)
475 << G4BestUnit(fTrack->GetLocalTime(), "Time") << G4endl;
476 G4cout << " Momentum Direct - x : " << std::setw(20) << fTrack->GetMomentumDirection().x()
477 << G4endl;
478 G4cout << " Momentum Direct - y : " << std::setw(20) << fTrack->GetMomentumDirection().y()
479 << G4endl;
480 G4cout << " Momentum Direct - z : " << std::setw(20) << fTrack->GetMomentumDirection().z()
481 << G4endl;
482 G4cout << " Kinetic Energy : " << std::setw(20)
483 << G4BestUnit(fTrack->GetKineticEnergy(), "Energy") << G4endl;
484 G4cout << " Polarization - x : " << std::setw(20) << fTrack->GetPolarization().x()
485 << G4endl;
486 G4cout << " Polarization - y : " << std::setw(20) << fTrack->GetPolarization().y()
487 << G4endl;
488 G4cout << " Polarization - z : " << std::setw(20) << fTrack->GetPolarization().z()
489 << G4endl;
490 G4cout << " Track Length : " << std::setw(20)
491 << G4BestUnit(fTrack->GetTrackLength(), "Length") << G4endl;
492 G4cout << " Track ID # : " << std::setw(20) << fTrack->GetTrackID() << G4endl;
493 G4cout << " Parent Track ID # : " << std::setw(20) << fTrack->GetParentID() << G4endl;
494 G4cout << " Next Volume : " << std::setw(20);
495 if (fTrack->GetNextVolume() != nullptr)
496 G4cout << fTrack->GetNextVolume()->GetName() << " ";
497 else
498 G4cout << "OutOfWorld"
499 << " ";
500 G4cout << G4endl;
501 G4cout << " Track Status : " << std::setw(20);
502 if (fTrack->GetTrackStatus() == fAlive)
503 G4cout << " Alive";
504 else if (fTrack->GetTrackStatus() == fStopButAlive)
505 G4cout << " StopButAlive";
506 else if (fTrack->GetTrackStatus() == fStopAndKill)
507 G4cout << " StopAndKill";
509 G4cout << " KillTrackAndSecondaries";
510 else if (fTrack->GetTrackStatus() == fSuspend)
511 G4cout << " Suspend";
513 G4cout << " PostponeToNextEvent";
514 G4cout << G4endl;
515 G4cout << " Vertex - x : " << std::setw(20)
516 << G4BestUnit(fTrack->GetVertexPosition().x(), "Length") << G4endl;
517 G4cout << " Vertex - y : " << std::setw(20)
518 << G4BestUnit(fTrack->GetVertexPosition().y(), "Length") << G4endl;
519 G4cout << " Vertex - z : " << std::setw(20)
520 << G4BestUnit(fTrack->GetVertexPosition().z(), "Length") << G4endl;
521 G4cout << " Vertex - Px (MomDir): " << std::setw(20)
523 G4cout << " Vertex - Py (MomDir): " << std::setw(20)
525 G4cout << " Vertex - Pz (MomDir): " << std::setw(20)
527 G4cout << " Vertex - KineE : " << std::setw(20)
529
530 G4cout << " Creator Process : " << std::setw(20);
531 if (fTrack->GetCreatorProcess() == nullptr)
532 G4cout << " Event Generator" << G4endl;
533 else
535
536 G4cout << " -----------------------------------------------" << G4endl;
537 G4cout.precision(oldprec);
538}
539
540//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
541
543{
544 G4cout << G4endl;
545 G4cout << " ++G4ParticleChange Information " << G4endl;
547}
548
549//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
550
552{
553 // Show header
554 G4cout << G4endl;
555 G4cout << " ++G4Step Information " << G4endl;
556 G4long oldprc = G4cout.precision(fprec);
557
558 // Show G4Step specific information
559 G4cout << " Address of G4Track : " << fStep->GetTrack() << G4endl;
560 G4cout << " Step Length : "
561 << G4BestUnit(fStep->GetTrack()->GetStepLength(), "Length") << G4endl;
562 G4cout << " Energy Deposit : " << G4BestUnit(fStep->GetTotalEnergyDeposit(), "Energy")
563 << G4endl;
564
565 // Show G4StepPoint specific information
566 G4cout << " -------------------------------------------------------"
567 << "----------------" << G4endl;
568 G4cout << " StepPoint Information " << std::setw(20) << "PreStep" << std::setw(20)
569 << "PostStep" << G4endl;
570 G4cout << " -------------------------------------------------------"
571 << "----------------" << G4endl;
572 G4cout << " Position - x : " << std::setw(17)
573 << G4BestUnit(fStep->GetPreStepPoint()->GetPosition().x(), "Length") << std::setw(17)
574 << G4BestUnit(fStep->GetPostStepPoint()->GetPosition().x(), "Length") << G4endl;
575 G4cout << " Position - y : " << std::setw(17)
576 << G4BestUnit(fStep->GetPreStepPoint()->GetPosition().y(), "Length") << std::setw(17)
577 << G4BestUnit(fStep->GetPostStepPoint()->GetPosition().y(), "Length") << G4endl;
578 G4cout << " Position - z : " << std::setw(17)
579 << G4BestUnit(fStep->GetPreStepPoint()->GetPosition().z(), "Length") << std::setw(17)
580 << G4BestUnit(fStep->GetPostStepPoint()->GetPosition().z(), "Length") << G4endl;
581 G4cout << " Global Time : " << std::setw(17)
582 << G4BestUnit(fStep->GetPreStepPoint()->GetGlobalTime(), "Time") << std::setw(17)
584 G4cout << " Local Time : " << std::setw(17)
585 << G4BestUnit(fStep->GetPreStepPoint()->GetLocalTime(), "Time") << std::setw(17)
587 G4cout << " Proper Time : " << std::setw(17)
588 << G4BestUnit(fStep->GetPreStepPoint()->GetProperTime(), "Time") << std::setw(17)
590 G4cout << " Momentum Direct - x : " << std::setw(20)
591 << fStep->GetPreStepPoint()->GetMomentumDirection().x() << std::setw(20)
593 G4cout << " Momentum Direct - y : " << std::setw(20)
594 << fStep->GetPreStepPoint()->GetMomentumDirection().y() << std::setw(20)
596 G4cout << " Momentum Direct - z : " << std::setw(20)
597 << fStep->GetPreStepPoint()->GetMomentumDirection().z() << std::setw(20)
599 G4cout << " Momentum - x : " << std::setw(14)
600 << G4BestUnit(fStep->GetPreStepPoint()->GetMomentum().x(), "Momentum") << std::setw(14)
601 << G4BestUnit(fStep->GetPostStepPoint()->GetMomentum().x(), "Momentum") << G4endl;
602 G4cout << " Momentum - y : " << std::setw(14)
603 << G4BestUnit(fStep->GetPreStepPoint()->GetMomentum().y(), "Momentum") << std::setw(14)
604 << G4BestUnit(fStep->GetPostStepPoint()->GetMomentum().y(), "Momentum") << G4endl;
605 G4cout << " Momentum - z : " << std::setw(14)
606 << G4BestUnit(fStep->GetPreStepPoint()->GetMomentum().z(), "Momentum") << std::setw(14)
607 << G4BestUnit(fStep->GetPostStepPoint()->GetMomentum().z(), "Momentum") << G4endl;
608 G4cout << " Total Energy : " << std::setw(16)
609 << G4BestUnit(fStep->GetPreStepPoint()->GetTotalEnergy(), "Energy") << std::setw(16)
611 G4cout << " Kinetic Energy : " << std::setw(16)
612 << G4BestUnit(fStep->GetPreStepPoint()->GetKineticEnergy(), "Energy") << std::setw(16)
614 G4cout << " Velocity : " << std::setw(14)
615 << G4BestUnit(fStep->GetPreStepPoint()->GetVelocity(), "Velocity") << std::setw(14)
616 << G4BestUnit(fStep->GetPostStepPoint()->GetVelocity(), "Velocity") << G4endl;
617 G4cout << " Volume Name : " << std::setw(20)
619 G4String volName = "OutOfWorld";
620 if (fStep->GetPostStepPoint()->GetPhysicalVolume() != nullptr)
622 G4cout << std::setw(20) << volName << G4endl;
623 G4cout << " Safety : " << std::setw(17)
624 << G4BestUnit(fStep->GetPreStepPoint()->GetSafety(), "Length") << std::setw(17)
625 << G4BestUnit(fStep->GetPostStepPoint()->GetSafety(), "Length") << G4endl;
626 G4cout << " Polarization - x : " << std::setw(20)
627 << fStep->GetPreStepPoint()->GetPolarization().x() << std::setw(20)
629 G4cout << " Polarization - y : " << std::setw(20)
630 << fStep->GetPreStepPoint()->GetPolarization().y() << std::setw(20)
632 G4cout << " Polarization - Z : " << std::setw(20)
633 << fStep->GetPreStepPoint()->GetPolarization().z() << std::setw(20)
635 G4cout << " Weight : " << std::setw(20)
636 << fStep->GetPreStepPoint()->GetWeight() << std::setw(20)
638 G4cout << " Step Status : ";
640 if (tStepStatus == fGeomBoundary) {
641 G4cout << std::setw(20) << "Geom Limit";
642 }
643 else if (tStepStatus == fAlongStepDoItProc) {
644 G4cout << std::setw(20) << "AlongStep Proc.";
645 }
646 else if (tStepStatus == fPostStepDoItProc) {
647 G4cout << std::setw(20) << "PostStep Proc";
648 }
649 else if (tStepStatus == fAtRestDoItProc) {
650 G4cout << std::setw(20) << "AtRest Proc";
651 }
652 else if (tStepStatus == fUndefined) {
653 G4cout << std::setw(20) << "Undefined";
654 }
655
656 tStepStatus = fStep->GetPostStepPoint()->GetStepStatus();
657 if (tStepStatus == fGeomBoundary) {
658 G4cout << std::setw(20) << "Geom Limit";
659 }
660 else if (tStepStatus == fAlongStepDoItProc) {
661 G4cout << std::setw(20) << "AlongStep Proc.";
662 }
663 else if (tStepStatus == fPostStepDoItProc) {
664 G4cout << std::setw(20) << "PostStep Proc";
665 }
666 else if (tStepStatus == fAtRestDoItProc) {
667 G4cout << std::setw(20) << "AtRest Proc";
668 }
669 else if (tStepStatus == fUndefined) {
670 G4cout << std::setw(20) << "Undefined";
671 }
672
673 G4cout << G4endl;
674 G4cout << " Process defined Step: ";
675 if (fStep->GetPreStepPoint()->GetProcessDefinedStep() == nullptr) {
676 G4cout << std::setw(20) << "Undefined";
677 }
678 else {
680 }
681 if (fStep->GetPostStepPoint()->GetProcessDefinedStep() == nullptr) {
682 G4cout << std::setw(20) << "Undefined";
683 }
684 else {
686 }
687 G4cout.precision(oldprc);
688
689 G4cout << G4endl;
690 G4cout << " -------------------------------------------------------"
691 << "----------------" << G4endl;
692}
693
694//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@ G4State_Idle
@ G4State_PreInit
@ StronglyForced
@ NotForced
@ Conditionally
@ ExclusivelyForced
@ Forced
@ CandidateForSelection
@ NotCandidateForSelection
G4StepStatus
@ fGeomBoundary
@ fWorldBoundary
@ fUndefined
@ fPostStepDoItProc
@ fAtRestDoItProc
@ fAlongStepDoItProc
Definition of the G4SteppingVerboseWithUnits class.
#define G4BestUnit(a, b)
@ fKillTrackAndSecondaries
@ fSuspend
@ fAlive
@ fStopAndKill
@ fStopButAlive
@ fPostponeToNextEvent
long G4long
Definition G4Types.hh:87
int G4int
Definition G4Types.hh:85
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
double z() const
double x() const
double y() const
Command & DeclareProperty(const G4String &name, const G4AnyType &variable, const G4String &doc="")
G4double GetTotalEnergy() const
G4StepStatus GetStepStatus() const
G4double GetVelocity() const
G4double GetProperTime() const
G4double GetGlobalTime() const
G4double GetSafety() const
const G4VProcess * GetProcessDefinedStep() const
G4ThreeVector GetMomentum() const
const G4ThreeVector & GetPosition() const
const G4ThreeVector & GetMomentumDirection() const
G4double GetLocalTime() const
G4VPhysicalVolume * GetPhysicalVolume() const
const G4ThreeVector & GetPolarization() const
G4double GetKineticEnergy() const
G4double GetWeight() const
G4Track * GetTrack() const
const std::vector< const G4Track * > * GetSecondaryInCurrentStep() const
Definition G4Step.cc:202
G4StepPoint * GetPreStepPoint() const
G4double GetStepLength() const
G4double GetTotalEnergyDeposit() const
G4StepPoint * GetPostStepPoint() const
void SetManager(G4SteppingManager *const) override
G4TrackStatus GetTrackStatus() const
G4double GetVertexKineticEnergy() const
G4int GetTrackID() const
G4VPhysicalVolume * GetVolume() const
const G4VProcess * GetCreatorProcess() const
G4VPhysicalVolume * GetNextVolume() const
const G4ThreeVector & GetPosition() const
G4double GetTrackLength() const
const G4ThreeVector & GetVertexMomentumDirection() const
G4double GetGlobalTime() const
G4int GetCurrentStepNumber() const
const G4ThreeVector & GetVertexPosition() const
G4double GetLocalTime() const
const G4ThreeVector & GetMomentumDirection() const
G4double GetKineticEnergy() const
const G4ThreeVector & GetPolarization() const
G4double GetStepLength() const
G4int GetParentID() const
virtual void DumpInfo() const
const G4String & GetName() const
const G4String & GetProcessName() const
G4ForceCondition fCondition
G4GPILSelection fGPILSelection
G4VParticleChange * fParticleChange
G4SelectedPostStepDoItVector * fSelectedPostStepDoItVector
G4SelectedAtRestDoItVector * fSelectedAtRestDoItVector
G4SteppingManager * fManager
G4TrackVector * fSecondary
Command & SetStates(G4ApplicationState s0)