Geant4 Cross Reference |
1 // 2 // ******************************************************************** 3 // * License and Disclaimer * 4 // * * 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. * 10 // * * 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitation of liability. * 17 // * * 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************************************** 25 // 26 // 27 // 28 /// \file ParametersParser.hh 29 /// \brief Definition of the ParametersParser class 30 31 #ifndef ParametersParser_h 32 #define ParametersParser_h 1 33 #include <string> 34 class ParametersParser 35 { 36 public: 37 static ParametersParser* Instance(); 38 ~ParametersParser() = default; 39 void LoadParameters(const std::string &fileName); 40 std::string GetTLKLambda1() {return TLKLambda1;} 41 std::string GetTLKLambda2() {return TLKLambda2;} 42 std::string GetTLKBeta1() {return TLKBeta1;} 43 std::string GetTLKBeta2() {return TLKBeta2;} 44 std::string GetTLKEta() {return TLKEta;} 45 std::string GetTLKdoseMax() {return TLKdoseMax;} 46 std::string GetTLKdeltaDose() {return TLKdeltaDose;} 47 std::string GetEMIVLoopLength() {return LEMIVLoopLength;} 48 std::string GetEMIVNi() {return LEMIVNi;} 49 std::string GetEMIVNc() {return LEMIVNc;} 50 std::string GetEMIVNDSB() {return LEMIVNDSB;} 51 std::string GetEMIVFunrej() {return LEMIVFunrej;} 52 std::string GetEMIVTFast() {return LEMIVTfast;} 53 std::string GetEMIVTSlow() {return LEMIVTslow;} 54 std::string GetLEMtimeMax() {return LEMIVtimeMax;} 55 std::string GetLEMdeltaTime() {return LEMIVdeltaTime;} 56 std::string GetBELOVNirrep() {return BELOVNirrep;} 57 std::string GetBELOVDz() {return BELOVDz;} 58 std::string GetThresholdE() {return fThresholdE;} 59 std::string GetProbabilityForIndirectSB() {return fProbabilityForIndirectSB;} 60 std::string GetParticleName() {return fParticleName;} 61 float GetParticleEnergy() {return fParticleEnergy;} 62 std::string GetEnergyUnit() {return fEnergyUnit;} 63 std::string GetEndTimeForChemReactions() {return fEndTimeForChemReactions;} 64 int GetNumberOfParticles() {return fNumberOfParticles;} 65 int GetBpForDSB() {return BpForDSB;} 66 bool UseTLK(); 67 bool UseLEMIV(); 68 bool UseBelov(); 69 bool WannaLoadDamagesFromSDD() {return fLoadDamagesFromSDD;} 70 std::string GetOutputName() {return fOutputName;}; 71 std::string GetSDDFileName() {return fSDDfileName;}; 72 std::string GetCellNucleusName() {return fCellNucleusName;}; 73 int GetUnitTypeOfNormalization() {return fUnitOfNormalization;} 74 bool WannaSkipScanningIndirectDamage() {return fSkipScanningIndirectDamage;} 75 std::string GetChemOutFolderName() {return fChemOutFolderName;} 76 private: 77 explicit ParametersParser(); 78 static ParametersParser* fInstance; 79 std::string fOutputName{"Output.dat"}; 80 std::string fChemOutFolderName{""}; 81 std::string fSDDfileName{""}; 82 std::string fCellNucleusName{"Undefined"}; 83 std::string fThresholdE{""}; 84 std::string fProbabilityForIndirectSB{""}; 85 // num of bp to consider a DSB for the MakeCluster function default value is 10 86 int BpForDSB{0}; 87 // TLK parameters 88 std::string useTLK{"true"}; 89 // simple DSB repair probability (h-1) 90 std::string TLKLambda1{""}; 91 // complex DSB repair probability (h-1) 92 std::string TLKLambda2{""}; 93 // simple DSB misrepair probability (h-1) 94 std::string TLKBeta1{""}; 95 // complex DSB misrepair probability (h-1) 96 std::string TLKBeta2{""}; 97 // binary misrepair probability (h-1) 98 std::string TLKEta{""}; 99 std::string TLKdoseMax{""}, TLKdeltaDose{""}; 100 101 // LEMIV parameters 102 std::string useLEMIV{"true"}; 103 std::string LEMIVLoopLength{""}; // length of the loop in Mbp, 104 //isolated DSB yield in Gy-1 105 std::string LEMIVNi{""}; 106 //clustered DSB yield in Gy-1 107 std::string LEMIVNc{""}; 108 // DSB yield in Gy-1 109 std::string LEMIVNDSB{""}; 110 std::string LEMIVFunrej{""}; 111 // constant time in h-1 112 std::string LEMIVTfast{""}; 113 std::string LEMIVTslow{""}; 114 std::string LEMIVtimeMax{""}, LEMIVdeltaTime{""}; 115 116 // BELOV parameters 117 std::string useBELOV{"false"}; 118 std::string BELOVNirrep{""}; 119 std::string BELOVDz{""}; 120 121 // source info 122 std::string fParticleName{""}; 123 float fParticleEnergy{0}; 124 std::string fEnergyUnit{""}; 125 int fNumberOfParticles{0}; 126 127 std::string fEndTimeForChemReactions{""}; 128 129 bool fLoadDamagesFromSDD{false}; 130 int fUnitOfNormalization{1}; // unit type for normization: 2 : [Gy-1]; 1: [Gy-1 * Gbp-1] 131 bool fSkipScanningIndirectDamage{false}; 132 }; 133 134 #endif