35 #include "PrimaryGeneratorAction.hh" 36 #include "HistoManager.hh" 46 fParticle(0), fEkin(0.),
47 fDecayCount(0), fTimeCount(0), fPrimaryTime(0.)
75 ParticleData& data = it->second;
80 if (Ekin < emin) data.fEmin = Ekin;
82 if (Ekin > emax) data.fEmax = Ekin;
136 const Run* localRun =
static_cast<const Run*
>(run);
172 std::map<G4String,ParticleData>::const_iterator itn;
206 G4cout <<
"\n ======================== run summary ======================";
207 G4cout <<
"\n The run was " << nbEvents <<
" " << partName <<
" of " 209 G4cout <<
"\n ===========================================================\n";
211 if (nbEvents == 0) {
return; }
220 std::map<G4String,ParticleData>::iterator it;
229 G4cout <<
" " << std::setw(13) << name <<
": " << std::setw(7) << count
230 <<
" Emean = " << std::setw(wid) <<
G4BestUnit(eMean,
"Energy")
243 G4cout <<
"\n Ekin Total (Q single decay): mean = " 244 << std::setw(wid) <<
G4BestUnit(Ebmean,
"Energy")
249 G4cout <<
"\n Momentum balance (excluding gamma desexcitation): mean = " 250 << std::setw(wid) <<
G4BestUnit(Pbmean,
"Energy")
260 G4double halfLife = Tmean*std::log(2.);
262 G4cout <<
"\n Total time of life (full chain): mean = " 263 << std::setw(wid) <<
G4BestUnit(Tmean,
"Time")
265 << std::setw(wid) <<
G4BestUnit(halfLife,
"Time")
276 G4cout <<
"\n Total visible energy (full chain) : mean = " 277 << std::setw(wid) <<
G4BestUnit(Evmean,
"Energy")
288 G4double Activity_perUnitOfMass = 0.0;
290 { Activity_perUnitOfMass = nAtoms_perUnitOfMass/pTimeMean; }
292 G4cout <<
"\n Activity of " << partName <<
" = " 293 << std::setw(wid) << Activity_perUnitOfMass*
g/
becquerel 294 <<
" Bq/g (" << Activity_perUnitOfMass*
g/
curie 302 analysisManager->ScaleH1(1,factor);
303 analysisManager->ScaleH1(2,factor);
304 analysisManager->ScaleH1(3,factor);
305 analysisManager->ScaleH1(4,factor);
306 analysisManager->ScaleH1(5,factor);
std::map< G4String, ParticleData > fParticleDataMap
virtual void Merge(const G4Run *)
void PrimaryTiming(G4double)
void EventTiming(G4double)
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
static const double becquerel
ExG4HbookAnalysisManager G4AnalysisManager
static const double curie
static const G4double emax
static const G4double factor
G4ParticleDefinition * fParticle
void SetPrimary(G4ParticleDefinition *particle, G4double energy)
virtual void Merge(const G4Run *)
G4int GetAtomicMass() const
void ParticleCount(G4String, G4double)