34 #include "RunAction.hh"
36 #include "DetectorConstruction.hh"
37 #include "PrimaryGeneratorAction.hh"
38 #include "HistoManager.hh"
76 fSumTrack = fSumTrack2 = 0.;
82 if ( analysisManager->IsActive() ) {
83 analysisManager->OpenFile();
92 if (NbOfEvents == 0)
return;
104 G4cout <<
"\n The run consists of " << NbOfEvents <<
" "<< Particle <<
" of "
107 << material->
GetName() <<
" (density: "
111 G4cout <<
"\n Process calls frequency --->";
112 std::map<G4String,G4int>::iterator it;
113 for (it = fProcCounter.begin(); it != fProcCounter.end(); it++) {
115 G4int count = it->second;
116 G4cout <<
"\t" << procName <<
" = " << count;
117 if (procName ==
"Transportation") survive = count;
121 G4cout <<
"\n\n Nb of incident particles surviving after "
126 if (fTotalCount == 0) fTotalCount = 1;
130 G4double MeanFreePath = fSumTrack /fTotalCount;
131 G4double MeanTrack2 = fSumTrack2/fTotalCount;
132 G4double rms = std::sqrt(std::fabs(MeanTrack2 - MeanFreePath*MeanFreePath));
133 G4double CrossSection = 1./MeanFreePath;
139 <<
"\tmassic: " <<
G4BestUnit(massicMFP,
"Mass/Surface")
140 <<
"\n CrossSection:\t" << CrossSection*
cm <<
" cm^-1 "
141 <<
"\t\t\tmassic: " <<
G4BestUnit(massicCS,
"Surface/Mass")
146 G4double MeanTransfer = fEnTransfer/fTotalCount;
149 G4cout <<
"\n mean energy of charged secondaries: "
151 <<
"\tmass_energy_transfer coef: "
157 G4cout <<
"\n Verification : "
158 <<
"crossSections from G4EmCalculator \n";
162 for (it = fProcCounter.begin(); it != fProcCounter.end(); it++) {
172 G4cout <<
"\t" << procName <<
"= "
182 fProcCounter.clear();
186 if ( analysisManager->IsActive() ) {
187 analysisManager->Write();
188 analysisManager->CloseFile();
void BeginOfRunAction(const G4Run *)
const G4String & GetName() const
G4double GetDensity() const
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
void SetRandomNumberStore(G4bool flag)
G4double GetCrossSectionPerVolume(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, const G4Region *r=0)
const G4String & GetParticleName() const
double precision function energy(A, Z)
G4GLOB_DLL std::ostream G4cout
G4int GetNumberOfEvent() const
G4Material * GetMaterial()
void EndOfRunAction(const G4Run *)
ExG4HbookAnalysisManager G4AnalysisManager
static void showEngineStatus()
static G4RunManager * GetRunManager()
G4ParticleGun * GetParticleGun()
G4double ComputeCrossSectionPerVolume(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, G4double cut=0.0)
G4ParticleDefinition * GetParticleDefinition() const
G4double GetParticleEnergy() const