CbmRoot
CbmGeant3Settings.h
Go to the documentation of this file.
1 
6 #ifndef CBMGEANT3SETTINGS_H
7 #define CBMGEANT3SETTINGS_H 1
8 
15 #include "CbmVMCSettings.h"
16 
17 class TVirtualMC;
18 
20 public:
21  CbmGeant3Settings() = default;
22  ~CbmGeant3Settings() = default;
25 
30  void Init(TVirtualMC*);
31 
40  void SetProcessRayleighScattering(Int_t val) {
41  CheckValueInRange(val, 0, 1, "SetProcessRayleighScattering");
43  }
44 
55  CheckValueInRange(val, 0, 2, "SetProcessCherenkovProduction");
56  fProcessCherenkov = val;
57  }
58 
68  CheckValueInRange(val, 0, 1, "SetProcessEneryLossStraggling");
70  }
71 
72 
82  CheckValueInRange(val, 0, 1, "SetAutomaticTrackingMediumParameters");
84  }
85 
99  void SetParticleStoppingMethod(Int_t val) {
100  CheckValueInRange(val, 0, 2, "SetParticleStoppingMethod");
101  fStoppingMethod = val;
102  }
103 
115  CheckValueInRange(val, -1, 2, "SetTrackingOptimizationMethod");
117  }
118 
124  void
125  SetCrossSectionTableLimits(Double_t minekin, Double_t maxekin, Int_t bins) {
126  CheckValueInRange(minekin, 0., 100., "SetCrossSectionTableLimits");
127  CheckValueInRange(maxekin, 0., 100., "SetCrossSectionTableLimits");
128  CheckValueInRange(bins, 1, 200, "SetCrossSectionTableLimits");
129  fCrossSectionMinEnergy = minekin;
130  fCrossSectionMaxEnergy = maxekin;
131  fCrossSectionBins = bins;
132  }
133 
140  void
141  SetDebugOutput(Bool_t val = kTRUE, Int_t minevent = 0, Int_t maxevent = 100) {
142  fDebugOutput = val;
143  fDebugMinEvent = minevent;
144  fDebugMaxEvent = maxevent;
145  }
146 
147 private:
149  Int_t fProcessCherenkov {1};
152  Int_t fStoppingMethod {2};
154 
155  Double_t fCrossSectionMinEnergy {5.e-7}; // GeV
156  Double_t fCrossSectionMaxEnergy {1.e4}; // Gev
157  Double_t fCrossSectionBins {90};
158 
159  Bool_t fDebugOutput {kFALSE};
160  Int_t fDebugMinEvent {0};
161  Int_t fDebugMaxEvent {100};
162 
164 };
165 
166 #endif /* CBMGEANT3SETTINGS_H */
CbmGeant3Settings::fProcessRayleighScattering
Int_t fProcessRayleighScattering
Definition: CbmGeant3Settings.h:148
CbmGeant3Settings::SetAutomaticTrackingMediumParameters
void SetAutomaticTrackingMediumParameters(Int_t val)
Control the automatic calculation of tracking medium parameters.
Definition: CbmGeant3Settings.h:81
CbmGeant3Settings::fDebugOutput
Bool_t fDebugOutput
Definition: CbmGeant3Settings.h:159
CbmGeant3Settings::fStoppingMethod
Int_t fStoppingMethod
Definition: CbmGeant3Settings.h:152
CbmGeant3Settings::SetCrossSectionTableLimits
void SetCrossSectionTableLimits(Double_t minekin, Double_t maxekin, Int_t bins)
Control the calculation of the cross section tables.
Definition: CbmGeant3Settings.h:125
CbmGeant3Settings::SetTrackingOptimizationMethod
void SetTrackingOptimizationMethod(Int_t val)
Control the tracking optimization performed via the GSORD routine.
Definition: CbmGeant3Settings.h:114
CbmGeant3Settings::Init
void Init(TVirtualMC *)
Set all parameters defined in this class.
Definition: CbmGeant3Settings.cxx:8
CbmVMCSettings.h
CbmGeant3Settings::SetProcessCherenkovProduction
void SetProcessCherenkovProduction(Int_t val)
Control the process of cherenkov production.
Definition: CbmGeant3Settings.h:54
CheckValueInRange
void CheckValueInRange(const T &value, const T &low, const T &high, std::string functionName)
Definition: CbmVMCSettings.h:21
CbmGeant3Settings::fAutomaticTrackingMediumParameters
Int_t fAutomaticTrackingMediumParameters
Definition: CbmGeant3Settings.h:151
CbmGeant3Settings::fCrossSectionMinEnergy
Double_t fCrossSectionMinEnergy
Definition: CbmGeant3Settings.h:155
CbmGeant3Settings::fCrossSectionBins
Double_t fCrossSectionBins
Definition: CbmGeant3Settings.h:157
CbmGeant3Settings::fCrossSectionMaxEnergy
Double_t fCrossSectionMaxEnergy
Definition: CbmGeant3Settings.h:156
CbmGeant3Settings::fDebugMinEvent
Int_t fDebugMinEvent
Definition: CbmGeant3Settings.h:160
CbmGeant3Settings
User interface class to define the Geant3 simulation settings.
Definition: CbmGeant3Settings.h:19
CbmGeant3Settings::operator=
CbmGeant3Settings & operator=(const CbmGeant3Settings &)=delete
CbmGeant3Settings::SetParticleStoppingMethod
void SetParticleStoppingMethod(Int_t val)
Control if particles should be stopped.
Definition: CbmGeant3Settings.h:99
CbmGeant3Settings::fProcessCherenkov
Int_t fProcessCherenkov
Definition: CbmGeant3Settings.h:149
CbmVMCSettings
User interface class to define the transport simulation settings which are common for both used trans...
Definition: CbmVMCSettings.h:34
CbmGeant3Settings::ClassDef
ClassDef(CbmGeant3Settings, 1)
CbmGeant3Settings::CbmGeant3Settings
CbmGeant3Settings(const CbmGeant3Settings &)=delete
CbmGeant3Settings::SetProcessRayleighScattering
void SetProcessRayleighScattering(Int_t val)
Control the rayleigh scattering process.
Definition: CbmGeant3Settings.h:40
CbmGeant3Settings::~CbmGeant3Settings
~CbmGeant3Settings()=default
CbmGeant3Settings::SetProcessEneryLossStraggling
void SetProcessEneryLossStraggling(Int_t val)
Control the process of energy loss in thin materials.
Definition: CbmGeant3Settings.h:67
CbmGeant3Settings::fProcessEnergyLossStraggling
Int_t fProcessEnergyLossStraggling
Definition: CbmGeant3Settings.h:150
CbmGeant3Settings::SetDebugOutput
void SetDebugOutput(Bool_t val=kTRUE, Int_t minevent=0, Int_t maxevent=100)
Control the debug output.
Definition: CbmGeant3Settings.h:141
CbmGeant3Settings::fDebugMaxEvent
Int_t fDebugMaxEvent
Definition: CbmGeant3Settings.h:161
CbmGeant3Settings::fTrackingOptimizationMethod
Int_t fTrackingOptimizationMethod
Definition: CbmGeant3Settings.h:153
CbmGeant3Settings::CbmGeant3Settings
CbmGeant3Settings()=default