Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4DNAPTBIonisationStructure Class Reference

#include <G4DNAPTBIonisationStructure.hh>

Public Member Functions

 G4DNAPTBIonisationStructure ()
 
 ~G4DNAPTBIonisationStructure ()=default
 
G4double IonisationEnergy (G4int level, const size_t &materialName)
 
G4int NumberOfLevels (const size_t &materialName)
 
 G4DNAPTBIonisationStructure (const G4DNAPTBIonisationStructure &)=delete
 
G4DNAPTBIonisationStructureoperator= (const G4DNAPTBIonisationStructure &right)=delete
 

Detailed Description

Definition at line 36 of file G4DNAPTBIonisationStructure.hh.

Constructor & Destructor Documentation

◆ G4DNAPTBIonisationStructure() [1/2]

G4DNAPTBIonisationStructure::G4DNAPTBIonisationStructure ( )

Definition at line 33 of file G4DNAPTBIonisationStructure.cc.

34{
35 fpTHF = G4Material::GetMaterial("THF", false);
36 fpPY = G4Material::GetMaterial("PY", false);
37 fpPU = G4Material::GetMaterial("PU", false);
38 fpTMP = G4Material::GetMaterial("TMP", false);
39 fpG4_WATER = G4Material::GetMaterial("G4_WATER", false);
40 fpBackbone_THF = G4Material::GetMaterial("backbone_THF", false);
41 fpCytosine_PY = G4Material::GetMaterial("cytosine_PY", false);
42 fpThymine_PY = G4Material::GetMaterial("thymine_PY", false);
43 fpAdenine_PU = G4Material::GetMaterial("adenine_PU", false);
44 fpBackbone_TMP = G4Material::GetMaterial("backbone_TMP", false);
45 fpGuanine_PU = G4Material::GetMaterial("guanine_PU", false);
46 fpN2 = G4Material::GetMaterial("N2", false);
47
48 // MPietrzak
49 if (fpN2 != nullptr) {
50 auto index = fpN2->GetIndex();
51 energyConstant[index].push_back(15.58 * eV);
52 energyConstant[index].push_back(17.07 * eV);
53 energyConstant[index].push_back(21.00 * eV);
54 energyConstant[index].push_back(41.72 * eV);
55 }
56
57 // MPietrzak
58 if (fpG4_WATER != nullptr) {
59 auto index = fpG4_WATER->GetIndex();
60 energyConstant[index].push_back(10.79 * eV);
61 energyConstant[index].push_back(13.39 * eV);
62 energyConstant[index].push_back(16.05 * eV);
63 energyConstant[index].push_back(32.30 * eV);
64 energyConstant[index].push_back(539.0 * eV);
65 }
66 if (fpTHF != nullptr) {
67 auto index = fpTHF->GetIndex();
68 energyConstant[index].push_back(9.74 * eV);
69 energyConstant[index].push_back(12.31 * eV);
70 energyConstant[index].push_back(12.99 * eV);
71 energyConstant[index].push_back(13.57 * eV);
72 energyConstant[index].push_back(13.60 * eV);
73 energyConstant[index].push_back(15.11 * eV);
74 energyConstant[index].push_back(15.97 * eV);
75 energyConstant[index].push_back(16.28 * eV);
76 energyConstant[index].push_back(18.19 * eV);
77 energyConstant[index].push_back(18.69 * eV);
78 energyConstant[index].push_back(22.14 * eV);
79 energyConstant[index].push_back(22.25 * eV);
80 energyConstant[index].push_back(27.21 * eV);
81 energyConstant[index].push_back(28.97 * eV);
82 energyConstant[index].push_back(36.97 * eV);
83 energyConstant[index].push_back(305.07 * eV);
84 energyConstant[index].push_back(305.08 * eV);
85 energyConstant[index].push_back(306.17 * eV);
86 energyConstant[index].push_back(306.17 * eV);
87 energyConstant[index].push_back(557.94 * eV);
88 }
89
90 if (fpPY != nullptr) {
91 auto index = fpPY->GetIndex();
92 energyConstant[index].push_back(9.73 * eV);
93 energyConstant[index].push_back(10.96 * eV);
94 energyConstant[index].push_back(11.54 * eV);
95 energyConstant[index].push_back(12.58 * eV);
96 energyConstant[index].push_back(15.96 * eV);
97 energyConstant[index].push_back(16.27 * eV);
98 energyConstant[index].push_back(16.53 * eV);
99 energyConstant[index].push_back(17.98 * eV);
100 energyConstant[index].push_back(19.37 * eV);
101 energyConstant[index].push_back(20.52 * eV);
102 energyConstant[index].push_back(24.55 * eV);
103 energyConstant[index].push_back(24.64 * eV);
104 energyConstant[index].push_back(29.75 * eV);
105 energyConstant[index].push_back(33.02 * eV);
106 energyConstant[index].push_back(36.57 * eV);
107 energyConstant[index].push_back(305.92 * eV);
108 energyConstant[index].push_back(307.09 * eV);
109 energyConstant[index].push_back(307.09 * eV);
110 energyConstant[index].push_back(307.52 * eV);
111 energyConstant[index].push_back(423.44 * eV);
112 energyConstant[index].push_back(423.44 * eV);
113 }
114
115 if (fpPU != nullptr) {
116 auto index = fpPU->GetIndex();
117 energyConstant[index].push_back(9.58 * eV);
118 energyConstant[index].push_back(10.57 * eV);
119 energyConstant[index].push_back(10.97 * eV);
120 energyConstant[index].push_back(12.22 * eV);
121 energyConstant[index].push_back(12.92 * eV);
122 energyConstant[index].push_back(13.44 * eV);
123 energyConstant[index].push_back(15.05 * eV);
124 energyConstant[index].push_back(16.56 * eV);
125 energyConstant[index].push_back(17.18 * eV);
126 energyConstant[index].push_back(17.88 * eV);
127 energyConstant[index].push_back(17.90 * eV);
128 energyConstant[index].push_back(19.11 * eV);
129 energyConstant[index].push_back(20.09 * eV);
130 energyConstant[index].push_back(21.70 * eV);
131 energyConstant[index].push_back(23.52 * eV);
132 energyConstant[index].push_back(24.35 * eV);
133 energyConstant[index].push_back(25.41 * eV);
134 energyConstant[index].push_back(29.34 * eV);
135 energyConstant[index].push_back(32.44 * eV);
136 energyConstant[index].push_back(33.67 * eV);
137 energyConstant[index].push_back(36.26 * eV);
138 energyConstant[index].push_back(38.22 * eV);
139 energyConstant[index].push_back(306.53 * eV);
140 energyConstant[index].push_back(307.19 * eV);
141 energyConstant[index].push_back(307.64 * eV);
142 energyConstant[index].push_back(308.14 * eV);
143 energyConstant[index].push_back(308.17 * eV);
144 energyConstant[index].push_back(423.31 * eV);
145 energyConstant[index].push_back(423.43 * eV);
146 energyConstant[index].push_back(423.64 * eV);
147 energyConstant[index].push_back(423.98 * eV);
148 }
149
150 if (fpTMP != nullptr) {
151 auto index = fpTMP->GetIndex();
152 energyConstant[index].push_back(10.81 * eV);
153 energyConstant[index].push_back(10.81 * eV);
154 energyConstant[index].push_back(12.90 * eV);
155 energyConstant[index].push_back(13.32 * eV);
156 energyConstant[index].push_back(13.32 * eV);
157 energyConstant[index].push_back(13.59 * eV);
158 energyConstant[index].push_back(14.33 * eV);
159 energyConstant[index].push_back(14.33 * eV);
160 energyConstant[index].push_back(15.90 * eV);
161 energyConstant[index].push_back(17.09 * eV);
162 energyConstant[index].push_back(17.09 * eV);
163 energyConstant[index].push_back(17.13 * eV);
164 energyConstant[index].push_back(17.85 * eV);
165 energyConstant[index].push_back(17.85 * eV);
166 energyConstant[index].push_back(18.44 * eV);
167 energyConstant[index].push_back(19.37 * eV);
168 energyConstant[index].push_back(19.37 * eV);
169 energyConstant[index].push_back(21.40 * eV);
170 energyConstant[index].push_back(26.20 * eV);
171 energyConstant[index].push_back(26.20 * eV);
172 energyConstant[index].push_back(27.43 * eV);
173 energyConstant[index].push_back(35.23 * eV);
174 energyConstant[index].push_back(37.67 * eV);
175 energyConstant[index].push_back(37.67 * eV);
176 energyConstant[index].push_back(39.64 * eV);
177 energyConstant[index].push_back(152.42 * eV);
178 energyConstant[index].push_back(152.42 * eV);
179 energyConstant[index].push_back(152.44 * eV);
180 energyConstant[index].push_back(209.59 * eV);
181 energyConstant[index].push_back(306.92 * eV);
182 energyConstant[index].push_back(306.92 * eV);
183 energyConstant[index].push_back(306.92 * eV);
184 energyConstant[index].push_back(557.34 * eV);
185 energyConstant[index].push_back(559.40 * eV);
186 energyConstant[index].push_back(559.40 * eV);
187 energyConstant[index].push_back(559.41 * eV);
188 energyConstant[index].push_back(2178.05 * eV);
189 }
190
191 for (const auto& [index, levels] : energyConstant) {
192 nLevels[index] = (G4int)levels.size();
193 }
194}
int G4int
Definition G4Types.hh:85
std::size_t GetIndex() const
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)

