00001
00002
00003 #include "musrSteppingVerbose.hh"
00004
00005 #include "G4SteppingManager.hh"
00006 #include "G4UnitsTable.hh"
00007
00008
00009
00010 musrSteppingVerbose::musrSteppingVerbose()
00011 {}
00012
00013
00014
00015 musrSteppingVerbose::~musrSteppingVerbose()
00016 {}
00017
00018
00019
00020 void musrSteppingVerbose::StepInfo()
00021 {
00022 CopyState();
00023
00024 G4int prec = G4cout.precision(3);
00025
00026 if( verboseLevel >= 1 ){
00027 if( verboseLevel >= 4 ) VerboseTrack();
00028 if( verboseLevel >= 3 ){
00029 G4cout << G4endl;
00030 G4cout << std::setw( 5) << "#Step#" << " "
00031 << std::setw( 6) << "X" << " "
00032 << std::setw( 6) << "Y" << " "
00033 << std::setw( 6) << "Z" << " "
00034 << std::setw( 9) << "KineE" << " "
00035 << std::setw( 9) << "dEStep" << " "
00036 << std::setw(10) << "StepLeng"
00037 << std::setw(10) << "TrakLeng"
00038 << std::setw(10) << "Volume" << " "
00039 << std::setw(10) << "Process" << G4endl;
00040 }
00041
00042 G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " "
00043 << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
00044 << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
00045 << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
00046 << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
00047 << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
00048 << std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length")
00049 << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length")
00050 << " ";
00051
00052
00053 if( fTrack->GetNextVolume() != 0 ) {
00054 G4cout << std::setw(10) << fTrack->GetVolume()->GetName();
00055 } else {
00056 G4cout << std::setw(10) << "OutOfWorld";
00057 }
00058
00059 if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){
00060 G4cout << " "
00061 << std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep()
00062 ->GetProcessName();
00063 } else {
00064 G4cout << " UserLimit";
00065 }
00066
00067 G4cout << G4endl;
00068
00069 if( verboseLevel == 2 ){
00070 G4int tN2ndariesTot = fN2ndariesAtRestDoIt +
00071 fN2ndariesAlongStepDoIt +
00072 fN2ndariesPostStepDoIt;
00073 if(tN2ndariesTot>0){
00074 G4cout << " :----- List of 2ndaries - "
00075 << "#SpawnInStep=" << std::setw(3) << tN2ndariesTot
00076 << "(Rest=" << std::setw(2) << fN2ndariesAtRestDoIt
00077 << ",Along=" << std::setw(2) << fN2ndariesAlongStepDoIt
00078 << ",Post=" << std::setw(2) << fN2ndariesPostStepDoIt
00079 << "), "
00080 << "#SpawnTotal=" << std::setw(3) << (*fSecondary).size()
00081 << " ---------------"
00082 << G4endl;
00083
00084 for(size_t lp1=(*fSecondary).size()-tN2ndariesTot;
00085 lp1<(*fSecondary).size(); lp1++){
00086 G4cout << " : "
00087 << std::setw(6)
00088 << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(),"Length")
00089 << std::setw(6)
00090 << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(),"Length")
00091 << std::setw(6)
00092 << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(),"Length")
00093 << std::setw(6)
00094 << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(),"Energy")
00095 << std::setw(10)
00096 << (*fSecondary)[lp1]->GetDefinition()->GetParticleName();
00097 G4cout << G4endl;
00098 }
00099
00100 G4cout << " :-----------------------------"
00101 << "----------------------------------"
00102 << "-- EndOf2ndaries Info ---------------"
00103 << G4endl;
00104 }
00105 }
00106
00107 }
00108 G4cout.precision(prec);
00109 }
00110
00111
00112
00113 void musrSteppingVerbose::TrackingStarted()
00114 {
00115
00116 CopyState();
00117 G4int prec = G4cout.precision(3);
00118 if( verboseLevel > 0 ){
00119
00120 G4cout << std::setw( 5) << "Step#" << " "
00121 << std::setw( 6) << "X" << " "
00122 << std::setw( 6) << "Y" << " "
00123 << std::setw( 6) << "Z" << " "
00124 << std::setw( 9) << "KineE" << " "
00125 << std::setw( 9) << "dEStep" << " "
00126 << std::setw(10) << "StepLeng"
00127 << std::setw(10) << "TrakLeng"
00128 << std::setw(10) << "Volume" << " "
00129 << std::setw(10) << "Process" << G4endl;
00130
00131 G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " "
00132 << std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
00133 << std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
00134 << std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
00135 << std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
00136 << std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
00137 << std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length")
00138 << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length")
00139 << " ";
00140
00141 if(fTrack->GetNextVolume()){
00142 G4cout << std::setw(10) << fTrack->GetVolume()->GetName();
00143 } else {
00144 G4cout << std::setw(10) << "OutOfWorld";
00145 }
00146 G4cout << " initStep" << G4endl;
00147 }
00148 G4cout.precision(prec);
00149 }
00150
00151