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 // Authors: O. Belov and M. Batmunkh 27 // January 2017 28 // last edit: L.T. Anh (2023) 29 /// \file BelovModel.hh 30 /// \brief Definition of the BelovModel class 31 32 33 #ifndef BelovModel_H 34 #define BelovModel_H 1 35 36 #include <iostream> 37 #include <fstream> 38 #include <vector> 39 #include <map> 40 41 class Damage; 42 43 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 44 45 class BelovModel 46 { 47 public: 48 BelovModel(); 49 void Initialize(); 50 bool CalculateRepair(double Dz); 51 52 void SetAlpha(double value){falpha=value;}; 53 void SetNirrep(double value){fNirrep=value;}; 54 55 virtual 56 ~BelovModel() = default; 57 58 //Computes and sets input damage parameters 59 void ComputeAndSetDamageInput(std::vector<Damage>); 60 61 std::vector<std::pair<double,double>> GetDNARepair(std::string NameFoci); 62 63 void WriteOutput(std::string pFileName); 64 65 unsigned int GetBpForDSB(){return fBpForDSB;}; 66 void SetBpForDSB(unsigned int pVal){fBpForDSB = pVal;}; 67 void SetDose(double d) {fDose = d;} 68 void SetDSBandComDSBandDose(double dsby,double cdsby,double d); 69 private: 70 double fDz; 71 double falpha; 72 double fNirrep; 73 double fTime; 74 double ComplexDSBYield; 75 double DSBYield; 76 std::vector<double> Belov_odes_system(double t,std::vector<double> y); 77 std::vector<std::pair<double,double>> frepairsim[5]; 78 std::map<std::string,std::vector<std::pair<double,double>>> fdnarepair; 79 // num of bp to consider a DSB for the MakeCluster function 80 // default value is 10 81 unsigned int fBpForDSB; 82 // store dose deposited in nucleus cell 83 double fDose; 84 }; 85 #endif 86