◆ ~G4DNAPTBIonisationStructure()

G4DNAPTBIonisationStructure::~G4DNAPTBIonisationStructure ( )
default

◆ G4DNAPTBIonisationStructure() [2/2]

G4DNAPTBIonisationStructure::G4DNAPTBIonisationStructure ( const G4DNAPTBIonisationStructure & )
delete

Member Function Documentation

◆ IonisationEnergy()

G4double G4DNAPTBIonisationStructure::IonisationEnergy ( G4int level,
const size_t & materialName )

Definition at line 196 of file G4DNAPTBIonisationStructure.cc.

197{
198 size_t matNameModif = ReplaceMaterial(materialID);
199
200 // check if the material exist in the map
201 if (energyConstant.find(matNameModif) == energyConstant.end()) {
202 std::ostringstream oss;
203 oss << "Material name was not found in energyConstantMap. Problematic material is: "
204 << materialID;
206 "G4DNAPTBIonisationStructure::IonisationEnergy", "em0002", FatalException, oss.str().c_str());
207 }
208
209 G4double ionisation = 0.;
210
211 if (level >= 0 && level < nLevels[matNameModif]) ionisation = energyConstant[matNameModif][level];
212
213 return ionisation;
214}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
double G4double
Definition G4Types.hh:83

Referenced by G4DNAPTBExcitationModel::SampleSecondaries(), and G4DNAPTBIonisationModel::SampleSecondaries().

◆ NumberOfLevels()

G4int G4DNAPTBIonisationStructure::NumberOfLevels ( const size_t & materialName)

Definition at line 216 of file G4DNAPTBIonisationStructure.cc.

217{
218 auto matNameModif = ReplaceMaterial(materialID);
219
220 // check if the material exist in the map
221 if (nLevels.find(matNameModif) == nLevels.end()) {
222 std::ostringstream oss;
223 oss << "Material name was not found in energyConstantMap. Problematic material is: "
224 << matNameModif;
226 "G4DNAPTBIonisationStructure::NumberOfLevels", "em0002", FatalException, oss.str().c_str());
227 }
228
229 return nLevels[matNameModif];
230}

◆ operator=()

G4DNAPTBIonisationStructure & G4DNAPTBIonisationStructure::operator= ( const G4DNAPTBIonisationStructure & right)
delete

The documentation for this class was generated from the following files: