Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/advanced/dna/dsbandrepair/analysis/include/ParametersParser.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  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