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 LEMIVModel.hh 29 /// \brief Definition of the LEMIVModel class 30 31 #ifndef LEMIVMODEL_HH 32 #define LEMIVMODEL_HH 33 34 #include <string> 35 #include <vector> 36 #include <map> 37 38 class Damage; 39 40 class LEMIVModel 41 { 42 public: 43 44 /// \brief constructor 45 // pTfast and pTslow in h-1 46 LEMIVModel(double pLoopLength = 2E6,double pNi = 0, double pNc = 0, 47 double pNDSB = 0,double pFunrej =0,double pTfast =-1,double pTslow =-1); 48 /// \brief destructor 49 ~LEMIVModel() = default; 50 51 double ComputeUnrej(double pTime); 52 53 double GetLoopLength() {return fLoopLength;}; 54 void SetLoopLength(double pVal){fLoopLength=pVal;}; 55 double GetNumDSB() {return fNDSB;}; 56 void SetNumDSB(double pVal){fNDSB=pVal;}; 57 double GetNumDomainIsolated(){return fNi;}; 58 void SetNumDomainIsolated(double pVal){fNi=pVal;}; 59 double GetNumDomainClustered(){return fNc;}; 60 void SetNumDomainClustered(double pVal){fNc=pVal;}; 61 62 double GetFunrej(){return fFunrej;}; 63 void SetFunrej(double pVal){fFunrej=pVal;}; 64 65 // Tfast in h-1 66 double GetTfast(){return fTfast;}; 67 void SetTfast(double pVal){fTfast=pVal;}; 68 69 // Tslow in h-1 70 double GetTslow(){return fTslow;}; 71 void SetTslow(double pVal){fTslow=pVal;}; 72 73 // Computes and sets input damage parameters of LEMIV 74 void ComputeAndSetDamageInput(std::vector<Damage>); 75 76 // Write U=f(t) curve 77 // pTMax and pDeltaT in h 78 void CalculateRepair(double pTMax, double pDeltaT); 79 80 // Write output 81 void WriteOutput(std::string pFileName); 82 83 unsigned int GetBpForDSB(){return fBpForDSB;}; 84 void SetBpForDSB(unsigned int pVal){fBpForDSB = pVal;}; 85 void SetDose(double d) {fDose = d;} 86 87 void SetChromosomeBpSizesMap(std::map<int,unsigned long long int> chroSizes) {fChromosomeBpMap = chroSizes;} 88 private: 89 90 double fLoopLength; // length of the loop in bp, default one is 2 Mbp 91 92 //isolated DSB yield in Gy-1 93 double fNi{0}; 94 //clustered DSB yield in Gy-1 95 double fNc{0}; 96 // DSB yield in Gy-1 97 double fNDSB{0}; 98 99 double fFunrej{0}; 100 101 // constant time in h-1 102 double fTfast{0}; 103 double fTslow{0}; 104 105 // Compute the number of DSB for a given loop startint at bp pStartLop 106 int GetDSBPerLoop(std::vector<Damage> pVecDamage,unsigned int pStartLoop); 107 108 // U=f(t) curve, time in h 109 std::vector<std::pair<double,double>> fUCurve; 110 // num of bp to consider a DSB for the MakeCluster function 111 // default value is 10 112 unsigned int fBpForDSB{0}; 113 // store dose deposited in nucleus cell 114 double fDose{0}; 115 std::vector<double> fDefaultsChromosomeSizes;// Chomosome defaults sizes 116 std::map<int,unsigned long long int> fChromosomeBpMap; //Store number of Bp in each Chomosomes; 117 }; 118 119 #endif