File indexing completed on 2025-10-14 08:06:13
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031 #ifndef ParametersParser_h
0032 #define ParametersParser_h 1
0033 #include <string>
0034 class ParametersParser
0035 {
0036 public:
0037 static ParametersParser* Instance();
0038 ~ParametersParser() = default;
0039 void LoadParameters(const std::string &fileName);
0040 std::string GetTLKLambda1() {return TLKLambda1;}
0041 std::string GetTLKLambda2() {return TLKLambda2;}
0042 std::string GetTLKBeta1() {return TLKBeta1;}
0043 std::string GetTLKBeta2() {return TLKBeta2;}
0044 std::string GetTLKEta() {return TLKEta;}
0045 std::string GetTLKdoseMax() {return TLKdoseMax;}
0046 std::string GetTLKdeltaDose() {return TLKdeltaDose;}
0047 std::string GetEMIVLoopLength() {return LEMIVLoopLength;}
0048 std::string GetEMIVNi() {return LEMIVNi;}
0049 std::string GetEMIVNc() {return LEMIVNc;}
0050 std::string GetEMIVNDSB() {return LEMIVNDSB;}
0051 std::string GetEMIVFunrej() {return LEMIVFunrej;}
0052 std::string GetEMIVTFast() {return LEMIVTfast;}
0053 std::string GetEMIVTSlow() {return LEMIVTslow;}
0054 std::string GetLEMtimeMax() {return LEMIVtimeMax;}
0055 std::string GetLEMdeltaTime() {return LEMIVdeltaTime;}
0056 std::string GetBELOVNirrep() {return BELOVNirrep;}
0057 std::string GetBELOVDz() {return BELOVDz;}
0058 std::string GetThresholdE() {return fThresholdE;}
0059 std::string GetProbabilityForIndirectSB() {return fProbabilityForIndirectSB;}
0060 std::string GetParticleName() {return fParticleName;}
0061 float GetParticleEnergy() {return fParticleEnergy;}
0062 std::string GetEnergyUnit() {return fEnergyUnit;}
0063 std::string GetEndTimeForChemReactions() {return fEndTimeForChemReactions;}
0064 int GetNumberOfParticles() {return fNumberOfParticles;}
0065 int GetBpForDSB() {return BpForDSB;}
0066 bool UseTLK();
0067 bool UseLEMIV();
0068 bool UseBelov();
0069 bool WannaLoadDamagesFromSDD() {return fLoadDamagesFromSDD;}
0070 std::string GetOutputName() {return fOutputName;};
0071 std::string GetSDDFileName() {return fSDDfileName;};
0072 std::string GetCellNucleusName() {return fCellNucleusName;};
0073 int GetUnitTypeOfNormalization() {return fUnitOfNormalization;}
0074 bool WannaSkipScanningIndirectDamage() {return fSkipScanningIndirectDamage;}
0075 std::string GetChemOutFolderName() {return fChemOutFolderName;}
0076 private:
0077 explicit ParametersParser();
0078 static ParametersParser* fInstance;
0079 std::string fOutputName{"Output.dat"};
0080 std::string fChemOutFolderName{""};
0081 std::string fSDDfileName{""};
0082 std::string fCellNucleusName{"Undefined"};
0083 std::string fThresholdE{""};
0084 std::string fProbabilityForIndirectSB{""};
0085
0086 int BpForDSB{0};
0087
0088 std::string useTLK{"true"};
0089
0090 std::string TLKLambda1{""};
0091
0092 std::string TLKLambda2{""};
0093
0094 std::string TLKBeta1{""};
0095
0096 std::string TLKBeta2{""};
0097
0098 std::string TLKEta{""};
0099 std::string TLKdoseMax{""}, TLKdeltaDose{""};
0100
0101
0102 std::string useLEMIV{"true"};
0103 std::string LEMIVLoopLength{""};
0104
0105 std::string LEMIVNi{""};
0106
0107 std::string LEMIVNc{""};
0108
0109 std::string LEMIVNDSB{""};
0110 std::string LEMIVFunrej{""};
0111
0112 std::string LEMIVTfast{""};
0113 std::string LEMIVTslow{""};
0114 std::string LEMIVtimeMax{""}, LEMIVdeltaTime{""};
0115
0116
0117 std::string useBELOV{"false"};
0118 std::string BELOVNirrep{""};
0119 std::string BELOVDz{""};
0120
0121
0122 std::string fParticleName{""};
0123 float fParticleEnergy{0};
0124 std::string fEnergyUnit{""};
0125 int fNumberOfParticles{0};
0126
0127 std::string fEndTimeForChemReactions{""};
0128
0129 bool fLoadDamagesFromSDD{false};
0130 int fUnitOfNormalization{1};
0131 bool fSkipScanningIndirectDamage{false};
0132 };
0133
0134 #endif