Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // 27 /// \file ParametersParser.cc 28 /// \brief Implementation of the ParametersPar 29 30 #include "ParametersParser.hh" 31 32 #include <fstream> 33 #include <iostream> 34 #include <sstream> 35 36 //....oooOO0OOooo........oooOO0OOooo........oo 37 38 ParametersParser* ParametersParser::fInstance 39 40 //....oooOO0OOooo........oooOO0OOooo........oo 41 42 ParametersParser* ParametersParser::Instance() 43 { 44 if (fInstance == nullptr) { 45 static ParametersParser parParser; 46 fInstance = &parParser; 47 } 48 return fInstance; 49 } 50 51 //....oooOO0OOooo........oooOO0OOooo........oo 52 53 ParametersParser::ParametersParser() 54 { 55 fSDDfileName = "SDDformat_"+fOutputName; 56 } 57 58 //....oooOO0OOooo........oooOO0OOooo........oo 59 60 void ParametersParser::LoadParameters(const st 61 { 62 std::ifstream file; 63 file.open(fileName.c_str()); 64 if (!file.is_open()) { 65 std::cout<<"ParametersParser::LoadPara 66 <<"Plese check the input macro file!!! 67 exit(0); 68 } else { 69 std::string line; 70 while(std::getline(file, line)) 71 { 72 std::istringstream iss(line); 73 std::string flag; 74 iss >> flag; 75 std::string tvalue; 76 iss >> tvalue; 77 if (flag == "/ana/thresholdFordire 78 if (flag == "/ana/probForIndirectS 79 if (flag == "/ana/BpForDSB") BpFor 80 if (flag == "/ana/TLK/lambda1") TL 81 if (flag == "/ana/TLK/lambda2") TL 82 if (flag == "/ana/TLK/beta1") TLKB 83 if (flag == "/ana/TLK/beta2") TLKB 84 if (flag == "/ana/TLK/eta") TLKEta 85 if (flag == "/ana/TLK/doseMax") TL 86 if (flag == "/ana/TLK/deltaDose") 87 if (flag == "/ana/LEMIV/loopLength 88 if (flag == "/ana/LEMIV/Ni") LEMIV 89 if (flag == "/ana/LEMIV/Nc") LEMIV 90 if (flag == "/ana/LEMIV/NDSB") LEM 91 if (flag == "/ana/LEMIV/Funrej") L 92 if (flag == "/ana/LEMIV/Tfast") LE 93 if (flag == "/ana/LEMIV/Tslow") LE 94 if (flag == "/ana/LEMIV/timeMax") 95 if (flag == "/ana/LEMIV/deltaTime" 96 if (flag == "/ana/BELOV/Nirrep") B 97 if (flag == "/ana/BELOV/Dz") BELOV 98 99 if (flag == "/ana/TLK/used") useTL 100 if (flag == "/ana/LEMIV/used") use 101 if (flag == "/ana/BELOV/used") use 102 103 if (flag == "/ana/ouputName") fOut 104 if (flag == "/ana/folderForChemOut 105 if (flag == "/ana/cellNucleusName" 106 if (flag == "/ana/loadDamagesFromS 107 fSDDfileName = tvalue; 108 fLoadDamagesFromSDD = true; 109 } 110 if (flag == "/ana/unitOfNormalizat 111 112 if (flag == "/ana/skipIndirectDama 113 114 if (flag == "/gps/particle") fPart 115 if (flag == "/gps/energy") { 116 fParticleEnergy = std::stof(tv 117 iss >> tvalue; 118 fEnergyUnit = tvalue; 119 } 120 if (flag == "/run/beamOn") fNumber 121 if (flag == "/scheduler/endTime") 122 fEndTimeForChemReactions = tva 123 iss >> tvalue; 124 fEndTimeForChemReactions += tv 125 } 126 } 127 } 128 } 129 130 //....oooOO0OOooo........oooOO0OOooo........oo 131 132 bool ParametersParser::UseTLK() 133 { 134 bool used = false; 135 if (useTLK == "true" || useTLK == "TRUE" | 136 useTLK == "yes" || useTLK == "YES" || 137 return used; 138 } 139 140 //....oooOO0OOooo........oooOO0OOooo........oo 141 142 bool ParametersParser::UseLEMIV() 143 { 144 bool used = false; 145 if (useLEMIV == "true" || useLEMIV == "TRU 146 useLEMIV == "yes" || useLEMIV == "YES" 147 return used; 148 } 149 150 //....oooOO0OOooo........oooOO0OOooo........oo 151 152 bool ParametersParser::UseBelov() 153 { 154 bool used = false; 155 if (useBELOV == "true" || useBELOV == "TRU 156 useBELOV == "yes" || useBELOV == "YES" 157 return used; 158 }