48 fParticleName(fgkDefaultParticleName),
49 fElementName(fgkDefaultElementName),
50 fMinKinEnergy(fgkDefaultMinKinEnergy),
51 fMaxKinEnergy(fgkDefaultMaxKinEnergy),
52 fMinMomentum(fgkDefaultMinMomentum),
53 fMaxMomentum(fgkDefaultMaxMomentum),
54 fNofBinsE(fgkDefaultNofBinsE),
55 fNofBinsP(fgkDefaultNofBinsP),
57 fKinEnergy(fgkDefaultKinEnergy),
58 fIsInitialised(false),
59 fMakeHistograms(false)
197 G4cout <<
"TG4CrossSectionManager: Filling histograms is started."
205 G4cout <<
"### Fill Cross Sections for " <<
fParticleName <<
" on "
207 G4cout <<
"-------------------------------------------------------------"
209 G4cout <<
" N E(MeV) Elastic(barn) Inelastic(barn)";
212 G4cout <<
" Capture(barn) Fission(barn)";
213 G4cout <<
" ChargeExchange(barn)" << G4endl;
214 G4cout <<
"-------------------------------------------------------------"
218 G4int prec = G4cout.precision();
221 G4HadronicProcessStore* store = G4HadronicProcessStore::Instance();
222 G4double mass = particle->GetPDGMass();
230 G4double de = (e2 - e1) / G4double(
fNofBinsE);
231 G4double dp = (p2 - p1) / G4double(
fNofBinsP);
233 G4double x = e1 - de * 0.5;
237 e = std::pow(10., x) * MeV;
240 G4cout << std::setw(5) << i << std::setw(12) << e;
243 xs = store->GetElasticCrossSectionPerAtom(particle, e, elm);
245 G4cout << std::setw(14) << xs / barn;
249 xs = store->GetInelasticCrossSectionPerAtom(particle, e, elm);
251 G4cout <<
" " << std::setw(17) << xs / barn;
257 xs = store->GetCaptureCrossSectionPerAtom(particle, e, elm);
259 G4cout <<
" " << std::setw(17) << xs / barn;
263 xs = store->GetFissionCrossSectionPerAtom(particle, e, elm);
265 G4cout <<
" " << std::setw(17) << xs / barn;
270 xs = store->GetChargeExchangeCrossSectionPerAtom(particle, e, elm);
272 G4cout <<
" " << std::setw(17) << xs / barn;
277 G4cout <<
" " << x << G4endl;
284 p = std::pow(10., x) * GeV;
285 e = std::sqrt(p * p + mass * mass) - mass;
286 xs = store->GetElasticCrossSectionPerAtom(particle, e, elm);
288 xs = store->GetInelasticCrossSectionPerAtom(particle, e, elm);
292 G4cout <<
"---------------------------------------------------------"
295 G4cout.precision(prec);
329 G4HadronicProcessStore* store = G4HadronicProcessStore::Instance();
332 return store->GetElasticCrossSectionPerAtom(particle,
fKinEnergy, elm);
334 return store->GetInelasticCrossSectionPerAtom(particle,
fKinEnergy, elm);
336 return store->GetCaptureCrossSectionPerAtom(particle,
fKinEnergy, elm);
338 return store->GetFissionCrossSectionPerAtom(particle,
fKinEnergy, elm);
340 return store->GetChargeExchangeCrossSectionPerAtom(