Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/tracking/src/G4SteppingVerboseWithUnits.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /tracking/src/G4SteppingVerboseWithUnits.cc (Version 11.3.0) and /tracking/src/G4SteppingVerboseWithUnits.cc (Version 4.0.p2)


  1 //                                                  1 
  2 // *******************************************    
  3 // * License and Disclaimer                       
  4 // *                                              
  5 // * The  Geant4 software  is  copyright of th    
  6 // * the Geant4 Collaboration.  It is provided    
  7 // * conditions of the Geant4 Software License    
  8 // * LICENSE and available at  http://cern.ch/    
  9 // * include a list of copyright holders.         
 10 // *                                              
 11 // * Neither the authors of this software syst    
 12 // * institutes,nor the agencies providing fin    
 13 // * work  make  any representation or  warran    
 14 // * regarding  this  software system or assum    
 15 // * use.  Please see the license in the file     
 16 // * for the full disclaimer and the limitatio    
 17 // *                                              
 18 // * This  code  implementation is the result     
 19 // * technical work of the GEANT4 collaboratio    
 20 // * By using,  copying,  modifying or  distri    
 21 // * any work based  on the software)  you  ag    
 22 // * use  in  resulting  scientific  publicati    
 23 // * acceptance of all terms of the Geant4 Sof    
 24 // *******************************************    
 25 //                                                
 26 /// \file                                         
 27 /// \brief Implementation of the G4SteppingVer    
 28 //                                                
 29 //....oooOO0OOooo........oooOO0OOooo........oo    
 30 //                                                
 31 //  Stepping Verbose with units for all the ap    
 32 //  This class is ported from TestEm2 extended    
 33 //  Original author : Michel Maire (LAPP)         
 34 //  Porting with addition of UI command : Mako    
 35 //                                                
 36 //....oooOO0OOooo........oooOO0OOooo........oo    
 37                                                   
 38 #include "G4SteppingVerboseWithUnits.hh"          
 39                                                   
 40 #include "G4GenericMessenger.hh"                  
 41 #include "G4SteppingManager.hh"                   
 42 #include "G4UnitsTable.hh"                        
 43                                                   
 44 //....oooOO0OOooo........oooOO0OOooo........oo    
 45                                                   
 46 G4SteppingVerboseWithUnits::G4SteppingVerboseW    
 47                                                   
 48 //....oooOO0OOooo........oooOO0OOooo........oo    
 49                                                   
 50 G4SteppingVerboseWithUnits::~G4SteppingVerbose    
 51                                                   
 52 //....oooOO0OOooo........oooOO0OOooo........oo    
 53                                                   
 54 void G4SteppingVerboseWithUnits::SetManager(G4    
 55 {                                                 
 56   fManager = fMan;                                
 57   fmessenger = new G4GenericMessenger(this, "/    
 58   auto& cmd =                                     
 59     fmessenger->DeclareProperty("setVerbosePre    
 60   cmd.SetStates(G4State_PreInit, G4State_Idle)    
 61 }                                                 
 62                                                   
 63 //....oooOO0OOooo........oooOO0OOooo........oo    
 64                                                   
 65 void G4SteppingVerboseWithUnits::TrackingStart    
 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) << "    
 75            << "    " << std::setw(fprec + 3) <    
 76            << "    " << std::setw(fprec + 3) <    
 77            << "    " << std::setw(fprec + 6) <    
 78            << " " << std::setw(fprec + 10) <<     
 79            << " " << std::setw(fprec + 7) << "    
 80            << std::setw(10) << "Volume"           
 81            << "  " << std::setw(10) << "Proces    
 82                                                   
 83     G4cout << std::setw(5) << fTrack->GetCurre    
 84            << G4BestUnit(fTrack->GetPosition()    
 85            << G4BestUnit(fTrack->GetPosition()    
 86            << G4BestUnit(fTrack->GetPosition()    
 87            << G4BestUnit(fTrack->GetKineticEne    
 88            << G4BestUnit(fStep->GetTotalEnergy    
 89            << G4BestUnit(fStep->GetStepLength(    
 90            << G4BestUnit(fTrack->GetTrackLengt    
 91            << fTrack->GetVolume()->GetName() <    
 92   }                                               
 93   G4cout.precision(oldprec);                      
 94 }                                                 
 95                                                   
 96 //....oooOO0OOooo........oooOO0OOooo........oo    
 97                                                   
 98 void G4SteppingVerboseWithUnits::StepInfo()       
 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) <<    
109              << "    " << std::setw(fprec + 3)    
110              << "    " << std::setw(fprec + 3)    
111              << "    " << std::setw(fprec + 6)    
112              << " " << std::setw(fprec + 10) <    
113              << " " << std::setw(fprec + 7) <<    
114              << std::setw(10) << "Volume"         
115              << "  " << std::setw(10) << "Proc    
116     }                                             
117                                                   
118     G4cout << std::setw(5) << fTrack->GetCurre    
119            << G4BestUnit(fTrack->GetPosition()    
120            << G4BestUnit(fTrack->GetPosition()    
121            << G4BestUnit(fTrack->GetPosition()    
122            << G4BestUnit(fTrack->GetKineticEne    
123            << G4BestUnit(fStep->GetTotalEnergy    
124            << G4BestUnit(fStep->GetStepLength(    
125            << G4BestUnit(fTrack->GetTrackLengt    
126            << fTrack->GetVolume()->GetName();     
127                                                   
128     const G4VProcess* process = fStep->GetPost    
129     G4String procName = " UserLimit";             
130     if (process != nullptr) procName = process    
131     if (fStepStatus == fWorldBoundary) procNam    
132     G4cout << "   " << std::setw(9) << procNam    
133     G4cout << G4endl;                             
134                                                   
135     if (verboseLevel == 2) {                      
136       const std::vector<const G4Track*>* secon    
137       if (! secondary->empty()) {                 
138         G4cout << "\n    :----- List of second    
139         G4cout.precision(4);                      
140         for (auto lp : *secondary) {              
141           G4cout << "   " << std::setw(13) <<     
142                  << ":  energy =" << std::setw    
143                  << "  time =" << std::setw(6)    
144           G4cout << G4endl;                       
145         }                                         
146                                                   
147         G4cout << "    :----------------------    
148       }                                           
149     }                                             
150   }                                               
151   G4cout.precision(oldprec);                      
152 }                                                 
153                                                   
154 //....oooOO0OOooo........oooOO0OOooo........oo    
155                                                   
156 void G4SteppingVerboseWithUnits::AtRestDoItInv    
157 {                                                 
158   G4VProcess* ptProcManager;                      
159   CopyState();                                    
160                                                   
161   if (verboseLevel >= 3) {                        
162     G4int npt = 0;                                
163     G4cout << " **List of AtRestDoIt invoked:"    
164     for (std::size_t np = 0; np < MAXofAtRestL    
165       std::size_t npGPIL = MAXofAtRestLoops -     
166       if ((*fSelectedAtRestDoItVector)[npGPIL]    
167         ++npt;                                    
168         ptProcManager = (*fAtRestDoItVector)[(    
169         G4cout << "   # " << npt << " : " << p    
170                << G4endl;                         
171       }                                           
172       else if ((*fSelectedAtRestDoItVector)[np    
173         ++npt;                                    
174         ptProcManager = (*fAtRestDoItVector)[(    
175         G4cout << "   # " << npt << " : " << p    
176       }                                           
177     }                                             
178                                                   
179     G4cout << "   Generated secondaries = " <<    
180                                                   
181     if (fN2ndariesAtRestDoIt > 0) {               
182       G4cout << "   -- List of secondaries gen    
183              << "(x,y,z,kE,t,PID) --" << G4end    
184       for (std::size_t lp1 = (*fSecondary).siz    
185            lp1 < (*fSecondary).size(); ++lp1)     
186       {                                           
187         G4cout << "      " << std::setw(9)        
188                << G4BestUnit((*fSecondary)[lp1    
189                << G4BestUnit((*fSecondary)[lp1    
190                << G4BestUnit((*fSecondary)[lp1    
191                << G4BestUnit((*fSecondary)[lp1    
192                << std::setw(9) << G4BestUnit((    
193                << std::setw(18) << (*fSecondar    
194       }                                           
195     }                                             
196   }                                               
197                                                   
198   if (verboseLevel >= 4) {                        
199     ShowStep();                                   
200     G4cout << G4endl;                             
201   }                                               
202 }                                                 
203                                                   
204 //....oooOO0OOooo........oooOO0OOooo........oo    
205                                                   
206 void G4SteppingVerboseWithUnits::AlongStepDoIt    
207 {                                                 
208   G4VProcess* ptProcManager;                      
209                                                   
210   CopyState();                                    
211                                                   
212   if (verboseLevel >= 3) {                        
213     G4cout << G4endl;                             
214     G4cout << " >>AlongStepDoIt (after all inv    
215     G4cout << "    ++List of invoked processes    
216                                                   
217     for (std::size_t ci = 0; ci < MAXofAlongSt    
218       ptProcManager = (*fAlongStepDoItVector)(    
219       G4cout << "      " << ci + 1 << ") ";       
220       if (ptProcManager != nullptr) {             
221         G4cout << ptProcManager->GetProcessNam    
222       }                                           
223     }                                             
224                                                   
225     ShowStep();                                   
226     G4cout << G4endl;                             
227     G4cout << "    ++List of secondaries gener    
228            << "(x,y,z,kE,t,PID):"                 
229            << "  No. of secondaries = " << (*f    
230                                                   
231     if (! (*fSecondary).empty()) {                
232       for (auto& lp1 : *fSecondary) {             
233         G4cout << "      " << std::setw(9) <<     
234                << std::setw(9) << G4BestUnit(l    
235                << std::setw(9) << G4BestUnit(l    
236                << std::setw(9) << G4BestUnit(l    
237                << std::setw(9) << G4BestUnit(l    
238                << lp1->GetDefinition()->GetPar    
239       }                                           
240     }                                             
241   }                                               
242 }                                                 
243                                                   
244 //....oooOO0OOooo........oooOO0OOooo........oo    
245                                                   
246 void G4SteppingVerboseWithUnits::PostStepDoItA    
247 {                                                 
248   G4VProcess* ptProcManager;                      
249                                                   
250   CopyState();                                    
251                                                   
252   if ((static_cast<int>(fStepStatus == fPostSt    
253         static_cast<int>(fCondition == Conditi    
254         static_cast<int>(fCondition == Exclusi    
255         static_cast<int>(fCondition == Strongl    
256   {                                               
257     if (verboseLevel >= 3) {                      
258       G4int npt = 0;                              
259       G4cout << G4endl;                           
260       G4cout << " **PostStepDoIt (after all in    
261       G4cout << "    ++List of invoked process    
262                                                   
263       for (std::size_t np = 0; np < MAXofPostS    
264         std::size_t npGPIL = MAXofPostStepLoop    
265         if ((*fSelectedPostStepDoItVector)[npG    
266           ++npt;                                  
267           ptProcManager = (*fPostStepDoItVecto    
268           G4cout << "      " << npt << ") " <<    
269                  << G4endl;                       
270         }                                         
271         else if ((*fSelectedPostStepDoItVector    
272           ++npt;                                  
273           ptProcManager = (*fPostStepDoItVecto    
274           G4cout << "      " << npt << ") " <<    
275         }                                         
276       }                                           
277                                                   
278       ShowStep();                                 
279       G4cout << G4endl;                           
280       G4cout << "    ++List of secondaries gen    
281              << "(x,y,z,kE,t,PID):"               
282              << "  No. of secondaries = " << (    
283       G4cout << "      [Note]Secondaries from     
284                                                   
285       if (! (*fSecondary).empty()) {              
286         for (auto& lp1 : *fSecondary) {           
287           G4cout << "      " << std::setw(9) <    
288                  << std::setw(9) << G4BestUnit    
289                  << std::setw(9) << G4BestUnit    
290                  << std::setw(9) << G4BestUnit    
291                  << std::setw(9) << G4BestUnit    
292                  << lp1->GetDefinition()->GetP    
293         }                                         
294       }                                           
295     }                                             
296   }                                               
297 }                                                 
298                                                   
299 //....oooOO0OOooo........oooOO0OOooo........oo    
300                                                   
301 void G4SteppingVerboseWithUnits::DPSLStarted()    
302 {                                                 
303   CopyState();                                    
304                                                   
305   if (verboseLevel > 5) {                         
306     G4cout << G4endl << " >>DefinePhysicalStep    
307   }                                               
308 }                                                 
309                                                   
310 //....oooOO0OOooo........oooOO0OOooo........oo    
311                                                   
312 void G4SteppingVerboseWithUnits::DPSLUserLimit    
313 {                                                 
314   CopyState();                                    
315                                                   
316   if (verboseLevel > 5) {                         
317     G4cout << G4endl << G4endl;                   
318     G4cout << "=== Defined Physical Step Lengt    
319     G4cout << "    ++ProposedStep(UserLimit) =    
320            << G4BestUnit(physIntLength, "Lengt    
321            << " : ProcName = User defined maxi    
322   }                                               
323 }                                                 
324                                                   
325 //....oooOO0OOooo........oooOO0OOooo........oo    
326                                                   
327 void G4SteppingVerboseWithUnits::DPSLPostStep(    
328 {                                                 
329   CopyState();                                    
330                                                   
331   if (verboseLevel > 5) {                         
332     G4cout << "    ++ProposedStep(PostStep ) =    
333            << G4BestUnit(physIntLength, "Lengt    
334            << " : ProcName = " << fCurrentProc    
335     if (fCondition == ExclusivelyForced) {        
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........oo    
354                                                   
355 void G4SteppingVerboseWithUnits::DPSLAlongStep    
356 {                                                 
357   CopyState();                                    
358                                                   
359   if (verboseLevel > 5) {                         
360     G4cout << "    ++ProposedStep(AlongStep) =    
361            << G4BestUnit(physIntLength, "Lengt    
362            << " : ProcName = " << fCurrentProc    
363     if (fGPILSelection == CandidateForSelectio    
364       G4cout << "CandidateForSelection)" << G4    
365     }                                             
366     else if (fGPILSelection == NotCandidateFor    
367       G4cout << "NotCandidateForSelection)" <<    
368     }                                             
369     else {                                        
370       G4cout << "?!?)" << G4endl;                 
371     }                                             
372   }                                               
373 }                                                 
374                                                   
375 //....oooOO0OOooo........oooOO0OOooo........oo    
376                                                   
377 void G4SteppingVerboseWithUnits::AlongStepDoIt    
378 {                                                 
379   CopyState();                                    
380                                                   
381   if (verboseLevel >= 4) {                        
382     G4cout << G4endl;                             
383     G4cout << " >>AlongStepDoIt (process by pr    
384            << "   Process Name = " << fCurrent    
385                                                   
386     ShowStep();                                   
387     G4cout << "          "                        
388            << "!Note! Safety of PostStep is on    
389            << "after all DoIt invocations." <<    
390                                                   
391     VerboseParticleChange();                      
392     G4cout << G4endl;                             
393                                                   
394     G4cout << "    ++List of secondaries gener    
395            << "(x,y,z,kE,t,PID):"                 
396            << "  No. of secondaries = " << fN2    
397                                                   
398     if (fN2ndariesAlongStepDoIt > 0) {            
399       for (std::size_t lp1 = (*fSecondary).siz    
400            lp1 < (*fSecondary).size(); ++lp1)     
401       {                                           
402         G4cout << "      " << std::setw(9)        
403                << G4BestUnit((*fSecondary)[lp1    
404                << G4BestUnit((*fSecondary)[lp1    
405                << G4BestUnit((*fSecondary)[lp1    
406                << G4BestUnit((*fSecondary)[lp1    
407                << std::setw(9) << G4BestUnit((    
408                << std::setw(18) << (*fSecondar    
409       }                                           
410     }                                             
411   }                                               
412 }                                                 
413                                                   
414 //....oooOO0OOooo........oooOO0OOooo........oo    
415                                                   
416 void G4SteppingVerboseWithUnits::PostStepDoItO    
417 {                                                 
418   CopyState();                                    
419                                                   
420   if (verboseLevel >= 4) {                        
421     G4cout << G4endl;                             
422     G4cout << " >>PostStepDoIt (process by pro    
423            << "   Process Name = " << fCurrent    
424                                                   
425     ShowStep();                                   
426     G4cout << G4endl;                             
427     VerboseParticleChange();                      
428     G4cout << G4endl;                             
429                                                   
430     G4cout << "    ++List of secondaries gener    
431            << "(x,y,z,kE,t,PID):"                 
432            << "  No. of secondaries = " << fN2    
433                                                   
434     if (fN2ndariesPostStepDoIt > 0) {             
435       for (std::size_t lp1 = (*fSecondary).siz    
436            lp1 < (*fSecondary).size(); ++lp1)     
437       {                                           
438         G4cout << "      " << std::setw(9)        
439                << G4BestUnit((*fSecondary)[lp1    
440                << G4BestUnit((*fSecondary)[lp1    
441                << G4BestUnit((*fSecondary)[lp1    
442                << G4BestUnit((*fSecondary)[lp1    
443                << std::setw(9) << G4BestUnit((    
444                << std::setw(18) << (*fSecondar    
445       }                                           
446     }                                             
447   }                                               
448 }                                                 
449                                                   
450 //....oooOO0OOooo........oooOO0OOooo........oo    
451                                                   
452 void G4SteppingVerboseWithUnits::VerboseTrack(    
453 {                                                 
454   CopyState();                                    
455                                                   
456   G4cout << G4endl;                               
457   G4cout << "    ++G4Track Information " << G4    
458   G4long oldprec = G4cout.precision(fprec);       
459                                                   
460   G4cout << "      ---------------------------    
461   G4cout << "        G4Track Information  " <<    
462   G4cout << "      ---------------------------    
463                                                   
464   G4cout << "        Step number         : " <    
465          << G4endl;                               
466   G4cout << "        Position - x        : " <    
467          << G4BestUnit(fTrack->GetPosition().x    
468   G4cout << "        Position - y        : " <    
469          << G4BestUnit(fTrack->GetPosition().y    
470   G4cout << "        Position - z        : " <    
471          << G4BestUnit(fTrack->GetPosition().z    
472   G4cout << "        Global Time         : " <    
473          << G4BestUnit(fTrack->GetGlobalTime()    
474   G4cout << "        Local Time          : " <    
475          << G4BestUnit(fTrack->GetLocalTime(),    
476   G4cout << "        Momentum Direct - x : " <    
477          << G4endl;                               
478   G4cout << "        Momentum Direct - y : " <    
479          << G4endl;                               
480   G4cout << "        Momentum Direct - z : " <    
481          << G4endl;                               
482   G4cout << "        Kinetic Energy      : " <    
483          << G4BestUnit(fTrack->GetKineticEnerg    
484   G4cout << "        Polarization - x    : " <    
485          << G4endl;                               
486   G4cout << "        Polarization - y    : " <    
487          << G4endl;                               
488   G4cout << "        Polarization - z    : " <    
489          << G4endl;                               
490   G4cout << "        Track Length        : " <    
491          << G4BestUnit(fTrack->GetTrackLength(    
492   G4cout << "        Track ID #          : " <    
493   G4cout << "        Parent Track ID #   : " <    
494   G4cout << "        Next Volume         : " <    
495   if (fTrack->GetNextVolume() != nullptr)         
496     G4cout << fTrack->GetNextVolume()->GetName    
497   else                                            
498     G4cout << "OutOfWorld"                        
499            << " ";                                
500   G4cout << G4endl;                               
501   G4cout << "        Track Status        : " <    
502   if (fTrack->GetTrackStatus() == fAlive)         
503     G4cout << " Alive";                           
504   else if (fTrack->GetTrackStatus() == fStopBu    
505     G4cout << " StopButAlive";                    
506   else if (fTrack->GetTrackStatus() == fStopAn    
507     G4cout << " StopAndKill";                     
508   else if (fTrack->GetTrackStatus() == fKillTr    
509     G4cout << " KillTrackAndSecondaries";         
510   else if (fTrack->GetTrackStatus() == fSuspen    
511     G4cout << " Suspend";                         
512   else if (fTrack->GetTrackStatus() == fPostpo    
513     G4cout << " PostponeToNextEvent";             
514   G4cout << G4endl;                               
515   G4cout << "        Vertex - x          : " <    
516          << G4BestUnit(fTrack->GetVertexPositi    
517   G4cout << "        Vertex - y          : " <    
518          << G4BestUnit(fTrack->GetVertexPositi    
519   G4cout << "        Vertex - z          : " <    
520          << G4BestUnit(fTrack->GetVertexPositi    
521   G4cout << "        Vertex - Px (MomDir): " <    
522          << fTrack->GetVertexMomentumDirection    
523   G4cout << "        Vertex - Py (MomDir): " <    
524          << fTrack->GetVertexMomentumDirection    
525   G4cout << "        Vertex - Pz (MomDir): " <    
526          << fTrack->GetVertexMomentumDirection    
527   G4cout << "        Vertex - KineE      : " <    
528          << G4BestUnit(fTrack->GetVertexKineti    
529                                                   
530   G4cout << "        Creator Process     : " <    
531   if (fTrack->GetCreatorProcess() == nullptr)     
532     G4cout << " Event Generator" << G4endl;       
533   else                                            
534     G4cout << fTrack->GetCreatorProcess()->Get    
535                                                   
536   G4cout << "      ---------------------------    
537   G4cout.precision(oldprec);                      
538 }                                                 
539                                                   
540 //....oooOO0OOooo........oooOO0OOooo........oo    
541                                                   
542 void G4SteppingVerboseWithUnits::VerbosePartic    
543 {                                                 
544   G4cout << G4endl;                               
545   G4cout << "    ++G4ParticleChange Informatio    
546   fParticleChange->DumpInfo();                    
547 }                                                 
548                                                   
549 //....oooOO0OOooo........oooOO0OOooo........oo    
550                                                   
551 void G4SteppingVerboseWithUnits::ShowStep() co    
552 {                                                 
553   // Show header                                  
554   G4cout << G4endl;                               
555   G4cout << "    ++G4Step Information " << G4e    
556   G4long oldprc = G4cout.precision(fprec);        
557                                                   
558   // Show G4Step specific information             
559   G4cout << "      Address of G4Track : " << f    
560   G4cout << "      Step Length        : "         
561          << G4BestUnit(fStep->GetTrack()->GetS    
562   G4cout << "      Energy Deposit     : " << G    
563          << G4endl;                               
564                                                   
565   // Show G4StepPoint specific information        
566   G4cout << "      ---------------------------    
567          << "----------------" << G4endl;         
568   G4cout << "        StepPoint Information  "     
569          << "PostStep" << G4endl;                 
570   G4cout << "      ---------------------------    
571          << "----------------" << G4endl;         
572   G4cout << "         Position - x        : "     
573          << G4BestUnit(fStep->GetPreStepPoint(    
574          << G4BestUnit(fStep->GetPostStepPoint    
575   G4cout << "         Position - y        : "     
576          << G4BestUnit(fStep->GetPreStepPoint(    
577          << G4BestUnit(fStep->GetPostStepPoint    
578   G4cout << "         Position - z        : "     
579          << G4BestUnit(fStep->GetPreStepPoint(    
580          << G4BestUnit(fStep->GetPostStepPoint    
581   G4cout << "         Global Time         : "     
582          << G4BestUnit(fStep->GetPreStepPoint(    
583          << G4BestUnit(fStep->GetPostStepPoint    
584   G4cout << "         Local  Time         : "     
585          << G4BestUnit(fStep->GetPreStepPoint(    
586          << G4BestUnit(fStep->GetPostStepPoint    
587   G4cout << "         Proper Time         : "     
588          << G4BestUnit(fStep->GetPreStepPoint(    
589          << G4BestUnit(fStep->GetPostStepPoint    
590   G4cout << "         Momentum Direct - x : "     
591          << fStep->GetPreStepPoint()->GetMomen    
592          << fStep->GetPostStepPoint()->GetMome    
593   G4cout << "         Momentum Direct - y : "     
594          << fStep->GetPreStepPoint()->GetMomen    
595          << fStep->GetPostStepPoint()->GetMome    
596   G4cout << "         Momentum Direct - z : "     
597          << fStep->GetPreStepPoint()->GetMomen    
598          << fStep->GetPostStepPoint()->GetMome    
599   G4cout << "         Momentum - x        : "     
600          << G4BestUnit(fStep->GetPreStepPoint(    
601          << G4BestUnit(fStep->GetPostStepPoint    
602   G4cout << "         Momentum - y        : "     
603          << G4BestUnit(fStep->GetPreStepPoint(    
604          << G4BestUnit(fStep->GetPostStepPoint    
605   G4cout << "         Momentum - z        : "     
606          << G4BestUnit(fStep->GetPreStepPoint(    
607          << G4BestUnit(fStep->GetPostStepPoint    
608   G4cout << "         Total Energy        : "     
609          << G4BestUnit(fStep->GetPreStepPoint(    
610          << G4BestUnit(fStep->GetPostStepPoint    
611   G4cout << "         Kinetic Energy      : "     
612          << G4BestUnit(fStep->GetPreStepPoint(    
613          << G4BestUnit(fStep->GetPostStepPoint    
614   G4cout << "         Velocity            : "     
615          << G4BestUnit(fStep->GetPreStepPoint(    
616          << G4BestUnit(fStep->GetPostStepPoint    
617   G4cout << "         Volume Name         : "     
618          << fStep->GetPreStepPoint()->GetPhysi    
619   G4String volName = "OutOfWorld";                
620   if (fStep->GetPostStepPoint()->GetPhysicalVo    
621     volName = fStep->GetPostStepPoint()->GetPh    
622   G4cout << std::setw(20) << volName << G4endl    
623   G4cout << "         Safety              : "     
624          << G4BestUnit(fStep->GetPreStepPoint(    
625          << G4BestUnit(fStep->GetPostStepPoint    
626   G4cout << "         Polarization - x    : "     
627          << fStep->GetPreStepPoint()->GetPolar    
628          << fStep->GetPostStepPoint()->GetPola    
629   G4cout << "         Polarization - y    : "     
630          << fStep->GetPreStepPoint()->GetPolar    
631          << fStep->GetPostStepPoint()->GetPola    
632   G4cout << "         Polarization - Z    : "     
633          << fStep->GetPreStepPoint()->GetPolar    
634          << fStep->GetPostStepPoint()->GetPola    
635   G4cout << "         Weight              : "     
636          << fStep->GetPreStepPoint()->GetWeigh    
637          << fStep->GetPostStepPoint()->GetWeig    
638   G4cout << "         Step Status         : ";    
639   G4StepStatus tStepStatus = fStep->GetPreStep    
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()->Get    
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()->GetProcessDefi    
676     G4cout << std::setw(20) << "Undefined";       
677   }                                               
678   else {                                          
679     G4cout << std::setw(20) << fStep->GetPreSt    
680   }                                               
681   if (fStep->GetPostStepPoint()->GetProcessDef    
682     G4cout << std::setw(20) << "Undefined";       
683   }                                               
684   else {                                          
685     G4cout << std::setw(20) << fStep->GetPostS    
686   }                                               
687   G4cout.precision(oldprc);                       
688                                                   
689   G4cout << G4endl;                               
690   G4cout << "      ---------------------------    
691          << "----------------" << G4endl;         
692 }                                                 
693                                                   
694 //....oooOO0OOooo........oooOO0OOooo........oo    
695