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