/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/physics/include/RAT/PhysicsList.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/physics/include/RAT/PhysicsList.hh Source File
Ratpac-two
PhysicsList.hh
1 
11 #ifndef __RAT_PhysicsList__
12 #define __RAT_PhysicsList__
13 
14 #include <G4VUserPhysicsList.hh>
15 #include <Shielding.hh>
16 #include <string>
17 
18 namespace RAT {
19 
20 class PhysicsList : public Shielding {
21  public:
22  PhysicsList();
23 
24  ~PhysicsList();
25 
26  // Instantiate desired Particles
27  void ConstructParticle();
28 
29  // Instantiate desired Processes
30  void ConstructProcess();
31 
32  // Set the WLS model by name
33  void SetOpWLSModel(std::string model);
34 
35  // Get the WLS model name
36  std::string GetOpWLSModelName() { return this->wlsModelName; }
37 
38  void SetCerenkovMaxBetaChange(double MaxBetaChange) { this->CerenkovMaxBetaChangePerStep = MaxBetaChange; }
39  double GetCerenkovMaxBetaChange() { return this->CerenkovMaxBetaChangePerStep; }
40 
41  void SetCerenkovMaxNumPhotonsPerStep(int maxphotons) { this->CerenkovMaxNumPhotonsPerStep = maxphotons; }
42  int GetCerenkovMaxNumPhotonsPerStep() { return this->CerenkovMaxNumPhotonsPerStep; }
43 
44  void EnableCerenkov(bool status) { this->IsCerenkovEnabled = status; }
45  bool GetCerenkovStatus() { return this->IsCerenkovEnabled; }
46 
47  void SetStepFunctionLightIons(double v1, double v2) {
48  this->stepRatioLightIons = v1;
49  this->finalRangeLightIons = v2;
50  }
51  void SetStepFunctionMuHad(double v1, double v2) {
52  this->stepRatioMuHad = v1;
53  this->finalRangeMuHad = v2;
54  }
55 
56  // Remove a process from a particle's process list
57  void RemoveProcess(G4String particleName, G4String processName);
58 
59  private:
60  // Construct and register optical processes
61  void ConstructOpticalProcesses();
62 
63  void EnableThermalNeutronScattering();
64  // Register opticalphotons with the PMT G4FastSimulationManagerProcess
65  void AddParameterization();
66 
67  std::string wlsModelName; // The name of the WLS model
68  G4VPhysicsConstructor *wlsModel; // The WLS model constructor
69  //
70  double CerenkovMaxBetaChangePerStep; // Sets the maximum phase velocity change within a step
71  int CerenkovMaxNumPhotonsPerStep; // Controlls step-size for cerenkov
72  // processes
73  bool IsCerenkovEnabled;
74  double stepRatioLightIons;
75  double finalRangeLightIons;
76  double stepRatioMuHad;
77  double finalRangeMuHad;
78 };
79 
80 } // namespace RAT
81 
82 #endif // __RAT_PhysicsList__
Defines the physics processes active in the simulation.
Definition: PhysicsList.hh:20
Definition: CCCrossSecMessenger.hh:29