LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
MyQGSP_BERT_LASER.cc
Go to the documentation of this file.
1 #include <iomanip>
2 #include <CLHEP/Units/SystemOfUnits.h>
3 
4 // -- artg4tk includes
6 
7 #include "Geant4/globals.hh"
8 #include "Geant4/G4ios.hh"
9 #include "Geant4/G4ProcessManager.hh"
10 #include "Geant4/G4ProcessVector.hh"
11 #include "Geant4/G4ParticleTypes.hh"
12 #include "Geant4/G4ParticleTable.hh"
13 
14 #include "Geant4/G4Material.hh"
15 #include "Geant4/G4MaterialTable.hh"
16 
17 //#include "Geant4/G4DecayPhysics.hh"
18 #include "MyG4DecayPhysics.hh"
19 #include "Geant4/G4EmExtraPhysics.hh"
20 #include "Geant4/G4IonPhysics.hh"
21 #include "Geant4/G4StoppingPhysics.hh"
22 #include "Geant4/G4HadronElasticPhysics.hh"
23 #include "Geant4/G4NeutronTrackingCut.hh"
24 
25 #include "Geant4/G4HadronPhysicsQGSP_BERT.hh"
26 
28 // The following change is the _only_ required changed to move from
29 // the non-extensible factory to the exensible factory. All other changes
30 // relative to the "factory" example are there to demonstrate new features.
32 // non-extensible: #include "G4PhysListFactory.hh"
33 #include "Geant4/G4PhysListFactoryAlt.hh"
35 // headers needed to demonstrate new features
37 
38 // allow ourselves to extend the short names for physics ctor addition/replace
39 // along the same lines as EMX, EMY, etc
40 #include "Geant4/G4PhysListRegistry.hh"
41 
42 // allow ourselves to give the user extra info about available physics ctors
43 #include "Geant4/G4PhysicsConstructorFactory.hh"
44 
46 // pull in a user defined physics list definition into the main program
47 // and register it with the factory (doesn't have to be the main program
48 // but the .o containing the declaration _must_ get linked/loaded)
49 
50 #include "Geant4/G4VModularPhysicsList.hh"
51 
52 #include "Geant4/G4PhysListStamper.hh" // defines macro for factory registration
53 #include "MyQGSP_BERT_LASER.hh"
54 
55 // -- Register the physics list
57 
59 {
60 
61  G4cout << "<<< Geant4 Physics List simulation engine: MyQGSP_BERT_LASER"<<G4endl;
62  G4cout <<G4endl;
63 
64  defaultCutValue = 0.7*CLHEP::mm;
65  SetVerboseLevel(ver);
66 
67  // EM Physics
68  //RegisterPhysics( new G4EmStandardPhysics(ver) );
69  RegisterPhysics( new G4EmStandardPhysics_pseudoLaser(ver) ); // -- replace with laser version
70 
71  // Synchroton Radiation & GN Physics
72  //<--RegisterPhysics( new G4EmExtraPhysics(ver) );
73  //auto MyG4EmExtraPhysics = new G4EmExtraPhysics(ver);
74  //MyG4EmExtraPhysics->MuonNuclear(false); // -- deactivate muonNuclear process
75  //RegisterPhysics( MyG4EmExtraPhysics );
76 
77  // Decays
78  //RegisterPhysics( new MyG4DecayPhysics(ver) );
79 
80  // Hadron Elastic scattering
81  RegisterPhysics( new G4HadronElasticPhysics(ver) );
82 
83  // Hadron Physics
84  RegisterPhysics( new G4HadronPhysicsQGSP_BERT(ver));
85 
86  // Stopping Physics
87  RegisterPhysics( new G4StoppingPhysics(ver) );
88 
89  // Ion Physics
90  RegisterPhysics( new G4IonPhysics(ver));
91 
92  // Neutron tracking cut
93  RegisterPhysics( new G4NeutronTrackingCut(ver));
94 
95 }
MyQGSP_BERT_LASER(G4int ver=1)
G4_DECLARE_PHYSLIST_FACTORY(MyQGSP_BERT_LASER)