186 const G4double* theAtomNumDensityVector =
189 for (
size_t i=0; i<nelm; ++i) {
190 const G4Element* elm = (*theElementVector)[i];
191 cross += theAtomNumDensityVector[i]*
232 const G4double* theAtomNumDensityVector =
235 for (
size_t i=0; i<nelm; ++i) {
236 const G4Element* elm = (*theElementVector)[i];
237 cross += theAtomNumDensityVector[i]*
278 const G4double* theAtomNumDensityVector =
281 for (
size_t i=0; i<nelm; ++i) {
282 const G4Element* elm = (*theElementVector)[i];
283 cross += theAtomNumDensityVector[i]*
324 const G4double* theAtomNumDensityVector =
327 for (
size_t i=0; i<nelm; i++) {
328 const G4Element* elm = (*theElementVector)[i];
329 cross += theAtomNumDensityVector[i]*
370 const G4double* theAtomNumDensityVector =
373 for (
size_t i=0; i<nelm; ++i) {
374 const G4Element* elm = (*theElementVector)[i];
375 cross += theAtomNumDensityVector[i]*
412 if(
process[i] == proc) {
return; }
415 G4cout <<
"G4HadronicProcessStore::Register hadronic " << n_proc
433 G4cout <<
"G4HadronicProcessStore::RegisterParticle "
445 std::multimap<PD,HP,std::less<PD> >::iterator
it;
446 for(it=
p_map.lower_bound(part); it!=
p_map.upper_bound(part); ++
it) {
447 if(it->first == part) {
448 HP process2 = (it->second);
449 if(proc == process2) {
return; }
454 p_map.insert(std::multimap<PD,HP>::value_type(part,proc));
467 m_map.insert(std::multimap<HP,HI>::value_type(proc,mod));
471 model.push_back(mod);
499 if(
process[i] == hproc) {
return; }
503 G4cout <<
"Extra Process: " << n_extra
529 std::multimap<PD,G4VProcess*,std::less<PD> >::iterator
it;
530 for(it=
ep_map.lower_bound(part); it!=
ep_map.upper_bound(part); ++
it) {
531 if(it->first == part) {
533 if(proc == process2) {
return; }
538 ep_map.insert(std::multimap<PD,G4VProcess*>::value_type(part,proc));
549 G4cout <<
"Extra Process: " << i <<
" "
580 if (std::getenv(
"G4PhysListDocDir") )
DumpHtml();
593 char* dirName = std::getenv(
"G4PhysListDocDir");
594 char* physListName = std::getenv(
"G4PhysListName");
595 if (dirName && physListName) {
599 std::ofstream outFile;
600 outFile.open(pathName);
603 outFile <<
"<html>\n";
604 outFile <<
"<head>\n";
605 outFile <<
"<title>Physics List Summary</title>\n";
606 outFile <<
"</head>\n";
607 outFile <<
"<body>\n";
608 outFile <<
"<h2> Summary of Hadronic Processes, Models and Cross Sections for Physics List "
609 <<
G4String(physListName) <<
"</h2>\n";
626 outFile <<
"</ul>\n";
627 outFile <<
"</body>\n";
628 outFile <<
"</html>\n";
636 std::ofstream& outFile)
642 outFile <<
"<br> <li><h2><font color=\" ff0000 \">"
645 typedef std::multimap<PD,HP,std::less<PD> > PDHPmap;
646 typedef std::multimap<HP,HI,std::less<HP> > HPHImap;
648 std::pair<PDHPmap::iterator, PDHPmap::iterator> itpart =
649 p_map.equal_range(theParticle);
654 for (PDHPmap::iterator
it = itpart.first;
it != itpart.second; ++
it) {
655 theProcess = (*it).second;
660 outFile <<
"<br> <b><font color=\" 0000ff \">process : "
665 outFile <<
" <li><b><font color=\" 00AA00 \">models : </font></b>\n";
667 std::pair<HPHImap::iterator, HPHImap::iterator> itmod =
668 m_map.equal_range(theProcess);
670 outFile <<
" <ul>\n";
671 G4String physListName(std::getenv(
"G4PhysListName"));
673 for (HPHImap::iterator jt = itmod.first; jt != itmod.second; ++jt) {
674 outFile <<
" <li><b><a href=\"" << physListName <<
"_"
676 << (*jt).second->GetModelName() <<
"</a>"
677 <<
" from " << (*jt).second->GetMinEnergy()/
GeV
678 <<
" GeV to " << (*jt).second->GetMaxEnergy()/
GeV
679 <<
" GeV </b></li>\n";
685 outFile <<
" </ul>\n";
686 outFile <<
" </li>\n";
689 outFile <<
" <li><b><font color=\" 00AA00 \">cross sections : </font></b>\n";
690 outFile <<
" <ul>\n";
693 outFile <<
" </ul>\n";
695 outFile <<
" </li>\n";
696 outFile <<
"</ul>\n";
702 std::multimap<PD,G4VProcess*,std::less<PD> >::iterator itp;
703 for (itp=
ep_map.lower_bound(theParticle); itp!=
ep_map.upper_bound(theParticle); ++itp) {
704 if (itp->first == theParticle) {
706 outFile <<
"<br> <b><font color=\" 0000ff \">process : "
711 outFile <<
" </li>\n";
712 outFile <<
"</ul>\n";
723 G4String dirName(std::getenv(
"G4PhysListDocDir"));
724 G4String physListName(std::getenv(
"G4PhysListName"));
726 std::ofstream outModel;
727 outModel.open(pathName);
728 outModel <<
"<html>\n";
729 outModel <<
"<head>\n";
730 outModel <<
"<title>Description of " << mod->
GetModelName()
732 outModel <<
"</head>\n";
733 outModel <<
"<body>\n";
737 outModel <<
"</body>\n";
738 outModel <<
"</html>\n";
750 return ch ==
' ' ?
'_' : ch;
754 for(std::string::iterator
it = str.begin();
it != str.end(); ++
it) {
755 if(*
it ==
' ') *
it =
'_';
766 if (level == 0)
return;
769 <<
"\n====================================================================\n"
770 << std::setw(60) <<
"HADRONIC PROCESSES SUMMARY (verbose level " << level
778 if (level == 1 && (pname ==
"proton" ||
779 pname ==
"neutron" ||
780 pname ==
"deuteron" ||
794 pname ==
"GenericIon" ||
795 pname ==
"anti_neutron" ||
796 pname ==
"anti_proton" ||
797 pname ==
"anti_deuteron" ||
798 pname ==
"anti_triton" ||
799 pname ==
"anti_He3" ||
800 pname ==
"anti_alpha")) yes =
true;
801 if (level > 1) yes =
true;
804 std::multimap<PD,HP,std::less<PD> >::iterator
it;
806 for (it=
p_map.lower_bound(part); it!=
p_map.upper_bound(part); ++
it) {
807 if (it->first == part) {
808 HP proc = (it->second);
817 std::multimap<PD,G4VProcess*,std::less<PD> >::iterator itp;
818 for(itp=
ep_map.lower_bound(part); itp!=
ep_map.upper_bound(part); ++itp) {
819 if(itp->first == part) {
822 G4cout <<
"\n---------------------------------------------------\n"
823 << std::setw(50) <<
"Hadronic Processes for "
833 G4cout <<
"\n================================================================"
844 G4cout <<
"\n---------------------------------------------------\n"
845 << std::setw(50) <<
"Hadronic Processes for "
853 G4String stringEnergyPerNucleon =
"";
857 stringEnergyPerNucleon =
"/n";
861 std::multimap<HP,HI,std::less<HP> >::iterator ih;
862 for(ih=
m_map.lower_bound(proc); ih!=
m_map.upper_bound(proc); ++ih) {
863 if(ih->first == proc) {
867 if(
model[i] == hi) {
break; }
891 if(
model[i]) {
model[i]->SetVerboseLevel(val); }
931 std::multimap<PD,HP,std::less<PD> >::iterator
it;
935 subType == (it->second)->GetProcessSubType()) {
949 G4cout <<
" Setting energy/momentum report level to " << level
950 <<
" for " <<
process.size() <<
" hadronic processes " <<
G4endl;
952 process[i]->SetEpReportLevel(level);
960 G4cout <<
" Setting absolute energy/momentum test level to " << abslevel
975 G4cout <<
" Setting relative energy/momentum test level to " << rellevel