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: DamageModel.cc 28 /// brief: Parameters related to the DNA Damag 29 30 #include "DamageModel.hh" 31 32 //....oooOO0OOooo........oooOO0OOooo........oo 33 34 DamageModel::DamageModel() 35 { 36 fpDamageMessenger = new DamageModelMessenger 37 } 38 39 //....oooOO0OOooo........oooOO0OOooo........oo 40 41 G4bool DamageModel::IsDirectStrandBreak(const 42 { 43 G4bool bool_val = false; 44 if (d < fDirectDmgLower) { 45 bool_val = false; 46 } 47 else if (d >= fDirectDmgUpper) { 48 bool_val = true; 49 } 50 else { 51 bool_val = (G4UniformRand() < ((d - fDirec 52 } 53 return bool_val; 54 } 55 56 //....oooOO0OOooo........oooOO0OOooo........oo 57 58 G4bool DamageModel::IsIndirectBaseDamage(const 59 { 60 G4bool bool_val = false; 61 if (mol->GetDefinition() == fOH) { 62 bool_val = (G4UniformRand() < fBaseOH); 63 } 64 else if (mol->GetDefinition() == fH) { 65 bool_val = (G4UniformRand() < fBaseH); 66 } 67 else if (mol->GetDefinition() == fe_aq) { 68 bool_val = (G4UniformRand() < fBaseEaq); 69 } 70 else { 71 bool_val = false; 72 } 73 return bool_val; 74 } 75 76 //....oooOO0OOooo........oooOO0OOooo........oo 77 78 G4bool DamageModel::IsIndirectStrandDamage(con 79 { 80 G4bool bool_val = false; 81 if (mol->GetDefinition() == fOH) { 82 bool_val = (G4UniformRand() < fStrandOH); 83 } 84 else if (mol->GetDefinition() == G4Hydrogen: 85 bool_val = (G4UniformRand() < fStrandH); 86 } 87 else if (mol->GetDefinition() == G4Electron_ 88 bool_val = (G4UniformRand() < fStrandEaq); 89 } 90 else { 91 bool_val = false; 92 } 93 return bool_val; 94 } 95 96 //....oooOO0OOooo........oooOO0OOooo........oo 97 98 G4bool DamageModel::IsInducedStrandBreak(const 99 { 100 G4bool bool_val = false; 101 if (mol->GetDefinition() == fOH) { 102 bool_val = (G4UniformRand() < fInductionOH 103 } 104 else if (mol->GetDefinition() == G4Hydrogen: 105 bool_val = (G4UniformRand() < fInductionH) 106 } 107 else if (mol->GetDefinition() == G4Electron_ 108 bool_val = (G4UniformRand() < fInductionEa 109 } 110 else { 111 bool_val = false; 112 } 113 return bool_val; 114 } 115 116 //....oooOO0OOooo........oooOO0OOooo........oo 117 118 void DamageModel::CheckValidProbability(const 119 { 120 if ((p < 0) || (p > 1)) { 121 G4ExceptionDescription errmsg; 122 errmsg << "Invalid probability for " << st 123 G4Exception("DamageModel", "ERR_INVALID_PR 124 } 125 }