34 #include "DetectorConstruction.hh"
35 #include "PrimaryGeneratorAction.hh"
36 #include "HistoManager.hh"
47 fDetector(det), fParticle(0), fEkin(0.),
48 fTotalCount(0), fGammaCount(0),
49 fSumTrack(0.), fSumTrack2(0.),
82 std::map<G4String,G4int>::iterator
it =
fProcCounter.find(procName);
127 if (Ekin < emin) data.
fEmin = Ekin;
129 if (Ekin > emax) data.
fEmax = Ekin;
159 const Run* localRun =
static_cast<const Run*
>(run);
186 std::map<G4String,G4int>::const_iterator itp;
191 G4int localCount = itp->second;
201 std::map<G4String,NuclChannel>::const_iterator itc;
206 const NuclChannel& localData = itc->second;
209 = NuclChannel(localData.fCount, localData.fQ);
213 data.fCount += localData.fCount;
214 data.fQ += localData.fQ;
219 std::map<G4String,ParticleData>::const_iterator itn;
224 const ParticleData& localData = itn->second;
227 = ParticleData(localData.fCount,
234 data.fCount += localData.fCount;
235 data.fEmean += localData.fEmean;
237 if (emin < data.fEmin) data.fEmin =
emin;
239 if (emax > data.fEmax) data.fEmax =
emax;
262 << material->
GetName() <<
" (density: "
271 std::map<G4String,G4int>::iterator
it;
274 G4int count = it->second;
275 G4cout <<
"\t" << procName <<
"= " << count;
276 if (procName ==
"Transportation") survive = count;
281 G4cout <<
"\n Nb of incident particles surviving after "
292 G4double rms = std::sqrt(std::fabs(MeanTrack2 - MeanFreePath*MeanFreePath));
294 if(MeanFreePath > 0.0) { CrossSection = 1./MeanFreePath; }
295 G4double massicMFP = MeanFreePath*density;
297 if(massicMFP > 0.0) { massicCS = 1./massicMFP; }
301 <<
"\tmassic: " <<
G4BestUnit(massicMFP,
"Mass/Surface")
302 <<
"\n CrossSection:\t" << CrossSection*
cm <<
" cm^-1 "
303 <<
"\t\tmassic: " <<
G4BestUnit(massicCS,
"Surface/Mass")
310 G4double crossSection = CrossSection/nbAtoms;
311 G4cout <<
" crossSection per atom:\t"
316 G4cout <<
"\n Verification: "
317 <<
"crossSections from G4HadronicProcessStore:";
334 G4cout <<
"\n" << std::setw(20) << procName <<
"= "
335 <<
G4BestUnit(massSigma,
"Surface/Mass") <<
"\t"
339 G4cout <<
"\n" << std::setw(20) <<
"total" <<
"= "
350 G4cout <<
"\n" << std::setw(20) << procName <<
"= "
353 G4cout <<
"\n" << std::setw(20) <<
"total" <<
"= "
360 std::map<G4String,NuclChannel>::iterator ic;
367 G4cout <<
" " << std::setw(60) << name <<
": " << std::setw(7) << count
368 <<
" Q = " << std::setw(wid) <<
G4BestUnit(Q,
"Energy")
375 G4cout <<
"\n" << std::setw(58) <<
"number of gamma or e- (ic): N = "
381 <<
"\n --> NOTE: XXXX because neutronHP is unable to return target nucleus"
389 std::map<G4String,ParticleData>::iterator itn;
398 G4cout <<
" " << std::setw(13) << name <<
": " << std::setw(7) << count
399 <<
" Emean = " << std::setw(wid) <<
G4BestUnit(eMean,
"Energy")
409 G4cout <<
"\n Momentum balance: Pmean = "
410 << std::setw(wid) <<
G4BestUnit(Pbmean,
"Energy")