Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************************************** 25 // 26 27 #include "eRositaSteppingVerbose.hh" 28 29 #include "G4SteppingManager.hh" 30 #include "G4UnitsTable.hh" 31 32 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 33 34 eRositaSteppingVerbose::eRositaSteppingVerbose() 35 { 36 } 37 38 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 39 40 eRositaSteppingVerbose::~eRositaSteppingVerbose() 41 { 42 } 43 44 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 45 46 void eRositaSteppingVerbose::StepInfo() 47 { 48 CopyState(); 49 50 G4int precision = G4cout.precision(3); 51 52 if (verboseLevel >= 1) { 53 if (verboseLevel >= 4) { 54 VerboseTrack(); 55 } 56 if (verboseLevel >= 3) { 57 G4cout << G4endl; 58 G4cout << std::setw(5) << "Step#" 59 << " " 60 << std::setw(6) << "X" 61 << " " 62 << std::setw(6) << "Y" 63 << " " 64 << std::setw(6) << "Z" 65 << " " 66 << std::setw(9) << "KineticEnergy" 67 << " " 68 << std::setw(9) << "dEStep" 69 << " " 70 << std::setw(10) << "StepLength" 71 << std::setw(10) << "TrackLength" 72 << std::setw(10) << "Volume" 73 << " " 74 << std::setw(10) << "Process" << G4endl; 75 } 76 77 G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " 78 << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(), "Length") 79 << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(), "Length") 80 << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(), "Length") 81 << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(), "Energy") 82 << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(), "Energy") 83 << std::setw(6) << G4BestUnit(fStep->GetStepLength(), "Length") 84 << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(), "Length") 85 << " "; 86 87 // if(fStepStatus != fWorldBoundary) { 88 if (fTrack->GetNextVolume() != nullptr) { 89 G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); 90 } else { 91 G4cout << std::setw(10) << "OutOfWorld"; 92 } 93 94 if (fStep->GetPostStepPoint()->GetProcessDefinedStep() != nullptr) { 95 G4cout << " " 96 << std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName(); 97 } else { 98 G4cout << " UserLimit"; 99 } 100 101 G4cout << G4endl; 102 103 if (verboseLevel == 2) { 104 G4int tN2ndariesTot = fN2ndariesAtRestDoIt + fN2ndariesAlongStepDoIt + fN2ndariesPostStepDoIt; 105 if (tN2ndariesTot > 0) { 106 G4cout << " :----- List of secondaries - " 107 << "#SpawnInStep: " << std::setw(3) << tN2ndariesTot 108 << "(Rest: " << std::setw(2) << fN2ndariesAtRestDoIt 109 << ", Along: " << std::setw(2) << fN2ndariesAlongStepDoIt 110 << ", Post: " << std::setw(2) << fN2ndariesPostStepDoIt 111 << "), " 112 << "#SpawnTotal: " << std::setw(3) << (*fSecondary).size() 113 << " ---------------" 114 << G4endl; 115 116 for (size_t lp1 = (*fSecondary).size() - tN2ndariesTot; lp1 < (*fSecondary).size(); lp1++) { 117 G4cout << " : " 118 << std::setw(6) 119 << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(), "Length") 120 << std::setw(6) 121 << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(), "Length") 122 << std::setw(6) 123 << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(), "Length") 124 << std::setw(6) 125 << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(), "Energy") 126 << std::setw(10) 127 << (*fSecondary)[lp1]->GetDefinition()->GetParticleName(); 128 G4cout << G4endl; 129 } 130 131 G4cout << " :-----------------------------" 132 << "----------------------------------" 133 << "-- EndOfSecondaries Info ---------------" 134 << G4endl; 135 } 136 } 137 } 138 G4cout.precision(precision); 139 } 140 141 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 142 143 void eRositaSteppingVerbose::TrackingStarted() 144 { 145 CopyState(); 146 147 G4int precision = G4cout.precision(3); 148 149 if (verboseLevel > 0) { 150 G4cout << std::setw(5) << "Step#" 151 << " " 152 << std::setw(6) << "X" 153 << " " 154 << std::setw(6) << "Y" 155 << " " 156 << std::setw(6) << "Z" 157 << " " 158 << std::setw(9) << "KineticEnergy" 159 << " " 160 << std::setw(9) << "dEStep" 161 << " " 162 << std::setw(10) << "StepLength" 163 << std::setw(10) << "TrackLength" 164 << std::setw(10) << "Volume" 165 << " " 166 << std::setw(10) << "Process" << G4endl; 167 168 G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " 169 << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(), "Length") 170 << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(), "Length") 171 << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(), "Length") 172 << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(), "Energy") 173 << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(), "Energy") 174 << std::setw(6) << G4BestUnit(fStep->GetStepLength(), "Length") 175 << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(), "Length") 176 << " "; 177 178 if (fTrack->GetNextVolume() != nullptr) { 179 G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); 180 } else { 181 G4cout << std::setw(10) << "OutOfWorld"; 182 } 183 G4cout << " initStep" << G4endl; 184 } 185 G4cout.precision(precision); 186 } 187