56 if (fpGuanine !=
nullptr) {
60 if (fpG4_WATER !=
nullptr) {
64 if (fpDeoxyribose !=
nullptr) {
65 InitialiseDeoxyribose();
68 if (fpCytosine !=
nullptr) {
72 if (fpThymine !=
nullptr) {
76 if (fpAdenine !=
nullptr) {
80 if (fpPhosphate !=
nullptr) {
81 InitialisePhosphate();
85void G4DNACPA100ExcitationStructure::InitialiseGuanine()
88 fEnergyConstant[index].push_back(8.2315 * eV);
89 fEnergyConstant[index].push_back(11.0928 * eV);
90 fEnergyConstant[index].push_back(11.5984 * eV);
91 fEnergyConstant[index].push_back(11.7906 * eV);
92 fEnergyConstant[index].push_back(11.9382 * eV);
93 fEnergyConstant[index].push_back(12.4424 * eV);
94 fEnergyConstant[index].push_back(13.3581 * eV);
95 fEnergyConstant[index].push_back(15.1381 * eV);
96 fEnergyConstant[index].push_back(16.4059 * eV);
97 fEnergyConstant[index].push_back(16.496 * eV);
98 fEnergyConstant[index].push_back(16.8457 * eV);
99 fEnergyConstant[index].push_back(17.297 * eV);
100 fEnergyConstant[index].push_back(18.0608 * eV);
101 fEnergyConstant[index].push_back(18.441 * eV);
102 fEnergyConstant[index].push_back(19.2414 * eV);
104 fnLevels[index] = fEnergyConstant[index].size();
106void G4DNACPA100ExcitationStructure::InitialiseWater()
108 auto index = fpG4_WATER->
GetIndex();
112 fEnergyConstant[index].push_back(8.17 * eV);
113 fEnergyConstant[index].push_back(10.13 * eV);
114 fEnergyConstant[index].push_back(11.31 * eV);
115 fEnergyConstant[index].push_back(12.91 * eV);
116 fEnergyConstant[index].push_back(14.50 * eV);
118 fUConstant[index].push_back(61.91 * eV);
119 fUConstant[index].push_back(59.52 * eV);
120 fUConstant[index].push_back(48.36 * eV);
121 fUConstant[index].push_back(70.71 * eV);
122 fUConstant[index].push_back(796.2 * eV);
124 fnLevels[index] = fEnergyConstant[index].size();
126void G4DNACPA100ExcitationStructure::InitialiseDeoxyribose()
128 auto index = fpDeoxyribose->
GetIndex();
129 fEnergyConstant[index].push_back(11.2410 * eV);
130 fEnergyConstant[index].push_back(11.7927 * eV);
131 fEnergyConstant[index].push_back(12.6579 * eV);
132 fEnergyConstant[index].push_back(12.8163 * eV);
133 fEnergyConstant[index].push_back(13.3238 * eV);
134 fEnergyConstant[index].push_back(13.9487 * eV);
135 fEnergyConstant[index].push_back(14.4374 * eV);
136 fEnergyConstant[index].push_back(14.7433 * eV);
137 fEnergyConstant[index].push_back(15.0818 * eV);
138 fEnergyConstant[index].push_back(15.6112 * eV);
139 fEnergyConstant[index].push_back(16.0547 * eV);
140 fEnergyConstant[index].push_back(16.8319 * eV);
141 fEnergyConstant[index].push_back(17.4294 * eV);
142 fEnergyConstant[index].push_back(18.0000 * eV);
143 fEnergyConstant[index].push_back(18.2696 * eV);
144 fEnergyConstant[index].push_back(18.6049 * eV);
145 fEnergyConstant[index].push_back(19.8378 * eV);
147 fnLevels[index] = fEnergyConstant[index].size();
149void G4DNACPA100ExcitationStructure::InitialiseCytosine()
151 auto index = fpCytosine->
GetIndex();
153 fEnergyConstant[index].push_back(9.3222 * eV);
154 fEnergyConstant[index].push_back(10.4601 * eV);
155 fEnergyConstant[index].push_back(11.3044 * eV);
156 fEnergyConstant[index].push_back(11.9986 * eV);
157 fEnergyConstant[index].push_back(13.4528 * eV);
158 fEnergyConstant[index].push_back(14.7371 * eV);
159 fEnergyConstant[index].push_back(16.2286 * eV);
160 fEnergyConstant[index].push_back(16.5877 * eV);
161 fEnergyConstant[index].push_back(17.0741 * eV);
162 fEnergyConstant[index].push_back(17.1875 * eV);
163 fEnergyConstant[index].push_back(18.638 * eV);
164 fEnergyConstant[index].push_back(19.6884 * eV);
165 fnLevels[index] = fEnergyConstant[index].size();
167void G4DNACPA100ExcitationStructure::InitialiseThymine()
172 fEnergyConstant[index].push_back(9.639 * eV);
173 fEnergyConstant[index].push_back(11.8278 * eV);
174 fEnergyConstant[index].push_back(12.0876 * eV);
175 fEnergyConstant[index].push_back(12.9656 * eV);
176 fEnergyConstant[index].push_back(13.9555 * eV);
177 fEnergyConstant[index].push_back(15.0774 * eV);
178 fEnergyConstant[index].push_back(15.4078 * eV);
179 fEnergyConstant[index].push_back(15.4689 * eV);
180 fEnergyConstant[index].push_back(16.1964 * eV);
181 fEnergyConstant[index].push_back(16.8955 * eV);
182 fEnergyConstant[index].push_back(17.5018 * eV);
183 fEnergyConstant[index].push_back(18.2979 * eV);
184 fEnergyConstant[index].push_back(18.4495 * eV);
185 fEnergyConstant[index].push_back(19.3186 * eV);
186 fnLevels[index] = fEnergyConstant[index].size();
188void G4DNACPA100ExcitationStructure::InitialiseAdenine()
193 fEnergyConstant[index].push_back(8.5114 * eV);
194 fEnergyConstant[index].push_back(10.1294 * eV);
195 fEnergyConstant[index].push_back(11.0606 * eV);
196 fEnergyConstant[index].push_back(11.5849 * eV);
197 fEnergyConstant[index].push_back(12.1533 * eV);
198 fEnergyConstant[index].push_back(13.356 * eV);
199 fEnergyConstant[index].push_back(13.6554 * eV);
200 fEnergyConstant[index].push_back(15.3296 * eV);
201 fEnergyConstant[index].push_back(16.179 * eV);
202 fEnergyConstant[index].push_back(16.7676 * eV);
203 fEnergyConstant[index].push_back(17.3489 * eV);
204 fEnergyConstant[index].push_back(17.5568 * eV);
205 fEnergyConstant[index].push_back(18.554 * eV);
206 fEnergyConstant[index].push_back(19.0866 * eV);
207 fnLevels[index] = fEnergyConstant[index].size();
209void G4DNACPA100ExcitationStructure::InitialisePhosphate()
212 auto index = fpPhosphate->
GetIndex();
213 fEnergyConstant[index].push_back(12.9963 * eV);
214 fEnergyConstant[index].push_back(12.9972 * eV);
215 fEnergyConstant[index].push_back(14.3109 * eV);
216 fEnergyConstant[index].push_back(15.2221 * eV);
217 fEnergyConstant[index].push_back(16.0591 * eV);
218 fEnergyConstant[index].push_back(16.0622 * eV);
219 fEnergyConstant[index].push_back(17.6365 * eV);
220 fEnergyConstant[index].push_back(17.6401 * eV);
221 fEnergyConstant[index].push_back(18.8803 * eV);
222 fnLevels[index] = fEnergyConstant[index].size();
228 const std::size_t& MatID)
232 if (level < fnLevels[MatID]) {
233 ionisation = fEnergyConstant[MatID][level];
236 std::ostringstream oss;
237 oss <<
" material was not found. ";
250 if (level < fnLevels[MatID]) {
251 UEnergy = fUConstant[MatID][level];
254 std::ostringstream oss;
255 oss <<
" material was not found. ";
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4DNACPA100ExcitationStructure()
G4double UEnergy(const std::size_t &level, const std::size_t &MatID)
G4double ExcitationEnergy(const std::size_t &level, const std::size_t &MatID)
std::size_t GetIndex() const
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)