ConfigurablePhysicsList.hh
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////
2 /// \file CustomPhysicsList.h
3 //
4 ////////////////////////////////////////////////////////////////////////
5 // Configurable Physics List Class
6 //
7 // Ben Jones, MIT, 24/06/09
8 //
9 // Based on the QGSP_BERT physics list supplied with geant 4, but with
10 // options to switch on and off different physics processed from the config
11 // file.
12 //
13 // To include a new physics process, create a new physics builder registering
14 // the relevant particles and interactions. Then add the builder to the
15 // GetPhysicsBuilders and GetDefaultSettings functions in this class,
16 // using the name by which the builder will be referenced in the config
17 // file. Physics builders to be enabled are specified in the GArG4 config.
18 //
19 //
20 
21 
22 #ifndef TConfigurablePhysicsList_h
23 #define TConfigurablePhysicsList_h 1
24 
25 #include "Geant4/G4VModularPhysicsList.hh"
26 #include "Geant4/globals.hh"
27 #include "Geant4/CompileTimeConstraints.hh"
28 
29 namespace gar {
30  namespace garg4 {
31 
32  template<class 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 } // gar
53 
54 #include "GArG4/ConfigurablePhysicsList.icc"
55 
56 namespace gar {
57  namespace garg4 {
59  }
60 } // gar
61 
62 #endif
63 
64 
65 
66 // Sept 2009 - Ben Jones, MIT
67 
TConfigurablePhysicsList< G4VModularPhysicsList > ConfigurablePhysicsList
General GArSoft Utilities.
std::vector< std::string > GetDefaultSettings()