Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
/** \file LaserSteppingVerbose.cc
 *
 *
 *  $Date: 2007/03/20 12:01:01 $
 *  $Revision: 1.2 $
 *  \author Maarten Thomas
 */

#include "Alignment/LaserAlignmentSimulation/interface/LaserSteppingVerbose.h"
#include "G4UnitsTable.hh"

LaserSteppingVerbose::LaserSteppingVerbose() {}

LaserSteppingVerbose::~LaserSteppingVerbose() {}

void LaserSteppingVerbose::StepInfo() {
  //  G4cout << "<LaserSteppingVerbose::StepInfo()>: verboseLevel = " <<
  //  verboseLevel << endl;

  CopyState();

  G4int precision = G4cout.precision(3);

  if (verboseLevel >= 1) {
    if (verboseLevel >= 4)
      VerboseTrack();
    if (verboseLevel >= 3) {
      G4cout << G4endl;
      G4cout << std::setw(5) << "#Step#"
             << " " << std::setw(6) << "X"
             << "   " << std::setw(6) << "Y"
             << "   " << std::setw(6) << "Z"
             << "   " << std::setw(9) << "KineE"
             << "   " << std::setw(9) << "dEStep"
             << "   " << std::setw(10) << "StepLength"
             << " " << std::setw(10) << "TrackLength"
             << " " << std::setw(10) << "Volume"
             << " " << std::setw(10) << "Process" << G4endl;

      G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " << std::setw(6)
             << G4BestUnit(fTrack->GetPosition().x(), "Length") << std::setw(6)
             << G4BestUnit(fTrack->GetPosition().y(), "Length") << std::setw(6)
             << G4BestUnit(fTrack->GetPosition().z(), "Length") << std::setw(6)
             << G4BestUnit(fTrack->GetKineticEnergy(), "Energy") << std::setw(6)
             << G4BestUnit(fStep->GetTotalEnergyDeposit(), "Energy") << std::setw(6)
             << G4BestUnit(fStep->GetStepLength(), "Length") << std::setw(6)
             << G4BestUnit(fTrack->GetTrackLength(), "Length") << " ";

      if (fTrack->GetNextVolume() != nullptr) {
        G4cout << std::setw(10) << fTrack->GetVolume()->GetName();
      } else {
        G4cout << std::setw(10) << "OutOfWorld";
      }

      if (fStep->GetPostStepPoint()->GetProcessDefinedStep() != nullptr) {
        G4cout << " " << std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName();
      } else {
        G4cout << "    UserLimit";
      }

      G4cout << G4endl;

      if (verboseLevel == 2) {
        // total number of secondaries
        G4int tN2ndariesTot = fN2ndariesAtRestDoIt + fN2ndariesAlongStepDoIt + fN2ndariesPostStepDoIt;

        if (tN2ndariesTot > 0) {
          G4cout << "   :---- List of Secondaries - "
                 << "#SpawnInStep = " << std::setw(3) << tN2ndariesTot << "(Rest = " << std::setw(2)
                 << fN2ndariesAtRestDoIt << ", Along = " << std::setw(2) << fN2ndariesAlongStepDoIt
                 << ", Post = " << std::setw(2) << fN2ndariesPostStepDoIt << "), "
                 << "#SpawnTotal = " << std::setw(3) << (*fSecondary).size() << " --------- " << G4endl;

          for (size_t lp1 = (*fSecondary).size() - tN2ndariesTot; lp1 < (*fSecondary).size(); lp1++) {
            G4cout << "   : " << std::setw(6) << G4BestUnit((*fSecondary)[lp1]->GetPosition().x(), "Length")
                   << std::setw(6) << G4BestUnit((*fSecondary)[lp1]->GetPosition().y(), "Length") << std::setw(6)
                   << G4BestUnit((*fSecondary)[lp1]->GetPosition().z(), "Length") << std::setw(6)
                   << G4BestUnit((*fSecondary)[lp1]->GetKineticEnergy(), "Energy") << std::setw(10)
                   << (*fSecondary)[lp1]->GetDefinition()->GetParticleName();
            G4cout << G4endl;
          }

          G4cout << "   :----------------------"
                 << "--------------------------"
                 << "-- End of Secondaries Info --------------------------------- " << G4endl;
        }
      }
    }
  }
  G4cout.precision(precision);
}

void LaserSteppingVerbose::TrackingStarted() {
  CopyState();

  G4int precision = G4cout.precision(3);
  if (verboseLevel > 0) {
    G4cout << std::setw(5) << "Step#"
           << " " << std::setw(6) << "X"
           << "     " << std::setw(6) << "Y"
           << "     " << std::setw(6) << "Z"
           << "     " << std::setw(9) << "KineE"
           << " " << std::setw(9) << "dEStep"
           << " " << std::setw(10) << "StepLength"
           << " " << std::setw(10) << "TrackLength"
           << " " << std::setw(10) << "Volume"
           << "  " << std::setw(10) << "Process " << G4endl;

    G4cout << std::setw(5) << fTrack->GetCurrentStepNumber() << " " << std::setw(6)
           << G4BestUnit(fTrack->GetPosition().x(), "Length") << std::setw(6)
           << G4BestUnit(fTrack->GetPosition().y(), "Length") << std::setw(6)
           << G4BestUnit(fTrack->GetPosition().z(), "Length") << std::setw(6)
           << G4BestUnit(fTrack->GetKineticEnergy(), "Energy") << std::setw(6)
           << G4BestUnit(fStep->GetTotalEnergyDeposit(), "Energy") << std::setw(6)
           << G4BestUnit(fStep->GetStepLength(), "Length") << std::setw(6)
           << G4BestUnit(fTrack->GetTrackLength(), "Length") << "   ";

    if (fTrack->GetNextVolume() != nullptr) {
      G4cout << std::setw(10) << fTrack->GetVolume()->GetName();
    } else {
      G4cout << "OutOfWorld";
    }

    G4cout << "     initStep" << G4endl;
  }
  G4cout.precision(precision);
}