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 #include "G4DNATransformElectronModel.hh" 28 #include "G4SystemOfUnits.hh" 29 #include "G4ParticleChangeForGamma.hh" 30 #include "G4NistManager.hh" 31 #include "G4DNAChemistryManager.hh" 32 #include "G4DNAMolecularMaterial.hh" 33 34 //#define MODEL_VERBOSE 35 36 G4DNATransformElectronModel:: 37 G4DNATransformElectronModel(const G4ParticleDe 38 const G4String& na 39 G4VEmModel(nam) 40 { 41 fVerboseLevel = 0; 42 SetLowEnergyLimit(0. * eV); 43 SetHighEnergyLimit(0.025 * eV); 44 fParticleChangeForGamma = nullptr; 45 fpWaterDensity = nullptr; 46 fpWaterDensity = nullptr; 47 fEpsilon = 0.0001 * eV; 48 } 49 50 //____________________________________________ 51 G4DNATransformElectronModel::~G4DNATransformEl 52 = default; 53 54 //____________________________________________ 55 void G4DNATransformElectronModel:: 56 Initialise(const G4ParticleDefinition* particl 57 const G4DataVector&) 58 { 59 #ifdef MODEL_VERBOSE 60 if (fVerboseLevel) 61 G4cout << "Calling G4DNATransformElectronM 62 #endif 63 64 if(particleDefinition->GetParticleName() != 65 { 66 G4ExceptionDescription errMsg; 67 errMsg << "Attempting to calculate cross s 68 G4Exception("G4DNATransformElectronModel:: 69 "G4DNATransformElectronModel00 70 return; 71 } 72 73 // Initialize water density pointer 74 fpWaterDensity = G4DNAMolecularMaterial::Ins 75 GetNumMolPerVolTableFor(G4Material::GetM 76 77 if(!fIsInitialised) 78 { 79 fIsInitialised = true; 80 fParticleChangeForGamma = GetParticleChang 81 } 82 } 83 84 //____________________________________________ 85 G4double 86 G4DNATransformElectronModel::CrossSectionPerVo 87 88 89 90 91 { 92 #if MODEL_VERBOSE 93 if (fVerboseLevel > 1) 94 G4cout << "Calling CrossSectionPerVolume() 95 #endif 96 97 if(ekin - fEpsilon > HighEnergyLimit()) 98 { 99 return 0.0; 100 } 101 102 G4double waterDensity = (*fpWaterDensity)[ma 103 104 if(waterDensity != 0.0) 105 { 106 return DBL_MAX; 107 } 108 109 return 0.0; 110 } 111 112 //____________________________________________ 113 void 114 G4DNATransformElectronModel::SampleSecondaries 115 c 116 c 117 G 118 G 119 { 120 #if MODEL_VERBOSE 121 if (fVerboseLevel) 122 G4cout << "Calling SampleSecondaries() of 123 #endif 124 125 G4double k = particle->GetKineticEnergy(); 126 127 // if (k - fEpsilon <= HighEnergyLimit()) / 128 // { 129 const G4Track * track = fParticleChangeForGa 130 G4DNAChemistryManager::Instance()->CreateSol 131 fParticleChangeForGamma->ProposeTrackStatus( 132 fParticleChangeForGamma->ProposeLocalEnergyD 133 // } 134 } 135