LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
ConfigurablePhysicsList.hh
Go to the documentation of this file.
1 //
6 // Configurable Physics List Class
7 //
8 // Ben Jones, MIT, 24/06/09
9 //
10 // Based on the QGSP_BERT physics list supplied with geant 4, but with
11 // options to switch on and off different physics processed from the config
12 // file.
13 //
14 // To include a new physics process, create a new physics builder registering
15 // the relevant particles and interactions. Then add the builder to the
16 // GetPhysicsBuilders and GetDefaultSettings functions in this class,
17 // using the name by which the builder will be referenced in the config
18 // file. Physics builders to be enabled are specified in the LArG4 config.
19 //
20 //
21 
22 
23 #ifndef TConfigurablePhysicsList_h
24 #define TConfigurablePhysicsList_h 1
25 
26 #include "Geant4/G4VModularPhysicsList.hh"
27 #include "Geant4/globals.hh"
28 #include "Geant4/CompileTimeConstraints.hh"
29 
30 namespace larg4 {
31 
32  template<class T>
33  class TConfigurablePhysicsList: public T
34  {
35  public:
36  TConfigurablePhysicsList(G4int ver = 1);
37  virtual ~TConfigurablePhysicsList();
39  std::vector<std::string> EnabledPhysics;
40  std::vector<std::string> GetDefaultSettings();
41 
42 
43  public:
44  // SetCuts()
45  virtual void SetCuts();
46 
47  private:
48  enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
49  };
50 
51 }
52 
54 
55 namespace larg4 {
57 }
58 
59 
60 
61 #endif
62 
63 
64 
65 // Sept 2009 - Ben Jones, MIT
66 
Geant4 interface.
std::vector< std::string > GetDefaultSettings()
std::vector< std::string > EnabledPhysics
TConfigurablePhysicsList< G4VModularPhysicsList > ConfigurablePhysicsList