ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4DNAMolecule.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4DNAMolecule.cc
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
//
27
28
#include "
G4DNAMolecule.hh
"
29
#include "
G4ParticleTable.hh
"
30
#include "
G4SystemOfUnits.hh
"
31
#include "
G4MoleculeDefinition.hh
"
32
#include "
G4ParticleTable.hh
"
33
#include "
G4PhysicalConstants.hh
"
34
35
G4DamagedDeoxyribose
*
G4DamagedDeoxyribose::fgInstance
=
nullptr
;
36
37
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
38
39
G4DamagedDeoxyribose
*
G4DamagedDeoxyribose::Definition
()
40
{
41
const
G4String
name
=
"Damaged_Deoxyribose"
;
42
if
(
fgInstance
!=
nullptr
)
43
{
44
return
fgInstance
;
45
}
46
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
47
G4ParticleDefinition
* pInstance = pTable->
FindParticle
(name);
48
49
if
(pInstance ==
nullptr
)
50
{
51
G4double
mass
= 134.1305 *
g
/
Avogadro
*
c_squared
;
//wikipedia
52
pInstance =
new
G4MoleculeDefinition
(name, mass, 0 * (
m
*
m
/
s
), 0,
53
5, 3.0 *
angstrom
,
// radius
54
2
// number of atoms
55
);
56
}
57
58
fgInstance
=
reinterpret_cast<
G4DamagedDeoxyribose
*
>
(pInstance);
59
return
fgInstance
;
60
}
61
62
G4DamagedAdenine
*
G4DamagedAdenine::fgInstance
=
nullptr
;
63
64
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
65
66
G4DamagedAdenine
*
G4DamagedAdenine::Definition
()
67
{
68
const
G4String
name
=
"Damaged_Adenine"
;
69
if
(
fgInstance
!=
nullptr
)
70
{
71
return
fgInstance
;
72
}
73
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
74
G4ParticleDefinition
* pInstance = pTable->
FindParticle
(name);
75
76
if
(pInstance ==
nullptr
)
77
{
78
G4double
mass
= 135.1267 *
g
/
Avogadro
*
c_squared
;
79
pInstance =
new
G4MoleculeDefinition
(name, mass, 0 * (
m
*
m
/
s
), 0,
80
5, 3.0 *
angstrom
,
// radius
81
2
// number of atoms
82
);
83
}
84
fgInstance
=
reinterpret_cast<
G4DamagedAdenine
*
>
(pInstance);
85
return
fgInstance
;
86
}
87
88
89
G4DamagedGuanine
*
G4DamagedGuanine::fgInstance
=
nullptr
;
90
91
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
92
93
G4DamagedGuanine
*
G4DamagedGuanine::Definition
()
94
{
95
const
G4String
name
=
"Damaged_Guanine"
;
96
if
(
fgInstance
!=
nullptr
)
97
{
98
return
fgInstance
;
99
}
100
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
101
G4ParticleDefinition
* pInstance = pTable->
FindParticle
(name);
102
103
if
(pInstance ==
nullptr
)
104
{
105
G4double
mass
= 151.1261 *
g
/
Avogadro
*
c_squared
;
106
pInstance =
new
G4MoleculeDefinition
(name, mass, 0 * (
m
*
m
/
s
), 0,
107
5, 3.0 *
angstrom
,
// radius
108
2
// number of atoms
109
);
110
}
111
fgInstance
=
reinterpret_cast<
G4DamagedGuanine
*
>
(pInstance);
112
return
fgInstance
;
113
}
114
115
G4DamagedThymine
*
G4DamagedThymine::fgInstance
=
nullptr
;
116
117
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
118
119
G4DamagedThymine
*
G4DamagedThymine::Definition
()
120
{
121
const
G4String
name
=
"Damaged_Thymine"
;
122
if
(
fgInstance
!=
nullptr
)
123
{
124
return
fgInstance
;
125
}
126
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
127
G4ParticleDefinition
* pInstance = pTable->
FindParticle
(name);
128
129
if
(pInstance ==
nullptr
)
130
{
131
G4double
mass
= 126.1133 *
g
/
Avogadro
*
c_squared
;
132
pInstance =
new
G4MoleculeDefinition
(name, mass, 0 * (
m
*
m
/
s
), 0,
133
5, 3.0 *
angstrom
,
// radius
134
2
// number of atoms
135
);
136
}
137
138
fgInstance
=
reinterpret_cast<
G4DamagedThymine
*
>
(pInstance);
139
return
fgInstance
;
140
}
141
142
G4DamagedCytosine
*
G4DamagedCytosine::fgInstance
=
nullptr
;
143
144
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
145
146
G4DamagedCytosine
*
G4DamagedCytosine::Definition
()
147
{
148
const
G4String
name
=
"Damaged_Cytosine"
;
149
if
(
fgInstance
!=
nullptr
)
150
{
151
return
fgInstance
;
152
}
153
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
154
G4ParticleDefinition
* pInstance = pTable->
FindParticle
(name);
155
156
if
(pInstance ==
nullptr
)
157
{
158
G4double
mass
= 111.102 *
g
/
Avogadro
*
c_squared
;
159
pInstance =
new
G4MoleculeDefinition
(name, mass, 0 * (
m
*
m
/
s
), 0,
160
5, 2.9 *
angstrom
,
// radius
161
2
// number of atoms
162
);
163
}
164
fgInstance
=
reinterpret_cast<
G4DamagedCytosine
*
>
(pInstance);
165
return
fgInstance
;
166
}
167
168
169
G4Deoxyribose
*
G4Deoxyribose::fgInstance
=
nullptr
;
170
171
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
172
173
G4Deoxyribose
*
G4Deoxyribose::Definition
()
174
{
175
const
G4String
name
=
"Deoxyribose"
;
176
if
(
fgInstance
!=
nullptr
)
177
{
178
return
fgInstance
;
179
}
180
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
181
G4ParticleDefinition
* pInstance = pTable->
FindParticle
(name);
182
183
if
(pInstance ==
nullptr
)
184
{
185
G4double
mass
= 134.1305 *
g
/
Avogadro
*
c_squared
;
186
pInstance =
new
G4MoleculeDefinition
(name, mass, 0 * (
m
*
m
/
s
), 0,
187
5, 2.9 *
angstrom
,
// radius
188
2
// number of atoms
189
);
190
}
191
fgInstance
=
reinterpret_cast<
G4Deoxyribose
*
>
(pInstance);
192
return
fgInstance
;
193
}
194
195
G4Phosphate
*
G4Phosphate::fgInstance
=
nullptr
;
196
197
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
198
199
G4Phosphate
*
G4Phosphate::Definition
()
200
{
201
const
G4String
name
=
"Phosphate"
;
202
if
(
fgInstance
!=
nullptr
)
203
{
204
return
fgInstance
;
205
}
206
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
207
G4ParticleDefinition
* pInstance = pTable->
FindParticle
(name);
208
209
if
(pInstance ==
nullptr
)
210
{
211
G4double
mass
= 94.9714 *
g
/
Avogadro
*
c_squared
;
212
pInstance =
new
G4MoleculeDefinition
(name, mass, 0 * (
m
*
m
/
s
), 0,
213
5, 2.7 *
angstrom
,
// radius
214
2
// number of atoms
215
);
216
}
217
fgInstance
=
reinterpret_cast<
G4Phosphate
*
>
(pInstance);
218
return
fgInstance
;
219
}
220
221
G4Adenine
*
G4Adenine::fgInstance
=
nullptr
;
222
223
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
224
225
G4Adenine
*
G4Adenine::Definition
()
226
{
227
const
G4String
name
=
"Adenine"
;
228
if
(
fgInstance
!=
nullptr
)
229
{
230
return
fgInstance
;
231
}
232
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
233
G4ParticleDefinition
* pInstance = pTable->
FindParticle
(name);
234
235
if
(pInstance ==
nullptr
)
236
{
237
G4double
mass
= 135.1267 *
g
/
Avogadro
*
c_squared
;
238
pInstance =
new
G4MoleculeDefinition
(name, mass, 0 * (
m
*
m
/
s
), 0,
239
5, 3 *
angstrom
,
// radius
240
1
// number of atoms
241
);
242
}
243
fgInstance
=
reinterpret_cast<
G4Adenine
*
>
(pInstance);
244
return
fgInstance
;
245
}
246
247
G4Guanine
*
G4Guanine::fgInstance
=
nullptr
;
248
249
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
250
251
G4Guanine
*
G4Guanine::Definition
()
252
{
253
const
G4String
name
=
"Guanine"
;
254
if
(
fgInstance
!=
nullptr
)
255
{
256
return
fgInstance
;
257
}
258
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
259
G4ParticleDefinition
* pInstance = pTable->
FindParticle
(name);
260
261
if
(pInstance ==
nullptr
)
262
{
263
G4double
mass
= 151.1261 *
g
/
Avogadro
*
c_squared
;
264
pInstance =
new
G4MoleculeDefinition
(name, mass, 0 * (
m
*
m
/
s
), 0,
265
5, 3 *
angstrom
,
// radius
266
1
// number of atoms
267
);
268
269
}
270
271
fgInstance
=
reinterpret_cast<
G4Guanine
*
>
(pInstance);
272
return
fgInstance
;
273
}
274
275
G4Thymine
*
G4Thymine::fgInstance
=
nullptr
;
276
277
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
278
279
G4Thymine
*
G4Thymine::Definition
()
280
{
281
const
G4String
name
=
"Thymine"
;
282
if
(
fgInstance
!=
nullptr
)
283
{
284
return
fgInstance
;
285
}
286
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
287
G4ParticleDefinition
* pInstance = pTable->
FindParticle
(name);
288
289
if
(pInstance ==
nullptr
)
290
{
291
G4double
mass
= 126.1133 *
g
/
Avogadro
*
c_squared
;
292
pInstance =
new
G4MoleculeDefinition
(name, mass, 0 * (
m
*
m
/
s
), 0,
293
5, 3 *
angstrom
,
// radius
294
1
// number of atoms
295
);
296
}
297
fgInstance
=
reinterpret_cast<
G4Thymine
*
>
(pInstance);
298
return
fgInstance
;
299
}
300
301
G4Cytosine
*
G4Cytosine::fgInstance
=
nullptr
;
302
303
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
304
305
G4Cytosine
*
G4Cytosine::Definition
()
306
{
307
const
G4String
name
=
"Cytosine"
;
308
if
(
fgInstance
!=
nullptr
)
309
{
310
return
fgInstance
;
311
}
312
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
313
G4ParticleDefinition
* pInstance = pTable->
FindParticle
(name);
314
315
if
(pInstance ==
nullptr
)
316
{
317
G4double
mass
= 111.102 *
g
/
Avogadro
*
c_squared
;
318
pInstance =
new
G4MoleculeDefinition
(name, mass, 0 * (
m
*
m
/
s
), 0,
319
5, 3 *
angstrom
,
// radius
320
1
// number of atoms
321
);
322
}
323
fgInstance
=
reinterpret_cast<
G4Cytosine
*
>
(pInstance);
324
return
fgInstance
;
325
}
326
327
G4ModifiedHistone
*
G4ModifiedHistone::fgInstance
= 0;
328
329
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
330
331
G4ModifiedHistone
*
G4ModifiedHistone::Definition
()
332
{
333
const
G4String
name
=
"Modified_Histone"
;
334
if
(
fgInstance
!=
nullptr
)
335
{
336
return
fgInstance
;
337
}
338
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
339
G4ParticleDefinition
* pInstance = pTable->
FindParticle
(name);
340
341
if
(pInstance ==
nullptr
)
342
{
343
G4double
mass
= 1.4e4 *
g
/
Avogadro
*
c_squared
;
344
pInstance =
new
G4MoleculeDefinition
(name, mass, 0 * (
m
*
m
/
s
), 0,
345
5, 24 *
angstrom
,
// radius
346
1
// number of atoms
347
);
348
}
349
fgInstance
=
reinterpret_cast<
G4ModifiedHistone
*
>
(pInstance);
350
return
fgInstance
;
351
}
352
353
354
G4Histone
*
G4Histone::fgInstance
=
nullptr
;
355
356
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
357
358
G4Histone
*
G4Histone::Definition
()
359
{
360
const
G4String
name
=
"Histone"
;
361
if
(
fgInstance
!=
nullptr
)
362
{
363
return
fgInstance
;
364
}
365
G4ParticleTable
* pTable =
G4ParticleTable::GetParticleTable
();
366
G4ParticleDefinition
* pInstance = pTable->
FindParticle
(name);
367
368
if
(pInstance ==
nullptr
)
369
{
370
G4double
mass
= 1.4e4 *
g
/
Avogadro
*
c_squared
;
//14 kDa in wikipedia
371
pInstance =
new
G4MoleculeDefinition
(name, mass, 0 * (
m
*
m
/
s
), 0,
372
5, 24 *
angstrom
,
// radius
373
1
// number of atoms
374
);
375
}
376
fgInstance
=
reinterpret_cast<
G4Histone
*
>
(pInstance);
377
return
fgInstance
;
378
}
geant4
tree
geant4-10.6-release
source
processes
electromagnetic
dna
molecules
types
src
G4DNAMolecule.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:30
using
1.8.2 with
ECCE GitHub integration