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;
 
  177     const ParticleData& localData = itn->second;   
 
  180        = ParticleData(localData.fCount, 
 
  187       data.fCount += localData.fCount;
 
  188       data.fEmean += localData.fEmean;
 
  190       if (emin < data.fEmin) data.fEmin = emin;
 
  192       if (emax > data.fEmax) data.fEmax = 
emax; 
 
  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;               
 
  223     ParticleData data = it->second;
 
  224     G4int count    = data.fCount;
 
  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")
 
  287  G4double nAtoms_perUnitOfMass = Avogadro/molMass;
 
  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
 
G4int GetAtomicMass() const 
 
static const double curie
 
static const G4double emax
 
static const G4double factor
 
T max(const T t1, const T t2)
brief Return the largest of the two arguments 
 
G4double energy(const ThreeVector &p, const G4double m)
 
T min(const T t1, const T t2)
brief Return the smallest of the two arguments 
 
G4ParticleDefinition * fParticle
 
void SetPrimary(G4ParticleDefinition *particle, G4double energy)
 
virtual void Merge(const G4Run *)
 
void ParticleCount(G4String, G4double)