35 #include "G4Version.hh"
38 #include "G4EmStandardPhysics.hh"
39 #include "G4EmStandardPhysics_option1.hh"
40 #include "G4EmStandardPhysics_option2.hh"
41 #include "G4EmStandardPhysics_option3.hh"
42 #include "G4EmLivermorePhysics.hh"
43 #include "G4EmPenelopePhysics.hh"
44 #include "G4EmConfigurator.hh"
45 #include "G4UnitsTable.hh"
48 #include "G4ProcessManager.hh"
52 #include "G4OpticalPhysics.hh"
55 #include "G4EmExtraPhysics.hh"
56 #include "G4HadronElasticPhysics.hh"
57 #include "G4HadronElasticPhysicsHP.hh"
58 #include "G4StoppingPhysics.hh"
59 #include "G4IonBinaryCascadePhysics.hh"
60 #include "G4NeutronTrackingCut.hh"
61 #if G4VERSION_NUMBER < 1000
62 #include "HadronPhysicsQGSP_BIC_HP.hh"
63 #define QGSP_BIC_HP_MODEL HadronPhysicsQGSP_BIC_HP
65 #include "G4HadronPhysicsQGSP_BIC_HP.hh"
66 #define QGSP_BIC_HP_MODEL G4HadronPhysicsQGSP_BIC_HP
82 G4cout <<
" ------ INF ------ from SToGS::ModularPhysicsList::ModularPhysicsList with " << option << G4endl;
85 std::vector <G4String> all_opt; G4String lopt = option, tmp =
""; lopt +=
';';
87 for (
size_t i = 0; i < lopt.size(); i++) {
88 if ( lopt[i] ==
';' && tmp.size() > 0 ) {
89 all_opt.push_back(tmp);
93 tmp += G4String(lopt[i]);
98 defaultCutValue = 1.0*CLHEP::mm;
101 for (
size_t i = 0; i < all_opt.size(); i++) {
103 if (all_opt[i].contains(G4String(
"general")) ) {
107 G4cout <<
" ==> Physics list " << all_opt[i] <<
" registered " << G4endl;
110 if ( all_opt[i] ==
"emstandard_opt0" ) {
111 RegisterPhysics(
new G4EmStandardPhysics(1) );
113 G4cout <<
" ==> Physics list " << all_opt[i] <<
" registered " << G4endl;
115 if ( all_opt[i] ==
"emstandard_opt1" ) {
116 RegisterPhysics(
new G4EmStandardPhysics_option1() );
118 G4cout <<
" ==> Physics list " << all_opt[i] <<
" registered " << G4endl;
120 if ( all_opt[i] ==
"emstandard_opt2" ) {
121 RegisterPhysics(
new G4EmStandardPhysics_option2() );
123 G4cout <<
" ==> Physics list " << all_opt[i] <<
" registered " << G4endl;
125 if ( all_opt[i] ==
"emstandard_opt3" ) {
126 RegisterPhysics(
new G4EmStandardPhysics_option3() );
128 G4cout <<
" ==> Physics list " << all_opt[i] <<
" registered " << G4endl;
130 if ( all_opt[i] ==
"emlivermore" ) {
131 RegisterPhysics(
new G4EmLivermorePhysics() );
133 G4cout <<
" ==> Physics list " << all_opt[i] <<
" registered " << G4endl;
135 if ( all_opt[i] ==
"empenelope" ) {
136 RegisterPhysics(
new G4EmPenelopePhysics() );
138 G4cout <<
" ==> Physics list " << all_opt[i] <<
" registered " << G4endl;
142 if ( all_opt[i] ==
"SToGS_hadron" ) {
145 G4cout <<
" ==> Physics list " << all_opt[i] <<
" registered " << G4endl;
147 if ( all_opt[i] ==
"QGSP_BIC_HP" ) {
150 SetBuilderList0(
true);
152 G4cout <<
" ==> Physics list " << all_opt[i] <<
" registered " << G4endl;
172 if ( all_opt[i] ==
"Optical" ) {
174 G4OpticalPhysics* opticalPhysics =
new G4OpticalPhysics();
175 RegisterPhysics( opticalPhysics );
183 opticalPhysics->SetFiniteRiseTime(
true);
187 opticalPhysics->SetScintillationExcitationRatio(1.0);
189 opticalPhysics->SetMaxNumPhotonsPerStep(100);
190 opticalPhysics->SetMaxBetaChangePerStep(10.0);
192 opticalPhysics->SetTrackSecondariesFirst(kCerenkov,
true);
193 opticalPhysics->SetTrackSecondariesFirst(kScintillation,
true);
195 G4cout <<
" ==> Physics list " << all_opt[i] <<
" registered " << G4endl;
229 G4cout <<
" ------ END ------ from SToGS::ModularPhysicsList::ModularPhysicsList " << G4endl ;
237 void SToGS::ModularPhysicsList::SetBuilderList0(G4bool flagHP, G4int verboseLevel)
239 RegisterPhysics(
new G4EmExtraPhysics());
241 RegisterPhysics(
new G4HadronElasticPhysicsHP(verboseLevel) ) ;
243 RegisterPhysics(
new G4HadronElasticPhysics(verboseLevel) );
245 RegisterPhysics(
new G4StoppingPhysics(verboseLevel));
246 RegisterPhysics(
new G4IonBinaryCascadePhysics(verboseLevel));
247 RegisterPhysics(
new G4NeutronTrackingCut(verboseLevel));
virtual ~ModularPhysicsList()
#define QGSP_BIC_HP_MODEL
General regroups transportation and base decay.
ModularPhysicsList(const G4String &file="general0")
Only Standard electromagnetic processes from the "low energy package".