57 if (fpGuanine !=
nullptr) {
61 if (fpG4_WATER !=
nullptr) {
65 if (fpDeoxyribose !=
nullptr) {
66 InitialiseDeoxyribose();
69 if (fpCytosine !=
nullptr) {
73 if (fpThymine !=
nullptr) {
77 if (fpAdenine !=
nullptr) {
81 if (fpPhosphate !=
nullptr) {
82 InitialisePhosphate();
86void G4DNACPA100IonisationStructure::InitialiseGuanine()
91 fEnergyConstant[index].push_back(8.2315 * eV);
92 fEnergyConstant[index].push_back(11.0928 * eV);
93 fEnergyConstant[index].push_back(11.5984 * eV);
94 fEnergyConstant[index].push_back(11.7906 * eV);
95 fEnergyConstant[index].push_back(11.9382 * eV);
96 fEnergyConstant[index].push_back(12.4424 * eV);
97 fEnergyConstant[index].push_back(13.3581 * eV);
98 fEnergyConstant[index].push_back(15.1381 * eV);
99 fEnergyConstant[index].push_back(16.4059 * eV);
100 fEnergyConstant[index].push_back(16.496 * eV);
101 fEnergyConstant[index].push_back(16.8457 * eV);
102 fEnergyConstant[index].push_back(17.297 * eV);
103 fEnergyConstant[index].push_back(18.0608 * eV);
104 fEnergyConstant[index].push_back(18.441 * eV);
105 fEnergyConstant[index].push_back(19.2414 * eV);
106 fEnergyConstant[index].push_back(20.0877 * eV);
107 fEnergyConstant[index].push_back(20.3321 * eV);
108 fEnergyConstant[index].push_back(22.0153 * eV);
109 fEnergyConstant[index].push_back(22.9048 * eV);
110 fEnergyConstant[index].push_back(24.2447 * eV);
111 fEnergyConstant[index].push_back(24.692 * eV);
112 fEnergyConstant[index].push_back(28.2049 * eV);
113 fEnergyConstant[index].push_back(32.1299 * eV);
114 fEnergyConstant[index].push_back(33.2774 * eV);
115 fEnergyConstant[index].push_back(33.3958 * eV);
116 fEnergyConstant[index].push_back(36.6377 * eV);
117 fEnergyConstant[index].push_back(37.3483 * eV);
118 fEnergyConstant[index].push_back(38.3743 * eV);
119 fEnergyConstant[index].push_back(305.7284 * eV);
120 fEnergyConstant[index].push_back(307.4187 * eV);
121 fEnergyConstant[index].push_back(307.8468 * eV);
122 fEnergyConstant[index].push_back(308.9415 * eV);
123 fEnergyConstant[index].push_back(309.8057 * eV);
124 fEnergyConstant[index].push_back(423.1456 * eV);
125 fEnergyConstant[index].push_back(423.2615 * eV);
126 fEnergyConstant[index].push_back(424.5211 * eV);
127 fEnergyConstant[index].push_back(425.006 * eV);
128 fEnergyConstant[index].push_back(425.0315 * eV);
129 fEnergyConstant[index].push_back(558.2487 * eV);
130 fnLevels[index] = fEnergyConstant[index].size();
133void G4DNACPA100IonisationStructure::InitialiseWater()
135 auto index = fpG4_WATER->
GetIndex();
139 fEnergyConstant[index].push_back(10.79 * eV);
140 fEnergyConstant[index].push_back(13.39 * eV);
141 fEnergyConstant[index].push_back(16.05 * eV);
142 fEnergyConstant[index].push_back(32.30 * eV);
143 fEnergyConstant[index].push_back(539.0 * eV);
145 fUConstant[index].push_back(61.91 * eV);
146 fUConstant[index].push_back(59.52 * eV);
147 fUConstant[index].push_back(48.36 * eV);
148 fUConstant[index].push_back(70.71 * eV);
149 fUConstant[index].push_back(796.2 * eV);
150 fnLevels[index] = fEnergyConstant[index].size();
153void G4DNACPA100IonisationStructure::InitialiseDeoxyribose()
155 auto index = fpDeoxyribose->
GetIndex();
156 fEnergyConstant[index].push_back(11.241 * eV);
157 fEnergyConstant[index].push_back(11.7927 * eV);
158 fEnergyConstant[index].push_back(12.6579 * eV);
159 fEnergyConstant[index].push_back(12.8163 * eV);
160 fEnergyConstant[index].push_back(13.3238 * eV);
161 fEnergyConstant[index].push_back(13.9487 * eV);
162 fEnergyConstant[index].push_back(14.4374 * eV);
163 fEnergyConstant[index].push_back(14.7433 * eV);
164 fEnergyConstant[index].push_back(15.0818 * eV);
165 fEnergyConstant[index].push_back(15.6112 * eV);
166 fEnergyConstant[index].push_back(16.0547 * eV);
167 fEnergyConstant[index].push_back(16.8319 * eV);
168 fEnergyConstant[index].push_back(17.4294 * eV);
169 fEnergyConstant[index].push_back(18.0 * eV);
170 fEnergyConstant[index].push_back(18.2696 * eV);
171 fEnergyConstant[index].push_back(18.6049 * eV);
172 fEnergyConstant[index].push_back(19.8378 * eV);
173 fEnergyConstant[index].push_back(20.5787 * eV);
174 fEnergyConstant[index].push_back(22.0146 * eV);
175 fEnergyConstant[index].push_back(22.9176 * eV);
176 fEnergyConstant[index].push_back(24.9005 * eV);
177 fEnergyConstant[index].push_back(28.0268 * eV);
178 fEnergyConstant[index].push_back(28.7417 * eV);
179 fEnergyConstant[index].push_back(36.9571 * eV);
180 fEnergyConstant[index].push_back(37.1881 * eV);
181 fEnergyConstant[index].push_back(37.5798 * eV);
182 fEnergyConstant[index].push_back(39.2622 * eV);
183 fEnergyConstant[index].push_back(305.446 * eV);
184 fEnergyConstant[index].push_back(306.6421 * eV);
185 fEnergyConstant[index].push_back(306.8925 * eV);
186 fEnergyConstant[index].push_back(307.0377 * eV);
187 fEnergyConstant[index].push_back(308.5849 * eV);
188 fEnergyConstant[index].push_back(559.0236 * eV);
189 fEnergyConstant[index].push_back(559.3832 * eV);
190 fEnergyConstant[index].push_back(559.6416 * eV);
191 fEnergyConstant[index].push_back(559.7734 * eV);
193 fnLevels[index] = fEnergyConstant[index].size();
196void G4DNACPA100IonisationStructure::InitialiseCytosine()
198 auto index = fpCytosine->
GetIndex();
200 fEnergyConstant[index].push_back(9.3222 * eV);
201 fEnergyConstant[index].push_back(10.4601 * eV);
202 fEnergyConstant[index].push_back(11.3044 * eV);
203 fEnergyConstant[index].push_back(11.9986 * eV);
204 fEnergyConstant[index].push_back(13.4528 * eV);
205 fEnergyConstant[index].push_back(14.7371 * eV);
206 fEnergyConstant[index].push_back(16.2286 * eV);
207 fEnergyConstant[index].push_back(16.5877 * eV);
208 fEnergyConstant[index].push_back(17.0741 * eV);
209 fEnergyConstant[index].push_back(17.1875 * eV);
210 fEnergyConstant[index].push_back(18.638 * eV);
211 fEnergyConstant[index].push_back(19.6884 * eV);
212 fEnergyConstant[index].push_back(20.8713 * eV);
213 fEnergyConstant[index].push_back(20.9056 * eV);
214 fEnergyConstant[index].push_back(24.0179 * eV);
215 fEnergyConstant[index].push_back(24.5543 * eV);
216 fEnergyConstant[index].push_back(29.0576 * eV);
217 fEnergyConstant[index].push_back(32.0504 * eV);
218 fEnergyConstant[index].push_back(34.5499 * eV);
219 fEnergyConstant[index].push_back(35.5664 * eV);
220 fEnergyConstant[index].push_back(38.0707 * eV);
221 fEnergyConstant[index].push_back(305.7622 * eV);
222 fEnergyConstant[index].push_back(307.9891 * eV);
223 fEnergyConstant[index].push_back(308.674 * eV);
224 fEnergyConstant[index].push_back(309.0146 * eV);
225 fEnergyConstant[index].push_back(422.5331 * eV);
226 fEnergyConstant[index].push_back(424.1245 * eV);
227 fEnergyConstant[index].push_back(424.7781 * eV);
228 fEnergyConstant[index].push_back(557.6346 * eV);
229 fnLevels[index] = fEnergyConstant[index].size();
232void G4DNACPA100IonisationStructure::InitialiseThymine()
239 fEnergyConstant[index].push_back(9.639 * eV);
240 fEnergyConstant[index].push_back(11.8278 * eV);
241 fEnergyConstant[index].push_back(12.0876 * eV);
242 fEnergyConstant[index].push_back(12.9656 * eV);
243 fEnergyConstant[index].push_back(13.9555 * eV);
244 fEnergyConstant[index].push_back(15.0774 * eV);
245 fEnergyConstant[index].push_back(15.4078 * eV);
246 fEnergyConstant[index].push_back(15.4689 * eV);
247 fEnergyConstant[index].push_back(16.1964 * eV);
248 fEnergyConstant[index].push_back(16.8955 * eV);
249 fEnergyConstant[index].push_back(17.5018 * eV);
250 fEnergyConstant[index].push_back(18.2979 * eV);
251 fEnergyConstant[index].push_back(18.4495 * eV);
252 fEnergyConstant[index].push_back(19.3186 * eV);
253 fEnergyConstant[index].push_back(20.9944 * eV);
254 fEnergyConstant[index].push_back(21.0797 * eV);
255 fEnergyConstant[index].push_back(24.3676 * eV);
256 fEnergyConstant[index].push_back(24.9072 * eV);
257 fEnergyConstant[index].push_back(26.3981 * eV);
258 fEnergyConstant[index].push_back(30.1684 * eV);
259 fEnergyConstant[index].push_back(33.9007 * eV);
260 fEnergyConstant[index].push_back(35.6553 * eV);
261 fEnergyConstant[index].push_back(38.4935 * eV);
262 fEnergyConstant[index].push_back(39.3191 * eV);
263 fEnergyConstant[index].push_back(305.6808 * eV);
264 fEnergyConstant[index].push_back(306.1885 * eV);
265 fEnergyConstant[index].push_back(307.9374 * eV);
266 fEnergyConstant[index].push_back(309.3127 * eV);
267 fEnergyConstant[index].push_back(310.2121 * eV);
268 fEnergyConstant[index].push_back(424.8945 * eV);
269 fEnergyConstant[index].push_back(425.2178 * eV);
270 fEnergyConstant[index].push_back(558.7154 * eV);
271 fEnergyConstant[index].push_back(558.8106 * eV);
272 fnLevels[index] = fEnergyConstant[index].size();
275void G4DNACPA100IonisationStructure::InitialiseAdenine()
280 fEnergyConstant[index].push_back(8.5114 * eV);
281 fEnergyConstant[index].push_back(10.1294 * eV);
282 fEnergyConstant[index].push_back(11.0606 * eV);
283 fEnergyConstant[index].push_back(11.5849 * eV);
284 fEnergyConstant[index].push_back(12.1533 * eV);
285 fEnergyConstant[index].push_back(13.356 * eV);
286 fEnergyConstant[index].push_back(13.6554 * eV);
287 fEnergyConstant[index].push_back(15.3296 * eV);
288 fEnergyConstant[index].push_back(16.179 * eV);
289 fEnergyConstant[index].push_back(16.7676 * eV);
290 fEnergyConstant[index].push_back(17.3489 * eV);
291 fEnergyConstant[index].push_back(17.5568 * eV);
292 fEnergyConstant[index].push_back(18.554 * eV);
293 fEnergyConstant[index].push_back(19.0866 * eV);
294 fEnergyConstant[index].push_back(20.2559 * eV);
295 fEnergyConstant[index].push_back(21.4027 * eV);
296 fEnergyConstant[index].push_back(23.0384 * eV);
297 fEnergyConstant[index].push_back(23.9742 * eV);
298 fEnergyConstant[index].push_back(24.479 * eV);
299 fEnergyConstant[index].push_back(28.3224 * eV);
300 fEnergyConstant[index].push_back(31.4796 * eV);
301 fEnergyConstant[index].push_back(32.4597 * eV);
302 fEnergyConstant[index].push_back(34.1263 * eV);
303 fEnergyConstant[index].push_back(35.6423 * eV);
304 fEnergyConstant[index].push_back(37.5026 * eV);
305 fEnergyConstant[index].push_back(305.9305 * eV);
306 fEnergyConstant[index].push_back(307.4532 * eV);
307 fEnergyConstant[index].push_back(307.6866 * eV);
308 fEnergyConstant[index].push_back(307.8303 * eV);
309 fEnergyConstant[index].push_back(308.2887 * eV);
310 fEnergyConstant[index].push_back(422.8443 * eV);
311 fEnergyConstant[index].push_back(423.0296 * eV);
312 fEnergyConstant[index].push_back(423.3954 * eV);
313 fEnergyConstant[index].push_back(423.8101 * eV);
314 fEnergyConstant[index].push_back(425.0749 * eV);
315 fnLevels[index] = fEnergyConstant[index].size();
318void G4DNACPA100IonisationStructure::InitialisePhosphate()
320 auto index = fpPhosphate->
GetIndex();
323 fEnergyConstant[index].push_back(12.9963 * eV);
324 fEnergyConstant[index].push_back(12.9972 * eV);
325 fEnergyConstant[index].push_back(14.3109 * eV);
326 fEnergyConstant[index].push_back(15.2221 * eV);
327 fEnergyConstant[index].push_back(16.0591 * eV);
328 fEnergyConstant[index].push_back(16.0622 * eV);
329 fEnergyConstant[index].push_back(17.6365 * eV);
330 fEnergyConstant[index].push_back(17.6401 * eV);
331 fEnergyConstant[index].push_back(18.8803 * eV);
332 fEnergyConstant[index].push_back(20.6975 * eV);
333 fEnergyConstant[index].push_back(20.7054 * eV);
334 fEnergyConstant[index].push_back(24.2764 * eV);
335 fEnergyConstant[index].push_back(35.6676 * eV);
336 fEnergyConstant[index].push_back(38.1681 * eV);
337 fEnergyConstant[index].push_back(38.1685 * eV);
338 fEnergyConstant[index].push_back(40.1946 * eV);
339 fEnergyConstant[index].push_back(150.138 * eV);
340 fEnergyConstant[index].push_back(150.1381 * eV);
341 fEnergyConstant[index].push_back(150.1414 * eV);
342 fEnergyConstant[index].push_back(207.3392 * eV);
343 fEnergyConstant[index].push_back(558.1119 * eV);
344 fEnergyConstant[index].push_back(560.5803 * eV);
345 fEnergyConstant[index].push_back(560.5808 * eV);
346 fEnergyConstant[index].push_back(560.5817 * eV);
347 fEnergyConstant[index].push_back(2179.592 * eV);
348 fnLevels[index] = fEnergyConstant[index].size();
354 const std::size_t& MatID)
358 if (level < fnLevels[MatID]) {
359 ionisation = fEnergyConstant[MatID][level];
362 std::ostringstream oss;
363 oss <<
" material was not found. ";
376 if (level < fnLevels[MatID]) {
377 UEnergy = fUConstant[MatID][level];
380 std::ostringstream oss;
381 oss <<
" material was not found. ";
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4double UEnergy(const std::size_t &level, const std::size_t &MatID)
G4double IonisationEnergy(const std::size_t &level, const std::size_t &MatID)
G4DNACPA100IonisationStructure()
std::size_t GetIndex() const
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)