File indexing completed on 2026-07-13 08:21:03
0001
0002 #ifndef G4HepEmConfig_h
0003 #define G4HepEmConfig_h 1
0004
0005 #include "globals.hh"
0006
0007 #include <vector>
0008 #include <string>
0009
0010
0011 struct G4HepEmParameters;
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039 class G4HepEmConfig {
0040 public:
0041 G4HepEmConfig();
0042 ~G4HepEmConfig();
0043
0044 void Dump();
0045
0046
0047
0048
0049 void SetWoodcockTrackingRegion(const std::string& regionName, G4bool val=true);
0050 std::vector<std::string>& GetWoodcockTrackingRegionNames() {
0051 return fWDTRegionNames;
0052 }
0053
0054
0055 void SetWDTEnergyLimit(G4double ekin) { fWDTEnergyLimit = ekin; }
0056 G4double GetWDTEnergyLimit() { return fWDTEnergyLimit; }
0057
0058
0059
0060
0061
0062 void SetEnergyLossStepLimitFunctionParameters(G4double drRange, G4double finRange, const G4String& nameRegion);
0063 void SetEnergyLossStepLimitFunctionParameters(G4double drRange, G4double finRange);
0064 G4double GetEnergyLossStepLimitFunctionParameters(const G4String& nameRegion, G4bool isDRover=true);
0065 G4double GetEnergyLossStepLimitFunctionParameters(int indxRegion, G4bool isDRover=true);
0066
0067
0068 void SetMSCRangeFactor(G4double val, const G4String& nameRegion);
0069 void SetMSCRangeFactor(G4double val);
0070 G4double GetMSCRangeFactor(const G4String& nameRegion);
0071 G4double GetMSCRangeFactor(int indxRegion);
0072
0073 void SetMSCSafetyFactor(G4double val, const G4String& nameRegion);
0074 void SetMSCSafetyFactor(G4double val);
0075 G4double GetMSCSafetyFactor(const G4String& nameRegion);
0076 G4double GetMSCSafetyFactor(int indxRegion);
0077
0078
0079
0080 void SetEnergyLossFluctuation(G4bool val, const G4String& nameRegion);
0081 void SetEnergyLossFluctuation(G4bool val);
0082 G4bool GetEnergyLossFluctuation(const G4String& nameRegion);
0083 G4bool GetEnergyLossFluctuation(int indxRegion);
0084
0085
0086
0087 void SetMinimalMSCStepLimit(G4bool val, const G4String& nameRegion);
0088 void SetMinimalMSCStepLimit(G4bool val);
0089 G4bool GetMinimalMSCStepLimit(const G4String& nameRegion);
0090 G4bool GetMinimalMSCStepLimit(int indxRegion);
0091
0092
0093
0094 void SetMultipleStepsInMSCWithTransportation(G4bool val, const G4String& nameRegion);
0095 void SetMultipleStepsInMSCWithTransportation(G4bool val);
0096 G4bool GetMultipleStepsInMSCWithTransportation(const G4String& nameRegion);
0097 G4bool GetMultipleStepsInMSCWithTransportation(int indxRegion);
0098
0099
0100 void SetApplyCuts(G4bool val, const G4String& nameRegion);
0101 void SetApplyCuts(G4bool val);
0102 G4bool GetApplyCuts(const G4String& nameRegion);
0103 G4bool GetApplyCuts(int indxRegion);
0104
0105
0106
0107 void SetG4HepEmParameters(G4HepEmParameters* hepEmPars) {
0108 fG4HepEmParameters = hepEmPars;
0109 }
0110 G4HepEmParameters* GetG4HepEmParameters() { return fG4HepEmParameters; }
0111
0112 private:
0113 G4int GetRegionIndex(const G4String& nameRegion);
0114 void CheckRegionIndex(G4int indxRegion);
0115
0116 private:
0117
0118
0119
0120
0121 G4HepEmParameters* fG4HepEmParameters;
0122
0123
0124 std::vector<std::string> fWDTRegionNames;
0125
0126 G4double fWDTEnergyLimit;
0127
0128 };
0129
0130 #endif