Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 /// \file << 26 /// \file 27 /// \brief Implementation of the G4SteppingVer 27 /// \brief Implementation of the G4SteppingVerboseWithUnits class 28 // 28 // 29 //....oooOO0OOooo........oooOO0OOooo........oo 29 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 30 // 30 // 31 // Stepping Verbose with units for all the ap 31 // Stepping Verbose with units for all the applicable double values 32 // This class is ported from TestEm2 extended 32 // This class is ported from TestEm2 extended example 33 // Original author : Michel Maire (LAPP) 33 // Original author : Michel Maire (LAPP) 34 // Porting with addition of UI command : Mako 34 // Porting with addition of UI command : Makoto Asai (SLAC) Feb.23.2021 35 // 35 // 36 //....oooOO0OOooo........oooOO0OOooo........oo 36 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 37 37 38 #include "G4SteppingVerboseWithUnits.hh" 38 #include "G4SteppingVerboseWithUnits.hh" 39 39 40 #include "G4GenericMessenger.hh" << 41 #include "G4SteppingManager.hh" 40 #include "G4SteppingManager.hh" 42 #include "G4UnitsTable.hh" 41 #include "G4UnitsTable.hh" >> 42 #include "G4GenericMessenger.hh" 43 43 44 //....oooOO0OOooo........oooOO0OOooo........oo 44 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 45 45 46 G4SteppingVerboseWithUnits::G4SteppingVerboseW << 46 G4SteppingVerboseWithUnits::G4SteppingVerboseWithUnits(G4int prec) >> 47 : G4SteppingVerbose(), fprec(prec) >> 48 { >> 49 } 47 50 48 //....oooOO0OOooo........oooOO0OOooo........oo 51 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 49 52 50 G4SteppingVerboseWithUnits::~G4SteppingVerbose << 53 G4SteppingVerboseWithUnits::~G4SteppingVerboseWithUnits() >> 54 { >> 55 delete fmessenger; >> 56 } 51 57 52 //....oooOO0OOooo........oooOO0OOooo........oo 58 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 53 59 54 void G4SteppingVerboseWithUnits::SetManager(G4 60 void G4SteppingVerboseWithUnits::SetManager(G4SteppingManager* const fMan) 55 { 61 { 56 fManager = fMan; 62 fManager = fMan; 57 fmessenger = new G4GenericMessenger(this, "/ << 63 fmessenger = new G4GenericMessenger(this,"/tracking/", 58 auto& cmd = << 64 "precision of verbose output"); 59 fmessenger->DeclareProperty("setVerbosePre << 65 auto& cmd = fmessenger->DeclareProperty("setVerbosePrecision",fprec, 60 cmd.SetStates(G4State_PreInit, G4State_Idle) << 66 "set precision of verbose output"); >> 67 cmd.SetStates(G4State_PreInit,G4State_Idle); 61 } 68 } 62 69 63 //....oooOO0OOooo........oooOO0OOooo........oo 70 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 64 71 65 void G4SteppingVerboseWithUnits::TrackingStart 72 void G4SteppingVerboseWithUnits::TrackingStarted() 66 { << 73 { 67 CopyState(); << 74 CopyState(); 68 G4long oldprec = G4cout.precision(fprec); << 75 G4int oldprec = G4cout.precision(fprec); 69 << 76 70 // Step zero << 77 // Step zero 71 // << 78 // 72 if (verboseLevel > 0) { << 79 if( verboseLevel > 0 ) 73 G4cout << std::setw(5) << "Step#" << 80 { 74 << " " << std::setw(fprec + 3) << " << 81 G4cout << std::setw( 5) << "Step#" << " " 75 << " " << std::setw(fprec + 3) < << 82 << std::setw(fprec+3) << "X" << " " 76 << " " << std::setw(fprec + 3) < << 83 << std::setw(fprec+3) << "Y" << " " 77 << " " << std::setw(fprec + 6) < << 84 << std::setw(fprec+3) << "Z" << " " 78 << " " << std::setw(fprec + 10) << << 85 << std::setw(fprec+6) << "KineE" << " " 79 << " " << std::setw(fprec + 7) << " << 86 << std::setw(fprec+10) << "dEStep" << " " 80 << std::setw(10) << "Volume" << 87 << std::setw(fprec+7) << "StepLeng" 81 << " " << std::setw(10) << "Proces << 88 << std::setw(fprec+7) << "TrakLeng" 82 << 89 << std::setw( 10) << "Volume" << " " 83 G4cout << std::setw(5) << fTrack->GetCurre << 90 << std::setw( 10) << "Process" << G4endl; 84 << G4BestUnit(fTrack->GetPosition() << 91 85 << G4BestUnit(fTrack->GetPosition() << 92 G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " 86 << G4BestUnit(fTrack->GetPosition() << 93 << std::setw(fprec+3) << G4BestUnit(fTrack->GetPosition().x(),"Length") 87 << G4BestUnit(fTrack->GetKineticEne << 94 << std::setw(fprec+3) << G4BestUnit(fTrack->GetPosition().y(),"Length") 88 << G4BestUnit(fStep->GetTotalEnergy << 95 << std::setw(fprec+3) << G4BestUnit(fTrack->GetPosition().z(),"Length") 89 << G4BestUnit(fStep->GetStepLength( << 96 << std::setw(fprec+3) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") 90 << G4BestUnit(fTrack->GetTrackLengt << 97 << std::setw(fprec+7) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") 91 << fTrack->GetVolume()->GetName() < << 98 << std::setw(fprec+3) << G4BestUnit(fStep->GetStepLength(),"Length") >> 99 << std::setw(fprec+3) << G4BestUnit(fTrack->GetTrackLength(),"Length") >> 100 << std::setw(10) << fTrack->GetVolume()->GetName() >> 101 << std::setw( 9) << " initStep" << G4endl; 92 } 102 } 93 G4cout.precision(oldprec); 103 G4cout.precision(oldprec); 94 } 104 } 95 105 96 //....oooOO0OOooo........oooOO0OOooo........oo 106 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 97 107 98 void G4SteppingVerboseWithUnits::StepInfo() 108 void G4SteppingVerboseWithUnits::StepInfo() 99 { << 109 { 100 CopyState(); << 110 CopyState(); 101 G4long oldprec = G4cout.precision(fprec); << 111 G4int oldprec = G4cout.precision(fprec); >> 112 >> 113 if( verboseLevel >= 1 ) >> 114 { >> 115 if( verboseLevel >= 4 ) VerboseTrack(); >> 116 if( verboseLevel >= 3 ) >> 117 { >> 118 G4cout << G4endl; >> 119 G4cout << std::setw(5) << "#Step#" << " " >> 120 << std::setw(fprec+3) << "X" << " " >> 121 << std::setw(fprec+3) << "Y" << " " >> 122 << std::setw(fprec+3) << "Z" << " " >> 123 << std::setw(fprec+6) << "KineE" << " " >> 124 << std::setw(fprec+10) << "dEStep" << " " >> 125 << std::setw(fprec+7) << "StepLeng" >> 126 << std::setw(fprec+7) << "TrakLeng" >> 127 << std::setw(10) << "Volume" << " " >> 128 << std::setw(10) << "Process" << G4endl; >> 129 } >> 130 >> 131 G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " >> 132 << std::setw(fprec+3) << G4BestUnit(fTrack->GetPosition().x(),"Length") >> 133 << std::setw(fprec+3) << G4BestUnit(fTrack->GetPosition().y(),"Length") >> 134 << std::setw(fprec+3) << G4BestUnit(fTrack->GetPosition().z(),"Length") >> 135 << std::setw(fprec+3) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") >> 136 << std::setw(fprec+7) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") >> 137 << std::setw(fprec+3) << G4BestUnit(fStep->GetStepLength(),"Length") >> 138 << std::setw(fprec+3) << G4BestUnit(fTrack->GetTrackLength(),"Length") >> 139 << std::setw(10) << fTrack->GetVolume()->GetName(); 102 140 103 if (verboseLevel >= 1) { << 141 const G4VProcess* process 104 if (verboseLevel >= 4) VerboseTrack(); << 142 = fStep->GetPostStepPoint()->GetProcessDefinedStep(); 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"; 143 G4String procName = " UserLimit"; 130 if (process != nullptr) procName = process 144 if (process != nullptr) procName = process->GetProcessName(); 131 if (fStepStatus == fWorldBoundary) procNam 145 if (fStepStatus == fWorldBoundary) procName = "OutOfWorld"; 132 G4cout << " " << std::setw(9) << procNam << 146 G4cout << " " << std::setw( 9) << procName; 133 G4cout << G4endl; 147 G4cout << G4endl; 134 148 135 if (verboseLevel == 2) { << 149 if (verboseLevel == 2) 136 const std::vector<const G4Track*>* secon << 150 { 137 if (! secondary->empty()) { << 151 const std::vector<const G4Track*>* secondary >> 152 = fStep->GetSecondaryInCurrentStep(); >> 153 std::size_t nbtrk = (*secondary).size(); >> 154 if (nbtrk) >> 155 { 138 G4cout << "\n :----- List of second 156 G4cout << "\n :----- List of secondaries ----------------" << G4endl; 139 G4cout.precision(4); 157 G4cout.precision(4); 140 for (auto lp : *secondary) { << 158 for (std::size_t lp=0; lp<(*secondary).size(); ++lp) 141 G4cout << " " << std::setw(13) << << 159 { 142 << ": energy =" << std::setw << 160 G4cout << " " 143 << " time =" << std::setw(6) << 161 << std::setw(13) >> 162 << (*secondary)[lp]->GetDefinition()->GetParticleName() >> 163 << ": energy =" >> 164 << std::setw(6) >> 165 << G4BestUnit((*secondary)[lp]->GetKineticEnergy(),"Energy") >> 166 << " time =" >> 167 << std::setw(6) >> 168 << G4BestUnit((*secondary)[lp]->GetGlobalTime(),"Time"); 144 G4cout << G4endl; 169 G4cout << G4endl; 145 } 170 } 146 << 171 147 G4cout << " :---------------------- 172 G4cout << " :------------------------------------------\n" << G4endl; 148 } 173 } 149 } 174 } 150 } 175 } 151 G4cout.precision(oldprec); 176 G4cout.precision(oldprec); 152 } 177 } 153 178 154 //....oooOO0OOooo........oooOO0OOooo........oo 179 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 155 180 156 void G4SteppingVerboseWithUnits::AtRestDoItInv 181 void G4SteppingVerboseWithUnits::AtRestDoItInvoked() 157 { 182 { 158 G4VProcess* ptProcManager; 183 G4VProcess* ptProcManager; 159 CopyState(); 184 CopyState(); 160 185 161 if (verboseLevel >= 3) { << 186 if(verboseLevel >= 3) 162 G4int npt = 0; << 187 { >> 188 G4int npt=0; 163 G4cout << " **List of AtRestDoIt invoked:" 189 G4cout << " **List of AtRestDoIt invoked:" << G4endl; 164 for (std::size_t np = 0; np < MAXofAtRestL << 190 for(std::size_t np=0; np<MAXofAtRestLoops; ++np) 165 std::size_t npGPIL = MAXofAtRestLoops - << 191 { 166 if ((*fSelectedAtRestDoItVector)[npGPIL] << 192 std::size_t npGPIL = MAXofAtRestLoops-np-1; 167 ++npt; << 193 if( (*fSelectedAtRestDoItVector)[npGPIL] == G4ForceCondition::Forced ) 168 ptProcManager = (*fAtRestDoItVector)[( << 194 { 169 G4cout << " # " << npt << " : " << p << 195 ++npt; 170 << G4endl; << 196 ptProcManager = (*fAtRestDoItVector)[np]; >> 197 G4cout << " # " << npt << " : " >> 198 << ptProcManager->GetProcessName() >> 199 << " (Forced)" << G4endl; 171 } 200 } 172 else if ((*fSelectedAtRestDoItVector)[np << 201 else if ( (*fSelectedAtRestDoItVector)[npGPIL] == G4ForceCondition::NotForced ) 173 ++npt; << 202 { 174 ptProcManager = (*fAtRestDoItVector)[( << 203 ++npt; 175 G4cout << " # " << npt << " : " << p << 204 ptProcManager = (*fAtRestDoItVector)[np]; >> 205 G4cout << " # " << npt << " : " << ptProcManager->GetProcessName() >> 206 << G4endl; 176 } 207 } 177 } 208 } 178 << 209 179 G4cout << " Generated secondaries = " << 210 G4cout << " Generated secondaries = " << fN2ndariesAtRestDoIt << G4endl; 180 << 211 181 if (fN2ndariesAtRestDoIt > 0) { << 212 if( fN2ndariesAtRestDoIt > 0 ) >> 213 { 182 G4cout << " -- List of secondaries gen 214 G4cout << " -- List of secondaries generated : " 183 << "(x,y,z,kE,t,PID) --" << G4end << 215 << "(x,y,z,kE,t,PID) --" << G4endl; 184 for (std::size_t lp1 = (*fSecondary).siz << 216 for( std::size_t lp1=(*fSecondary).size()-fN2ndariesAtRestDoIt; 185 lp1 < (*fSecondary).size(); ++lp1) << 217 lp1<(*fSecondary).size(); ++lp1) 186 { 218 { 187 G4cout << " " << std::setw(9) << 219 G4cout << " " 188 << G4BestUnit((*fSecondary)[lp1 << 220 << std::setw( 9) 189 << G4BestUnit((*fSecondary)[lp1 << 221 << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length") 190 << G4BestUnit((*fSecondary)[lp1 << 222 << " " << std::setw( 9) 191 << G4BestUnit((*fSecondary)[lp1 << 223 << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length") 192 << std::setw(9) << G4BestUnit(( << 224 << " " << std::setw( 9) 193 << std::setw(18) << (*fSecondar << 225 << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length") >> 226 << " " << std::setw( 9) >> 227 << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy") >> 228 << " " << std::setw( 9) >> 229 << G4BestUnit((*fSecondary)[lp1]->GetGlobalTime(),"Time") >> 230 << " " << std::setw(18) >> 231 << (*fSecondary)[lp1]->GetDefinition()->GetParticleName() >> 232 << G4endl; 194 } 233 } 195 } 234 } 196 } 235 } 197 << 236 198 if (verboseLevel >= 4) { << 237 if( verboseLevel >= 4 ) >> 238 { 199 ShowStep(); 239 ShowStep(); 200 G4cout << G4endl; 240 G4cout << G4endl; 201 } 241 } 202 } 242 } 203 243 204 //....oooOO0OOooo........oooOO0OOooo........oo 244 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 205 245 206 void G4SteppingVerboseWithUnits::AlongStepDoIt 246 void G4SteppingVerboseWithUnits::AlongStepDoItAllDone() 207 { 247 { 208 G4VProcess* ptProcManager; 248 G4VProcess* ptProcManager; 209 249 210 CopyState(); 250 CopyState(); 211 251 212 if (verboseLevel >= 3) { << 252 if(verboseLevel >= 3) >> 253 { 213 G4cout << G4endl; 254 G4cout << G4endl; 214 G4cout << " >>AlongStepDoIt (after all inv 255 G4cout << " >>AlongStepDoIt (after all invocations):" << G4endl; 215 G4cout << " ++List of invoked processes 256 G4cout << " ++List of invoked processes " << G4endl; 216 257 217 for (std::size_t ci = 0; ci < MAXofAlongSt << 258 for(std::size_t ci=0; ci<MAXofAlongStepLoops; ++ci) 218 ptProcManager = (*fAlongStepDoItVector)( << 259 { 219 G4cout << " " << ci + 1 << ") "; << 260 ptProcManager = (*fAlongStepDoItVector)(ci); 220 if (ptProcManager != nullptr) { << 261 G4cout << " " << ci+1 << ") "; >> 262 if(ptProcManager != nullptr) >> 263 { 221 G4cout << ptProcManager->GetProcessNam 264 G4cout << ptProcManager->GetProcessName() << G4endl; 222 } 265 } 223 } 266 } 224 267 225 ShowStep(); 268 ShowStep(); 226 G4cout << G4endl; 269 G4cout << G4endl; 227 G4cout << " ++List of secondaries gener << 270 G4cout << " ++List of secondaries generated " 228 << "(x,y,z,kE,t,PID):" 271 << "(x,y,z,kE,t,PID):" 229 << " No. of secondaries = " << (*f << 272 << " No. of secondaries = " >> 273 << (*fSecondary).size() << G4endl; 230 274 231 if (! (*fSecondary).empty()) { << 275 if((*fSecondary).size()>0) 232 for (auto& lp1 : *fSecondary) { << 276 { 233 G4cout << " " << std::setw(9) << << 277 for(std::size_t lp1=0; lp1<(*fSecondary).size(); ++lp1) 234 << std::setw(9) << G4BestUnit(l << 278 { 235 << std::setw(9) << G4BestUnit(l << 279 G4cout << " " 236 << std::setw(9) << G4BestUnit(l << 280 << std::setw( 9) 237 << std::setw(9) << G4BestUnit(l << 281 << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length") 238 << lp1->GetDefinition()->GetPar << 282 << " " << std::setw( 9) >> 283 << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length") >> 284 << " " << std::setw( 9) >> 285 << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length") >> 286 << " " << std::setw( 9) >> 287 << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy") >> 288 << " " << std::setw( 9) >> 289 << G4BestUnit((*fSecondary)[lp1]->GetGlobalTime(),"Time") >> 290 << " " << std::setw(18) >> 291 << (*fSecondary)[lp1]->GetDefinition()->GetParticleName() >> 292 << G4endl; 239 } 293 } 240 } 294 } 241 } 295 } 242 } 296 } 243 297 244 //....oooOO0OOooo........oooOO0OOooo........oo 298 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 245 299 246 void G4SteppingVerboseWithUnits::PostStepDoItA 300 void G4SteppingVerboseWithUnits::PostStepDoItAllDone() 247 { 301 { 248 G4VProcess* ptProcManager; 302 G4VProcess* ptProcManager; 249 303 250 CopyState(); 304 CopyState(); 251 305 252 if ((static_cast<int>(fStepStatus == fPostSt << 306 if( (fStepStatus == fPostStepDoItProc) | 253 static_cast<int>(fCondition == Conditi << 307 (fCondition == Forced) | 254 static_cast<int>(fCondition == Exclusi << 308 (fCondition == Conditionally) | 255 static_cast<int>(fCondition == Strongl << 309 (fCondition == ExclusivelyForced) | >> 310 (fCondition == StronglyForced) ) 256 { 311 { 257 if (verboseLevel >= 3) { << 312 if(verboseLevel >= 3) 258 G4int npt = 0; << 313 { >> 314 G4int npt=0; 259 G4cout << G4endl; 315 G4cout << G4endl; 260 G4cout << " **PostStepDoIt (after all in 316 G4cout << " **PostStepDoIt (after all invocations):" << G4endl; 261 G4cout << " ++List of invoked process 317 G4cout << " ++List of invoked processes " << G4endl; 262 318 263 for (std::size_t np = 0; np < MAXofPostS << 319 for(std::size_t np=0; np<MAXofPostStepLoops; ++np) 264 std::size_t npGPIL = MAXofPostStepLoop << 320 { 265 if ((*fSelectedPostStepDoItVector)[npG << 321 std::size_t npGPIL = MAXofPostStepLoops-np-1; >> 322 if( (*fSelectedPostStepDoItVector)[npGPIL] == G4ForceCondition::Forced ) >> 323 { 266 ++npt; 324 ++npt; 267 ptProcManager = (*fPostStepDoItVecto << 325 ptProcManager = (*fPostStepDoItVector)[np]; 268 G4cout << " " << npt << ") " << << 326 G4cout << " " << npt << ") " 269 << G4endl; << 327 << ptProcManager->GetProcessName() >> 328 << " (Forced)" << G4endl; 270 } 329 } 271 else if ((*fSelectedPostStepDoItVector << 330 else if ( (*fSelectedPostStepDoItVector)[npGPIL] == G4ForceCondition::NotForced ) >> 331 { 272 ++npt; 332 ++npt; 273 ptProcManager = (*fPostStepDoItVecto << 333 ptProcManager = (*fPostStepDoItVector)[np]; 274 G4cout << " " << npt << ") " << << 334 G4cout << " " << npt << ") " << ptProcManager->GetProcessName() >> 335 << G4endl; 275 } 336 } 276 } 337 } 277 338 278 ShowStep(); 339 ShowStep(); 279 G4cout << G4endl; 340 G4cout << G4endl; 280 G4cout << " ++List of secondaries gen 341 G4cout << " ++List of secondaries generated " 281 << "(x,y,z,kE,t,PID):" 342 << "(x,y,z,kE,t,PID):" 282 << " No. of secondaries = " << ( << 343 << " No. of secondaries = " 283 G4cout << " [Note]Secondaries from << 344 << (*fSecondary).size() << G4endl; >> 345 G4cout << " [Note]Secondaries from AlongStepDoIt included." >> 346 << G4endl; 284 347 285 if (! (*fSecondary).empty()) { << 348 if((*fSecondary).size()>0) 286 for (auto& lp1 : *fSecondary) { << 349 { 287 G4cout << " " << std::setw(9) < << 350 for(std::size_t lp1=0; lp1<(*fSecondary).size(); ++lp1) 288 << std::setw(9) << G4BestUnit << 351 { 289 << std::setw(9) << G4BestUnit << 352 G4cout << " " 290 << std::setw(9) << G4BestUnit << 353 << std::setw( 9) 291 << std::setw(9) << G4BestUnit << 354 << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(), "Length") 292 << lp1->GetDefinition()->GetP << 355 << " " << std::setw( 9) >> 356 << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(), "Length") >> 357 << " " << std::setw( 9) >> 358 << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(), "Length") >> 359 << " " << std::setw( 9) >> 360 << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(), "Energy") >> 361 << " " << std::setw( 9) >> 362 << G4BestUnit((*fSecondary)[lp1]->GetGlobalTime(), "Time") >> 363 << " " << std::setw(18) >> 364 << (*fSecondary)[lp1]->GetDefinition()->GetParticleName() >> 365 << G4endl; 293 } 366 } 294 } 367 } 295 } 368 } 296 } 369 } 297 } 370 } 298 371 299 //....oooOO0OOooo........oooOO0OOooo........oo 372 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 300 373 301 void G4SteppingVerboseWithUnits::DPSLStarted() 374 void G4SteppingVerboseWithUnits::DPSLStarted() 302 { 375 { 303 CopyState(); 376 CopyState(); 304 377 305 if (verboseLevel > 5) { << 378 if( verboseLevel > 5 ) 306 G4cout << G4endl << " >>DefinePhysicalStep << 379 { >> 380 G4cout << G4endl >> 381 << " >>DefinePhysicalStepLength (List of proposed StepLengths): " >> 382 << G4endl; 307 } 383 } 308 } 384 } 309 385 310 //....oooOO0OOooo........oooOO0OOooo........oo 386 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 311 387 312 void G4SteppingVerboseWithUnits::DPSLUserLimit 388 void G4SteppingVerboseWithUnits::DPSLUserLimit() 313 { 389 { 314 CopyState(); 390 CopyState(); 315 391 316 if (verboseLevel > 5) { << 392 if( verboseLevel > 5 ) >> 393 { 317 G4cout << G4endl << G4endl; 394 G4cout << G4endl << G4endl; 318 G4cout << "=== Defined Physical Step Lengt 395 G4cout << "=== Defined Physical Step Length (DPSL)" << G4endl; 319 G4cout << " ++ProposedStep(UserLimit) = << 396 G4cout << " ++ProposedStep(UserLimit) = " 320 << G4BestUnit(physIntLength, "Lengt << 397 << std::setw( 9) << G4BestUnit(physIntLength , "Length") 321 << " : ProcName = User defined maxi 398 << " : ProcName = User defined maximum allowed Step" << G4endl; 322 } 399 } 323 } 400 } 324 401 325 //....oooOO0OOooo........oooOO0OOooo........oo 402 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 326 403 327 void G4SteppingVerboseWithUnits::DPSLPostStep( 404 void G4SteppingVerboseWithUnits::DPSLPostStep() 328 { 405 { 329 CopyState(); 406 CopyState(); 330 407 331 if (verboseLevel > 5) { << 408 if( verboseLevel > 5 ) 332 G4cout << " ++ProposedStep(PostStep ) = << 409 { 333 << G4BestUnit(physIntLength, "Lengt << 410 G4cout << " ++ProposedStep(PostStep ) = " >> 411 << std::setw( 9) << G4BestUnit(physIntLength , "Length") 334 << " : ProcName = " << fCurrentProc 412 << " : ProcName = " << fCurrentProcess->GetProcessName() << " ("; 335 if (fCondition == ExclusivelyForced) { << 413 if(fCondition==ExclusivelyForced) >> 414 { 336 G4cout << "ExclusivelyForced)" << G4endl 415 G4cout << "ExclusivelyForced)" << G4endl; 337 } 416 } 338 else if (fCondition == StronglyForced) { << 417 else if(fCondition==StronglyForced) >> 418 { 339 G4cout << "StronglyForced)" << G4endl; 419 G4cout << "StronglyForced)" << G4endl; 340 } 420 } 341 else if (fCondition == Conditionally) { << 421 else if(fCondition==Conditionally) >> 422 { 342 G4cout << "Conditionally)" << G4endl; 423 G4cout << "Conditionally)" << G4endl; 343 } 424 } 344 else if (fCondition == Forced) { << 425 else if(fCondition==Forced) >> 426 { 345 G4cout << "Forced)" << G4endl; 427 G4cout << "Forced)" << G4endl; 346 } 428 } 347 else { << 429 else >> 430 { 348 G4cout << "No ForceCondition)" << G4endl 431 G4cout << "No ForceCondition)" << G4endl; 349 } 432 } 350 } 433 } 351 } 434 } 352 435 353 //....oooOO0OOooo........oooOO0OOooo........oo 436 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 354 437 355 void G4SteppingVerboseWithUnits::DPSLAlongStep 438 void G4SteppingVerboseWithUnits::DPSLAlongStep() 356 { 439 { 357 CopyState(); 440 CopyState(); 358 441 359 if (verboseLevel > 5) { << 442 if( verboseLevel > 5 ) 360 G4cout << " ++ProposedStep(AlongStep) = << 443 { 361 << G4BestUnit(physIntLength, "Lengt << 444 G4cout << " ++ProposedStep(AlongStep) = " 362 << " : ProcName = " << fCurrentProc << 445 << std::setw( 9) << G4BestUnit(physIntLength , "Length") 363 if (fGPILSelection == CandidateForSelectio << 446 << " : ProcName = " >> 447 << fCurrentProcess->GetProcessName() >> 448 << " ("; >> 449 if(fGPILSelection==CandidateForSelection) >> 450 { 364 G4cout << "CandidateForSelection)" << G4 451 G4cout << "CandidateForSelection)" << G4endl; 365 } 452 } 366 else if (fGPILSelection == NotCandidateFor << 453 else if(fGPILSelection==NotCandidateForSelection) >> 454 { 367 G4cout << "NotCandidateForSelection)" << 455 G4cout << "NotCandidateForSelection)" << G4endl; 368 } 456 } 369 else { << 457 else >> 458 { 370 G4cout << "?!?)" << G4endl; 459 G4cout << "?!?)" << G4endl; 371 } 460 } 372 } 461 } 373 } 462 } 374 463 375 //....oooOO0OOooo........oooOO0OOooo........oo 464 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 376 465 377 void G4SteppingVerboseWithUnits::AlongStepDoIt 466 void G4SteppingVerboseWithUnits::AlongStepDoItOneByOne() 378 { << 467 { 379 CopyState(); 468 CopyState(); 380 469 381 if (verboseLevel >= 4) { << 470 if(verboseLevel >= 4) >> 471 { 382 G4cout << G4endl; 472 G4cout << G4endl; 383 G4cout << " >>AlongStepDoIt (process by pr 473 G4cout << " >>AlongStepDoIt (process by process): " 384 << " Process Name = " << fCurrent << 474 << " Process Name = " >> 475 << fCurrentProcess->GetProcessName() << G4endl; 385 476 386 ShowStep(); 477 ShowStep(); 387 G4cout << " " 478 G4cout << " " 388 << "!Note! Safety of PostStep is on 479 << "!Note! Safety of PostStep is only valid " 389 << "after all DoIt invocations." << << 480 << "after all DoIt invocations." >> 481 << G4endl; 390 482 391 VerboseParticleChange(); << 483 VerboseParticleChange(); 392 G4cout << G4endl; 484 G4cout << G4endl; 393 485 394 G4cout << " ++List of secondaries gener << 486 G4cout << " ++List of secondaries generated " 395 << "(x,y,z,kE,t,PID):" 487 << "(x,y,z,kE,t,PID):" 396 << " No. of secondaries = " << fN2 << 488 << " No. of secondaries = " >> 489 << fN2ndariesAlongStepDoIt << G4endl; 397 490 398 if (fN2ndariesAlongStepDoIt > 0) { << 491 if(fN2ndariesAlongStepDoIt>0) 399 for (std::size_t lp1 = (*fSecondary).siz << 492 { 400 lp1 < (*fSecondary).size(); ++lp1) << 493 for(std::size_t lp1=(*fSecondary).size()-fN2ndariesAlongStepDoIt; >> 494 lp1<(*fSecondary).size(); ++lp1) 401 { 495 { 402 G4cout << " " << std::setw(9) << 496 G4cout << " " 403 << G4BestUnit((*fSecondary)[lp1 << 497 << std::setw( 9) 404 << G4BestUnit((*fSecondary)[lp1 << 498 << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(), "Length") 405 << G4BestUnit((*fSecondary)[lp1 << 499 << " " << std::setw( 9) 406 << G4BestUnit((*fSecondary)[lp1 << 500 << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(), "Length") 407 << std::setw(9) << G4BestUnit(( << 501 << " " << std::setw( 9) 408 << std::setw(18) << (*fSecondar << 502 << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(), "Length") >> 503 << " " << std::setw( 9) >> 504 << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(), "Energy") >> 505 << " " << std::setw( 9) >> 506 << G4BestUnit((*fSecondary)[lp1]->GetGlobalTime(), "Time") >> 507 << " " << std::setw(18) >> 508 << (*fSecondary)[lp1]->GetDefinition()->GetParticleName() >> 509 << G4endl; 409 } 510 } 410 } 511 } 411 } 512 } 412 } 513 } 413 514 414 //....oooOO0OOooo........oooOO0OOooo........oo 515 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 415 516 416 void G4SteppingVerboseWithUnits::PostStepDoItO 517 void G4SteppingVerboseWithUnits::PostStepDoItOneByOne() 417 { 518 { 418 CopyState(); 519 CopyState(); 419 520 420 if (verboseLevel >= 4) { << 521 if(verboseLevel >= 4) >> 522 { 421 G4cout << G4endl; 523 G4cout << G4endl; 422 G4cout << " >>PostStepDoIt (process by pro 524 G4cout << " >>PostStepDoIt (process by process): " 423 << " Process Name = " << fCurrent << 525 << " Process Name = " >> 526 << fCurrentProcess->GetProcessName() << G4endl; 424 527 425 ShowStep(); 528 ShowStep(); 426 G4cout << G4endl; 529 G4cout << G4endl; 427 VerboseParticleChange(); << 530 VerboseParticleChange(); 428 G4cout << G4endl; 531 G4cout << G4endl; 429 532 430 G4cout << " ++List of secondaries gener << 533 G4cout << " ++List of secondaries generated " 431 << "(x,y,z,kE,t,PID):" 534 << "(x,y,z,kE,t,PID):" 432 << " No. of secondaries = " << fN2 << 535 << " No. of secondaries = " >> 536 << fN2ndariesPostStepDoIt << G4endl; 433 537 434 if (fN2ndariesPostStepDoIt > 0) { << 538 if(fN2ndariesPostStepDoIt>0) 435 for (std::size_t lp1 = (*fSecondary).siz << 539 { 436 lp1 < (*fSecondary).size(); ++lp1) << 540 for(std::size_t lp1=(*fSecondary).size()-fN2ndariesPostStepDoIt; >> 541 lp1<(*fSecondary).size(); ++lp1) 437 { 542 { 438 G4cout << " " << std::setw(9) << 543 G4cout << " " 439 << G4BestUnit((*fSecondary)[lp1 << 544 << std::setw( 9) 440 << G4BestUnit((*fSecondary)[lp1 << 545 << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(), "Length") 441 << G4BestUnit((*fSecondary)[lp1 << 546 << " " << std::setw( 9) 442 << G4BestUnit((*fSecondary)[lp1 << 547 << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(), "Length") 443 << std::setw(9) << G4BestUnit(( << 548 << " " << std::setw( 9) 444 << std::setw(18) << (*fSecondar << 549 << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(), "Length") >> 550 << " " << std::setw( 9) >> 551 << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(), "Energy") >> 552 << " " << std::setw( 9) >> 553 << G4BestUnit((*fSecondary)[lp1]->GetGlobalTime(), "Time") >> 554 << " " << std::setw(18) >> 555 << (*fSecondary)[lp1]->GetDefinition()->GetParticleName() >> 556 << G4endl; 445 } 557 } 446 } 558 } 447 } 559 } 448 } 560 } 449 561 450 //....oooOO0OOooo........oooOO0OOooo........oo 562 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 451 563 452 void G4SteppingVerboseWithUnits::VerboseTrack( 564 void G4SteppingVerboseWithUnits::VerboseTrack() 453 { 565 { 454 CopyState(); 566 CopyState(); 455 567 456 G4cout << G4endl; 568 G4cout << G4endl; 457 G4cout << " ++G4Track Information " << G4 569 G4cout << " ++G4Track Information " << G4endl; 458 G4long oldprec = G4cout.precision(fprec); << 570 G4int oldprec = G4cout.precision(fprec); >> 571 459 572 460 G4cout << " --------------------------- 573 G4cout << " -----------------------------------------------" << G4endl; 461 G4cout << " G4Track Information " << << 574 G4cout << " G4Track Information " << std::setw(20) << G4endl; 462 G4cout << " --------------------------- 575 G4cout << " -----------------------------------------------" << G4endl; 463 576 464 G4cout << " Step number : " < << 577 G4cout << " Step number : " >> 578 << std::setw(20) << fTrack->GetCurrentStepNumber() << G4endl; >> 579 G4cout << " Position - x : " >> 580 << std::setw(20) << G4BestUnit(fTrack->GetPosition().x(), "Length") >> 581 << G4endl; >> 582 G4cout << " Position - y : " >> 583 << std::setw(20) << G4BestUnit(fTrack->GetPosition().y(), "Length") >> 584 << G4endl; >> 585 G4cout << " Position - z : " >> 586 << std::setw(20) << G4BestUnit(fTrack->GetPosition().z(), "Length") 465 << G4endl; 587 << G4endl; 466 G4cout << " Position - x : " < << 588 G4cout << " Global Time : " 467 << G4BestUnit(fTrack->GetPosition().x << 589 << std::setw(20) << G4BestUnit(fTrack->GetGlobalTime(), "Time") 468 G4cout << " Position - y : " < << 590 << G4endl; 469 << G4BestUnit(fTrack->GetPosition().y << 591 G4cout << " Local Time : " 470 G4cout << " Position - z : " < << 592 << std::setw(20) << G4BestUnit(fTrack->GetLocalTime(), "Time") 471 << G4BestUnit(fTrack->GetPosition().z << 593 << G4endl; 472 G4cout << " Global Time : " < << 594 G4cout << " Momentum Direct - x : " 473 << G4BestUnit(fTrack->GetGlobalTime() << 595 << std::setw(20) << fTrack->GetMomentumDirection().x() 474 G4cout << " Local Time : " < << 596 << G4endl; 475 << G4BestUnit(fTrack->GetLocalTime(), << 597 G4cout << " Momentum Direct - y : " 476 G4cout << " Momentum Direct - x : " < << 598 << std::setw(20) << fTrack->GetMomentumDirection().y() 477 << G4endl; << 599 << G4endl; 478 G4cout << " Momentum Direct - y : " < << 600 G4cout << " Momentum Direct - z : " 479 << G4endl; << 601 << std::setw(20) << fTrack->GetMomentumDirection().z() 480 G4cout << " Momentum Direct - z : " < << 602 << G4endl; 481 << G4endl; << 603 G4cout << " Kinetic Energy : " 482 G4cout << " Kinetic Energy : " < << 604 << std::setw(20) << G4BestUnit(fTrack->GetKineticEnergy(), "Energy") 483 << G4BestUnit(fTrack->GetKineticEnerg << 605 << G4endl; 484 G4cout << " Polarization - x : " < << 606 G4cout << " Polarization - x : " 485 << G4endl; << 607 << std::setw(20) << fTrack->GetPolarization().x() 486 G4cout << " Polarization - y : " < << 608 << G4endl; 487 << G4endl; << 609 G4cout << " Polarization - y : " 488 G4cout << " Polarization - z : " < << 610 << std::setw(20) << fTrack->GetPolarization().y() 489 << G4endl; << 611 << G4endl; 490 G4cout << " Track Length : " < << 612 G4cout << " Polarization - z : " 491 << G4BestUnit(fTrack->GetTrackLength( << 613 << std::setw(20) << fTrack->GetPolarization().z() 492 G4cout << " Track ID # : " < << 614 << G4endl; 493 G4cout << " Parent Track ID # : " < << 615 G4cout << " Track Length : " 494 G4cout << " Next Volume : " < << 616 << std::setw(20) << G4BestUnit(fTrack->GetTrackLength(), "Length") 495 if (fTrack->GetNextVolume() != nullptr) << 617 << G4endl; 496 G4cout << fTrack->GetNextVolume()->GetName << 618 G4cout << " Track ID # : " 497 else << 619 << std::setw(20) << fTrack->GetTrackID() 498 G4cout << "OutOfWorld" << 620 << G4endl; 499 << " "; << 621 G4cout << " Parent Track ID # : " >> 622 << std::setw(20) << fTrack->GetParentID() >> 623 << G4endl; >> 624 G4cout << " Next Volume : " >> 625 << std::setw(20); >> 626 if (fTrack->GetNextVolume() != 0) >> 627 G4cout << fTrack->GetNextVolume()->GetName() << " "; >> 628 else G4cout << "OutOfWorld" << " "; 500 G4cout << G4endl; 629 G4cout << G4endl; 501 G4cout << " Track Status : " < << 630 G4cout << " Track Status : " 502 if (fTrack->GetTrackStatus() == fAlive) << 631 << std::setw(20); >> 632 if( fTrack->GetTrackStatus() == fAlive ) 503 G4cout << " Alive"; 633 G4cout << " Alive"; 504 else if (fTrack->GetTrackStatus() == fStopBu << 634 else if( fTrack->GetTrackStatus() == fStopButAlive ) 505 G4cout << " StopButAlive"; 635 G4cout << " StopButAlive"; 506 else if (fTrack->GetTrackStatus() == fStopAn << 636 else if( fTrack->GetTrackStatus() == fStopAndKill ) 507 G4cout << " StopAndKill"; 637 G4cout << " StopAndKill"; 508 else if (fTrack->GetTrackStatus() == fKillTr << 638 else if( fTrack->GetTrackStatus() == fKillTrackAndSecondaries ) 509 G4cout << " KillTrackAndSecondaries"; 639 G4cout << " KillTrackAndSecondaries"; 510 else if (fTrack->GetTrackStatus() == fSuspen << 640 else if( fTrack->GetTrackStatus() == fSuspend ) 511 G4cout << " Suspend"; 641 G4cout << " Suspend"; 512 else if (fTrack->GetTrackStatus() == fPostpo << 642 else if( fTrack->GetTrackStatus() == fPostponeToNextEvent ) 513 G4cout << " PostponeToNextEvent"; 643 G4cout << " PostponeToNextEvent"; 514 G4cout << G4endl; 644 G4cout << G4endl; 515 G4cout << " Vertex - x : " < << 645 G4cout << " Vertex - x : " 516 << G4BestUnit(fTrack->GetVertexPositi << 646 << std::setw(20) 517 G4cout << " Vertex - y : " < << 647 << G4BestUnit(fTrack->GetVertexPosition().x(),"Length") 518 << G4BestUnit(fTrack->GetVertexPositi << 648 << G4endl; 519 G4cout << " Vertex - z : " < << 649 G4cout << " Vertex - y : " 520 << G4BestUnit(fTrack->GetVertexPositi << 650 << std::setw(20) 521 G4cout << " Vertex - Px (MomDir): " < << 651 << G4BestUnit(fTrack->GetVertexPosition().y(),"Length") 522 << fTrack->GetVertexMomentumDirection << 652 << G4endl; 523 G4cout << " Vertex - Py (MomDir): " < << 653 G4cout << " Vertex - z : " 524 << fTrack->GetVertexMomentumDirection << 654 << std::setw(20) 525 G4cout << " Vertex - Pz (MomDir): " < << 655 << G4BestUnit(fTrack->GetVertexPosition().z(),"Length") 526 << fTrack->GetVertexMomentumDirection << 656 << G4endl; 527 G4cout << " Vertex - KineE : " < << 657 G4cout << " Vertex - Px (MomDir): " 528 << G4BestUnit(fTrack->GetVertexKineti << 658 << std::setw(20) << fTrack->GetVertexMomentumDirection().x() 529 << 659 << G4endl; 530 G4cout << " Creator Process : " < << 660 G4cout << " Vertex - Py (MomDir): " 531 if (fTrack->GetCreatorProcess() == nullptr) << 661 << std::setw(20) << fTrack->GetVertexMomentumDirection().y() >> 662 << G4endl; >> 663 G4cout << " Vertex - Pz (MomDir): " >> 664 << std::setw(20) << fTrack->GetVertexMomentumDirection().z() >> 665 << G4endl; >> 666 G4cout << " Vertex - KineE : " >> 667 << std::setw(20) >> 668 << G4BestUnit(fTrack->GetVertexKineticEnergy(),"Energy") >> 669 << G4endl; >> 670 >> 671 G4cout << " Creator Process : " >> 672 << std::setw(20); >> 673 if (fTrack->GetCreatorProcess() == 0) 532 G4cout << " Event Generator" << G4endl; 674 G4cout << " Event Generator" << G4endl; 533 else 675 else 534 G4cout << fTrack->GetCreatorProcess()->Get 676 G4cout << fTrack->GetCreatorProcess()->GetProcessName() << G4endl; 535 677 536 G4cout << " --------------------------- << 678 G4cout << " -----------------------------------------------" << G4endl; 537 G4cout.precision(oldprec); << 679 G4cout.precision(oldprec); 538 } 680 } 539 681 540 //....oooOO0OOooo........oooOO0OOooo........oo 682 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 541 683 542 void G4SteppingVerboseWithUnits::VerbosePartic 684 void G4SteppingVerboseWithUnits::VerboseParticleChange() 543 { 685 { 544 G4cout << G4endl; 686 G4cout << G4endl; 545 G4cout << " ++G4ParticleChange Informatio 687 G4cout << " ++G4ParticleChange Information " << G4endl; 546 fParticleChange->DumpInfo(); 688 fParticleChange->DumpInfo(); 547 } 689 } 548 690 549 //....oooOO0OOooo........oooOO0OOooo........oo 691 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 550 692 551 void G4SteppingVerboseWithUnits::ShowStep() co 693 void G4SteppingVerboseWithUnits::ShowStep() const 552 { 694 { 553 // Show header << 695 // Show header 554 G4cout << G4endl; << 696 G4cout << G4endl; 555 G4cout << " ++G4Step Information " << G4e << 697 G4cout << " ++G4Step Information " << G4endl; 556 G4long oldprc = G4cout.precision(fprec); << 698 G4int oldprc = G4cout.precision(fprec); 557 << 699 558 // Show G4Step specific information << 700 // Show G4Step specific information 559 G4cout << " Address of G4Track : " << f << 701 G4cout << " Address of G4Track : " 560 G4cout << " Step Length : " << 702 << fStep->GetTrack() << G4endl; 561 << G4BestUnit(fStep->GetTrack()->GetS << 703 G4cout << " Step Length : " 562 G4cout << " Energy Deposit : " << G << 704 << G4BestUnit(fStep->GetTrack()->GetStepLength(), "Length") << G4endl; 563 << G4endl; << 705 G4cout << " Energy Deposit : " 564 << 706 << G4BestUnit(fStep->GetTotalEnergyDeposit(), "Energy") << G4endl; 565 // Show G4StepPoint specific information << 707 566 G4cout << " --------------------------- << 708 // Show G4StepPoint specific information 567 << "----------------" << G4endl; << 709 G4cout << " -------------------------------------------------------" 568 G4cout << " StepPoint Information " << 710 << "----------------" << G4endl; 569 << "PostStep" << G4endl; << 711 G4cout << " StepPoint Information " 570 G4cout << " --------------------------- << 712 << std::setw(20) << "PreStep" << std::setw(20) << "PostStep" << G4endl; 571 << "----------------" << G4endl; << 713 G4cout << " -------------------------------------------------------" 572 G4cout << " Position - x : " << 714 << "----------------" << G4endl; 573 << G4BestUnit(fStep->GetPreStepPoint( << 715 G4cout << " Position - x : " 574 << G4BestUnit(fStep->GetPostStepPoint << 716 << std::setw(17) 575 G4cout << " Position - y : " << 717 << G4BestUnit(fStep->GetPreStepPoint()->GetPosition().x(), "Length") 576 << G4BestUnit(fStep->GetPreStepPoint( << 718 << std::setw(17) 577 << G4BestUnit(fStep->GetPostStepPoint << 719 << G4BestUnit(fStep->GetPostStepPoint()->GetPosition().x(), "Length") 578 G4cout << " Position - z : " << 720 << G4endl; 579 << G4BestUnit(fStep->GetPreStepPoint( << 721 G4cout << " Position - y : " 580 << G4BestUnit(fStep->GetPostStepPoint << 722 << std::setw(17) 581 G4cout << " Global Time : " << 723 << G4BestUnit(fStep->GetPreStepPoint()->GetPosition().y(), "Length") 582 << G4BestUnit(fStep->GetPreStepPoint( << 724 << std::setw(17) 583 << G4BestUnit(fStep->GetPostStepPoint << 725 << G4BestUnit(fStep->GetPostStepPoint()->GetPosition().y(), "Length") 584 G4cout << " Local Time : " << 726 << G4endl; 585 << G4BestUnit(fStep->GetPreStepPoint( << 727 G4cout << " Position - z : " 586 << G4BestUnit(fStep->GetPostStepPoint << 728 << std::setw(17) 587 G4cout << " Proper Time : " << 729 << G4BestUnit(fStep->GetPreStepPoint()->GetPosition().z(), "Length") 588 << G4BestUnit(fStep->GetPreStepPoint( << 730 << std::setw(17) 589 << G4BestUnit(fStep->GetPostStepPoint << 731 << G4BestUnit(fStep->GetPostStepPoint()->GetPosition().z(), "Length") 590 G4cout << " Momentum Direct - x : " << 732 << G4endl; 591 << fStep->GetPreStepPoint()->GetMomen << 733 G4cout << " Global Time : " 592 << fStep->GetPostStepPoint()->GetMome << 734 << std::setw(17) 593 G4cout << " Momentum Direct - y : " << 735 << G4BestUnit(fStep->GetPreStepPoint()->GetGlobalTime(), "Time") 594 << fStep->GetPreStepPoint()->GetMomen << 736 << std::setw(17) 595 << fStep->GetPostStepPoint()->GetMome << 737 << G4BestUnit(fStep->GetPostStepPoint()->GetGlobalTime(), "Time") 596 G4cout << " Momentum Direct - z : " << 738 << G4endl; 597 << fStep->GetPreStepPoint()->GetMomen << 739 G4cout << " Local Time : " 598 << fStep->GetPostStepPoint()->GetMome << 740 << std::setw(17) 599 G4cout << " Momentum - x : " << 741 << G4BestUnit(fStep->GetPreStepPoint()->GetLocalTime(), "Time") 600 << G4BestUnit(fStep->GetPreStepPoint( << 742 << std::setw(17) 601 << G4BestUnit(fStep->GetPostStepPoint << 743 << G4BestUnit(fStep->GetPostStepPoint()->GetLocalTime(), "Time") 602 G4cout << " Momentum - y : " << 744 << G4endl; 603 << G4BestUnit(fStep->GetPreStepPoint( << 745 G4cout << " Proper Time : " 604 << G4BestUnit(fStep->GetPostStepPoint << 746 << std::setw(17) 605 G4cout << " Momentum - z : " << 747 << G4BestUnit(fStep->GetPreStepPoint()->GetProperTime(), "Time") 606 << G4BestUnit(fStep->GetPreStepPoint( << 748 << std::setw(17) 607 << G4BestUnit(fStep->GetPostStepPoint << 749 << G4BestUnit(fStep->GetPostStepPoint()->GetProperTime(), "Time") 608 G4cout << " Total Energy : " << 750 << G4endl; 609 << G4BestUnit(fStep->GetPreStepPoint( << 751 G4cout << " Momentum Direct - x : " 610 << G4BestUnit(fStep->GetPostStepPoint << 752 << std::setw(20) << fStep->GetPreStepPoint()->GetMomentumDirection().x() 611 G4cout << " Kinetic Energy : " << 753 << std::setw(20) << fStep->GetPostStepPoint()->GetMomentumDirection().x() 612 << G4BestUnit(fStep->GetPreStepPoint( << 754 << G4endl; 613 << G4BestUnit(fStep->GetPostStepPoint << 755 G4cout << " Momentum Direct - y : " 614 G4cout << " Velocity : " << 756 << std::setw(20) << fStep->GetPreStepPoint()->GetMomentumDirection().y() 615 << G4BestUnit(fStep->GetPreStepPoint( << 757 << std::setw(20) << fStep->GetPostStepPoint()->GetMomentumDirection().y() 616 << G4BestUnit(fStep->GetPostStepPoint << 758 << G4endl; 617 G4cout << " Volume Name : " << 759 G4cout << " Momentum Direct - z : " 618 << fStep->GetPreStepPoint()->GetPhysi << 760 << std::setw(20) << fStep->GetPreStepPoint()->GetMomentumDirection().z() 619 G4String volName = "OutOfWorld"; << 761 << std::setw(20) << fStep->GetPostStepPoint()->GetMomentumDirection().z() 620 if (fStep->GetPostStepPoint()->GetPhysicalVo << 762 << G4endl; 621 volName = fStep->GetPostStepPoint()->GetPh << 763 G4cout << " Momentum - x : " 622 G4cout << std::setw(20) << volName << G4endl << 764 << std::setw(14) 623 G4cout << " Safety : " << 765 << G4BestUnit(fStep->GetPreStepPoint()->GetMomentum().x(),"Momentum") 624 << G4BestUnit(fStep->GetPreStepPoint( << 766 << std::setw(14) 625 << G4BestUnit(fStep->GetPostStepPoint << 767 << G4BestUnit(fStep->GetPostStepPoint()->GetMomentum().x(),"Momentum") 626 G4cout << " Polarization - x : " << 768 << G4endl; 627 << fStep->GetPreStepPoint()->GetPolar << 769 G4cout << " Momentum - y : " 628 << fStep->GetPostStepPoint()->GetPola << 770 << std::setw(14) 629 G4cout << " Polarization - y : " << 771 << G4BestUnit(fStep->GetPreStepPoint()->GetMomentum().y(),"Momentum") 630 << fStep->GetPreStepPoint()->GetPolar << 772 << std::setw(14) 631 << fStep->GetPostStepPoint()->GetPola << 773 << G4BestUnit(fStep->GetPostStepPoint()->GetMomentum().y(),"Momentum") 632 G4cout << " Polarization - Z : " << 774 << G4endl; 633 << fStep->GetPreStepPoint()->GetPolar << 775 G4cout << " Momentum - z : " 634 << fStep->GetPostStepPoint()->GetPola << 776 << std::setw(14) 635 G4cout << " Weight : " << 777 << G4BestUnit(fStep->GetPreStepPoint()->GetMomentum().z(),"Momentum") 636 << fStep->GetPreStepPoint()->GetWeigh << 778 << std::setw(14) 637 << fStep->GetPostStepPoint()->GetWeig << 779 << G4BestUnit(fStep->GetPostStepPoint()->GetMomentum().z(),"Momentum") 638 G4cout << " Step Status : "; << 780 << G4endl; 639 G4StepStatus tStepStatus = fStep->GetPreStep << 781 G4cout << " Total Energy : " 640 if (tStepStatus == fGeomBoundary) { << 782 << std::setw(16) 641 G4cout << std::setw(20) << "Geom Limit"; << 783 << G4BestUnit(fStep->GetPreStepPoint()->GetTotalEnergy(),"Energy") 642 } << 784 << std::setw(16) 643 else if (tStepStatus == fAlongStepDoItProc) << 785 << G4BestUnit(fStep->GetPostStepPoint()->GetTotalEnergy(),"Energy") 644 G4cout << std::setw(20) << "AlongStep Proc << 786 << G4endl; 645 } << 787 G4cout << " Kinetic Energy : " 646 else if (tStepStatus == fPostStepDoItProc) { << 788 << std::setw(16) 647 G4cout << std::setw(20) << "PostStep Proc" << 789 << G4BestUnit(fStep->GetPreStepPoint()->GetKineticEnergy(),"Energy") 648 } << 790 << std::setw(16) 649 else if (tStepStatus == fAtRestDoItProc) { << 791 << G4BestUnit(fStep->GetPostStepPoint()->GetKineticEnergy(),"Energy") 650 G4cout << std::setw(20) << "AtRest Proc"; << 792 << G4endl; 651 } << 793 G4cout << " Velocity : " 652 else if (tStepStatus == fUndefined) { << 794 << std::setw(14) 653 G4cout << std::setw(20) << "Undefined"; << 795 << G4BestUnit(fStep->GetPreStepPoint()->GetVelocity(),"Velocity") 654 } << 796 << std::setw(14) 655 << 797 << G4BestUnit(fStep->GetPostStepPoint()->GetVelocity(),"Velocity") 656 tStepStatus = fStep->GetPostStepPoint()->Get << 798 << G4endl; 657 if (tStepStatus == fGeomBoundary) { << 799 G4cout << " Volume Name : " 658 G4cout << std::setw(20) << "Geom Limit"; << 800 << std::setw(20) 659 } << 801 << fStep->GetPreStepPoint()->GetPhysicalVolume()->GetName(); 660 else if (tStepStatus == fAlongStepDoItProc) << 802 G4String volName = "OutOfWorld"; 661 G4cout << std::setw(20) << "AlongStep Proc << 803 if (fStep->GetPostStepPoint()->GetPhysicalVolume()) 662 } << 804 volName = fStep->GetPostStepPoint()->GetPhysicalVolume()->GetName(); 663 else if (tStepStatus == fPostStepDoItProc) { << 805 G4cout << std::setw(20) << volName 664 G4cout << std::setw(20) << "PostStep Proc" << 806 << G4endl; 665 } << 807 G4cout << " Safety : " 666 else if (tStepStatus == fAtRestDoItProc) { << 808 << std::setw(17) 667 G4cout << std::setw(20) << "AtRest Proc"; << 809 << G4BestUnit(fStep->GetPreStepPoint()->GetSafety(),"Length") 668 } << 810 << std::setw(17) 669 else if (tStepStatus == fUndefined) { << 811 << G4BestUnit(fStep->GetPostStepPoint()->GetSafety(),"Length") 670 G4cout << std::setw(20) << "Undefined"; << 812 << G4endl; 671 } << 813 G4cout << " Polarization - x : " 672 << 814 << std::setw(20) << fStep->GetPreStepPoint()->GetPolarization().x() 673 G4cout << G4endl; << 815 << std::setw(20) << fStep->GetPostStepPoint()->GetPolarization().x() 674 G4cout << " Process defined Step: "; << 816 << G4endl; 675 if (fStep->GetPreStepPoint()->GetProcessDefi << 817 G4cout << " Polarization - y : " 676 G4cout << std::setw(20) << "Undefined"; << 818 << std::setw(20) << fStep->GetPreStepPoint()->GetPolarization().y() 677 } << 819 << std::setw(20) << fStep->GetPostStepPoint()->GetPolarization().y() 678 else { << 820 << G4endl; 679 G4cout << std::setw(20) << fStep->GetPreSt << 821 G4cout << " Polarization - Z : " 680 } << 822 << std::setw(20) << fStep->GetPreStepPoint()->GetPolarization().z() 681 if (fStep->GetPostStepPoint()->GetProcessDef << 823 << std::setw(20) << fStep->GetPostStepPoint()->GetPolarization().z() 682 G4cout << std::setw(20) << "Undefined"; << 824 << G4endl; 683 } << 825 G4cout << " Weight : " 684 else { << 826 << std::setw(20) << fStep->GetPreStepPoint()->GetWeight() 685 G4cout << std::setw(20) << fStep->GetPostS << 827 << std::setw(20) << fStep->GetPostStepPoint()->GetWeight() 686 } << 828 << G4endl; 687 G4cout.precision(oldprc); << 829 G4cout << " Step Status : " ; 688 << 830 G4StepStatus tStepStatus = fStep->GetPreStepPoint()->GetStepStatus(); 689 G4cout << G4endl; << 831 if( tStepStatus == fGeomBoundary ) 690 G4cout << " --------------------------- << 832 { 691 << "----------------" << G4endl; << 833 G4cout << std::setw(20) << "Geom Limit"; >> 834 } >> 835 else if ( tStepStatus == fAlongStepDoItProc ) >> 836 { >> 837 G4cout << std::setw(20) << "AlongStep Proc."; >> 838 } >> 839 else if ( tStepStatus == fPostStepDoItProc ) >> 840 { >> 841 G4cout << std::setw(20) << "PostStep Proc"; >> 842 } >> 843 else if ( tStepStatus == fAtRestDoItProc ) >> 844 { >> 845 G4cout << std::setw(20) << "AtRest Proc"; >> 846 } >> 847 else if ( tStepStatus == fUndefined ) >> 848 { >> 849 G4cout << std::setw(20) << "Undefined"; >> 850 } >> 851 >> 852 tStepStatus = fStep->GetPostStepPoint()->GetStepStatus(); >> 853 if( tStepStatus == fGeomBoundary ) >> 854 { >> 855 G4cout << std::setw(20) << "Geom Limit"; >> 856 } >> 857 else if ( tStepStatus == fAlongStepDoItProc ) >> 858 { >> 859 G4cout << std::setw(20) << "AlongStep Proc."; >> 860 } >> 861 else if ( tStepStatus == fPostStepDoItProc ) >> 862 { >> 863 G4cout << std::setw(20) << "PostStep Proc"; >> 864 } >> 865 else if ( tStepStatus == fAtRestDoItProc ) >> 866 { >> 867 G4cout << std::setw(20) << "AtRest Proc"; >> 868 } >> 869 else if ( tStepStatus == fUndefined ) >> 870 { >> 871 G4cout << std::setw(20) << "Undefined"; >> 872 } >> 873 >> 874 G4cout << G4endl; >> 875 G4cout << " Process defined Step: " ; >> 876 if( fStep->GetPreStepPoint()->GetProcessDefinedStep() == 0 ) >> 877 { >> 878 G4cout << std::setw(20) << "Undefined"; >> 879 } >> 880 else >> 881 { >> 882 G4cout << std::setw(20) >> 883 << fStep->GetPreStepPoint() >> 884 ->GetProcessDefinedStep()->GetProcessName(); >> 885 } >> 886 if( fStep->GetPostStepPoint()->GetProcessDefinedStep() == 0) >> 887 { >> 888 G4cout << std::setw(20) << "Undefined"; >> 889 } >> 890 else >> 891 { >> 892 G4cout << std::setw(20) >> 893 << fStep->GetPostStepPoint() >> 894 ->GetProcessDefinedStep()->GetProcessName(); >> 895 } >> 896 G4cout.precision(oldprc); >> 897 >> 898 G4cout << G4endl; >> 899 G4cout << " -------------------------------------------------------" >> 900 << "----------------" << G4endl; 692 } 901 } 693 902 694 //....oooOO0OOooo........oooOO0OOooo........oo 903 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 695 904