CbmRoot
Loading...
Searching...
No Matches
CbmGeant3Settings.h
Go to the documentation of this file.
1/* Copyright (C) 2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Florian Uhlig [committer] */
4
10#ifndef CBMGEANT3SETTINGS_H
11#define CBMGEANT3SETTINGS_H 1
12
19#include "CbmVMCSettings.h"
20
21class TVirtualMC;
22
24public:
25 CbmGeant3Settings() = default;
26 ~CbmGeant3Settings() = default;
29
34 void Init(TVirtualMC*);
35
45 {
46 CheckValueInRange(val, 0, 1, "SetProcessRayleighScattering");
48 }
49
60 {
61 CheckValueInRange(val, 0, 2, "SetProcessCherenkovProduction");
63 }
64
74 {
75 CheckValueInRange(val, 0, 1, "SetProcessEneryLossStraggling");
77 }
78
79
89 {
90 CheckValueInRange(val, 0, 1, "SetAutomaticTrackingMediumParameters");
92 }
93
108 {
109 CheckValueInRange(val, 0, 2, "SetParticleStoppingMethod");
110 fStoppingMethod = val;
111 }
112
124 {
125 CheckValueInRange(val, -1, 2, "SetTrackingOptimizationMethod");
127 }
128
134 void SetCrossSectionTableLimits(Double_t minekin, Double_t maxekin, Int_t bins)
135 {
136 CheckValueInRange(minekin, 0., 100., "SetCrossSectionTableLimits");
137 CheckValueInRange(maxekin, 0., 100., "SetCrossSectionTableLimits");
138 CheckValueInRange(bins, 1, 200, "SetCrossSectionTableLimits");
139 fCrossSectionMinEnergy = minekin;
140 fCrossSectionMaxEnergy = maxekin;
141 fCrossSectionBins = bins;
142 }
143
150 void SetDebugOutput(Bool_t val = kTRUE, Int_t minevent = 0, Int_t maxevent = 100)
151 {
152 fDebugOutput = val;
153 fDebugMinEvent = minevent;
154 fDebugMaxEvent = maxevent;
155 }
156
157private:
164
165 Double_t fCrossSectionMinEnergy {5.e-7}; // GeV
166 Double_t fCrossSectionMaxEnergy {1.e4}; // Gev
167 Double_t fCrossSectionBins {90};
168
169 Bool_t fDebugOutput {kFALSE};
170 Int_t fDebugMinEvent {0};
171 Int_t fDebugMaxEvent {100};
172
174};
175
176#endif /* CBMGEANT3SETTINGS_H */
void CheckValueInRange(const T &value, const T &low, const T &high, std::string functionName)
User interface class to define the Geant3 simulation settings.
void SetProcessCherenkovProduction(Int_t val)
Control the process of cherenkov production.
void SetCrossSectionTableLimits(Double_t minekin, Double_t maxekin, Int_t bins)
Control the calculation of the cross section tables.
CbmGeant3Settings & operator=(const CbmGeant3Settings &)=delete
void SetParticleStoppingMethod(Int_t val)
Control if particles should be stopped.
ClassDef(CbmGeant3Settings, 1)
void SetProcessEneryLossStraggling(Int_t val)
Control the process of energy loss in thin materials.
CbmGeant3Settings(const CbmGeant3Settings &)=delete
void SetProcessRayleighScattering(Int_t val)
Control the rayleigh scattering process.
~CbmGeant3Settings()=default
void SetAutomaticTrackingMediumParameters(Int_t val)
Control the automatic calculation of tracking medium parameters.
void SetDebugOutput(Bool_t val=kTRUE, Int_t minevent=0, Int_t maxevent=100)
Control the debug output.
void Init(TVirtualMC *)
Set all parameters defined in this class.
Int_t fAutomaticTrackingMediumParameters
void SetTrackingOptimizationMethod(Int_t val)
Control the tracking optimization performed via the GSORD routine.
CbmGeant3Settings()=default
User interface class to define the transport simulation settings which are common for both used trans...