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
NeuronLoadDataFile.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file NeuronLoadDataFile.hh
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
// This example is provided by the Geant4-DNA collaboration
27
// Any report or published results obtained using the Geant4-DNA software
28
// shall cite the following Geant4-DNA collaboration publication:
29
// Med. Phys. 37 (2010) 4692-4708
30
// and papers
31
// M. Batmunkh et al. J Radiat Res Appl Sci 8 (2015) 498-507
32
// O. Belov et al. Physica Medica 32 (2016) 1510-1520
33
// The Geant4-DNA web site is available at http://geant4-dna.org
34
//
35
// -------------------------------------------------------------------
36
// November 2016
37
// -------------------------------------------------------------------
38
//
39
//
42
43
#ifndef NeuronLoadDataFile_H
44
#define NeuronLoadDataFile_H 1
45
46
#include "
G4ThreeVector.hh
"
47
#include "
G4RotationMatrix.hh
"
48
#include "
G4VSolid.hh
"
49
#include "
G4Material.hh
"
50
#include "
G4VisAttributes.hh
"
51
#include "
G4Colour.hh
"
52
#include "
G4SystemOfUnits.hh
"
53
// Geant4 Constructive Solid Geometry (CSG)
54
#include "
G4VPVParameterisation.hh
"
55
#include "
G4Box.hh
"
// bounding volume
56
#include "
G4Tubs.hh
"
// axon, dendrite compartments
57
#include "
G4Sphere.hh
"
// soma compartments
58
#include "
G4Ellipsoid.hh
"
// soma compartments
59
#include "
G4Trd.hh
"
60
#include "
G4Trap.hh
"
61
#include "
G4Cons.hh
"
// stubby spine, filopodia
62
#include "
G4EllipticalTube.hh
"
63
#include "
G4EllipticalCone.hh
"
64
#include "
G4Orb.hh
"
// mushroom spine
65
#include "
G4Torus.hh
"
66
#include "
G4Para.hh
"
67
#include "
G4Polycone.hh
"
68
#include "
G4Polyhedra.hh
"
69
#include "
G4Hype.hh
"
// thin spine neck
70
#include "
G4Tet.hh
"
71
#include "
G4TwistedBox.hh
"
72
#include "
G4TwistedTrap.hh
"
73
#include "
G4TwistedTrd.hh
"
74
#include "
G4TwistedTubs.hh
"
75
76
//class NeuronLoadMessenger;
77
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
78
79
class
NeuronLoadDataFile
80
81
// default - G4PVPlacement volume
82
// if use G4PVParameterised volume,
83
// please enable following G4VPVParameterisation class!
84
//: public G4VPVParameterisation
85
86
{
87
public
:
88
NeuronLoadDataFile
();
89
virtual
90
~NeuronLoadDataFile
();
91
92
void
SingleNeuronSWCfile
(
const
G4String
&
filename
);
93
void
NeuralNetworkDATAfile
(
const
G4String
& filename);
94
95
// position, rotation of solids
96
void
ComputeTransformation
(
const
G4int
copyNo,
97
G4VPhysicalVolume
* physVol)
const
;
98
// Solid options: sphere or cylinder ...
99
//G4VSolid* ComputeSolid (const G4int copyNo,
100
// G4VPhysicalVolume* physiVol);
101
// and ... for solids!
102
void
ComputeDimensions
(
G4Tubs
& cylinderComp,
const
G4int
copyNo,
103
const
G4VPhysicalVolume
*)
const
;
104
void
ComputeDimensions
(
G4Sphere
& ,
const
G4int
,
105
const
G4VPhysicalVolume
*)
const
{}
106
void
ComputeDimensions
(
G4Ellipsoid
& ,
const
G4int
,
107
const
G4VPhysicalVolume
*)
const
{}
108
void
ComputeDimensions
(
G4Box
&,
const
G4int
,
109
const
G4VPhysicalVolume
*)
const
{}
110
void
ComputeDimensions
(
G4Cons
&,
const
G4int
,
111
const
G4VPhysicalVolume
*)
const
{}
112
void
ComputeDimensions
(
G4Hype
&,
113
const
G4int
,
114
const
G4VPhysicalVolume
*)
const
{}
115
void
ComputeDimensions
(
G4Trd
&,
116
const
G4int
,
117
const
G4VPhysicalVolume
*)
const
{}
118
void
ComputeDimensions
(
G4Trap
&,
119
const
G4int
,
120
const
G4VPhysicalVolume
*)
const
{}
121
void
ComputeDimensions
(
G4Orb
&,
122
const
G4int
,
123
const
G4VPhysicalVolume
*)
const
{}
124
void
ComputeDimensions
(
G4Torus
&,
125
const
G4int
,
126
const
G4VPhysicalVolume
*)
const
{}
127
void
ComputeDimensions
(
G4Para
&,
128
const
G4int
,
129
const
G4VPhysicalVolume
*)
const
{}
130
void
ComputeDimensions
(
G4Polycone
&,
131
const
G4int
,
132
const
G4VPhysicalVolume
*)
const
{}
133
void
ComputeDimensions
(
G4Polyhedra
&,
134
const
G4int
,
135
const
G4VPhysicalVolume
*)
const
{}
136
137
G4double
GetwidthB
() {
return
fwidthB
;}
138
G4double
GetheightB
() {
return
fheightB
;}
139
G4double
GetdepthB
() {
return
fdepthB
;}
140
G4double
GetdiagnlLength
() {
return
fdiagnlLength
;}
141
G4double
GetshiftX
() {
return
fshiftX
;}
142
G4double
GetshiftY
() {
return
fshiftY
;}
143
G4double
GetshiftZ
() {
return
fshiftZ
;}
144
G4double
GetTypeN
(
G4int
i) {
return
fTypeN
[i];}
145
146
G4int
GetnbSomacomp
() {
return
fnbSomacomp
;}
147
G4double
GetMassSomacomp
(
G4int
i) {
return
fMassSomacomp
[i];}
148
G4double
GetMassSomaTot
() {
return
fMassSomaTot
;}
149
G4ThreeVector
GetPosSomacomp
(
G4int
i) {
return
fPosSomacomp
[i];}
150
G4double
GetRadSomacomp
(
G4int
i) {
return
fRadSomacomp
[i];}
151
152
G4int
GetnbDendritecomp
() {
return
fnbDendritecomp
;}
153
G4double
GetMassDendcomp
(
G4int
i) {
return
fMassDendcomp
[i];}
154
G4double
GetMassDendTot
() {
return
fMassDendTot
;}
155
G4ThreeVector
GetPosDendcomp
(
G4int
i) {
return
fPosDendcomp
[i];}
156
G4double
GetRadDendcomp
(
G4int
i) {
return
fRadDendcomp
[i];}
157
G4double
GetHeightDendcomp
(
G4int
i) {
return
fHeightDendcomp
[i];}
158
G4double
GetDistADendSoma
(
G4int
i) {
return
fDistADendSoma
[i];}
159
G4double
GetDistBDendSoma
(
G4int
i) {
return
fDistBDendSoma
[i];}
160
G4RotationMatrix
GetRotDendcomp
(
G4int
i) {
return
fRotDendcomp
[i];}
161
162
G4int
GetnbAxoncomp
() {
return
fnbAxoncomp
;}
163
G4double
GetMassAxoncomp
(
G4int
i) {
return
fMassAxoncomp
[i];}
164
G4double
GetMassAxonTot
() {
return
fMassAxonTot
;}
165
G4ThreeVector
GetPosAxoncomp
(
G4int
i) {
return
fPosAxoncomp
[i];}
166
G4double
GetRadAxoncomp
(
G4int
i) {
return
fRadAxoncomp
[i];}
167
G4double
GetHeightAxoncomp
(
G4int
i) {
return
fHeightAxoncomp
[i];}
168
G4double
GetDistAxonsoma
(
G4int
i) {
return
fDistAxonsoma
[i];}
169
G4RotationMatrix
GetRotAxoncomp
(
G4int
i) {
return
fRotAxoncomp
[i];}
170
171
G4int
GetnbSpinecomp
() {
return
fnbSpinecomp
;}
172
G4double
GetMassSpinecomp
(
G4int
i) {
return
fMassSpinecomp
[i];}
173
G4double
GetMassSpineTot
() {
return
fMassSpineTot
;}
174
G4ThreeVector
GetPosSpinecomp
(
G4int
i) {
return
fPosSpinecomp
[i];}
175
G4double
GetRadSpinecomp
(
G4int
i) {
return
fRadSpinecomp
[i];}
176
G4double
GetHeightSpinecomp
(
G4int
i) {
return
fHeightSpinecomp
[i];}
177
G4double
GetDistSpinesoma
(
G4int
i) {
return
fDistSpinesoma
[i];}
178
G4RotationMatrix
GetRotSpinecomp
(
G4int
i) {
return
fRotSpinecomp
[i];}
179
180
G4int
GetnbNeuroncomp
() {
return
fnbNeuroncomp
;}
181
182
G4double
GetTotVolNeuron
() {
return
fTotVolNeuron
;}
183
G4double
GetTotSurfNeuron
() {
return
fTotSurfNeuron
;}
184
G4double
GetTotMassNeuron
() {
return
fTotMassNeuron
;}
185
G4double
GetTotVolSlice
() {
return
fTotVolSlice
;}
186
G4double
GetTotSurfSlice
() {
return
fTotSurfSlice
;}
187
G4double
GetTotMassSlice
() {
return
fTotMassSlice
;}
188
G4double
GetTotVolMedium
() {
return
fTotVolMedium
;}
189
G4double
GetTotSurfMedium
() {
return
fTotSurfMedium
;}
190
G4double
GetTotMassMedium
() {
return
fTotMassMedium
;}
191
192
G4VisAttributes
GetSomaColour
() {
return
fSomaColour
;}
193
G4VisAttributes
GetDendColour
() {
return
fDendColour
;}
194
G4VisAttributes
GetAxonColour
() {
return
fAxonColour
;}
195
G4VisAttributes
GetSpineColour
() {
return
fSpineColour
;}
196
G4VisAttributes
GetNeuronColour
() {
return
fNeuronColour
;}
197
198
private
:
199
201
G4String
fNeuronFileNameSWC
;
202
G4String
fNeuronFileNameDATA
;
203
204
G4int
fnbSomacomp
;
205
G4int
fnbDendritecomp
;
206
G4int
fnbAxoncomp
;
207
G4int
fnbSpinecomp
;
208
G4int
fnbNeuroncomp
;
209
210
G4int
*
fnNn
;
211
G4int
*
fpNn
;
212
//G4int * ftypeC;
213
G4int
*
fnNd
;
214
G4int
*
fpNd
;
215
G4int
*
fnNa
;
216
G4int
*
fpNa
;
217
G4int
*
fTypeN
;
218
219
G4double
fshiftX
,
fshiftY
,
fshiftZ
;
// shift in oder to center VOLUME!
220
G4double
fwidthB
;
221
G4double
fheightB
;
222
G4double
fdepthB
;
223
G4double
fdiagnlLength
;
// diagonal and diameter
224
225
G4ThreeVector
*
fPosSomacomp
;
226
G4double
*
fRadSomacomp
;
227
G4double
*
fMassSomacomp
;
228
G4double
fMassSomaTot
;
229
230
G4double
*
fRadDendcomp
;
231
G4double
*
fDistADendSoma
;
232
G4double
*
fDistBDendSoma
;
233
G4double
*
fHeightDendcomp
;
234
G4double
*
fMassDendcomp
;
235
G4double
fMassDendTot
;
236
G4ThreeVector
*
fPosDendcomp
;
// VOXEL COORDINATES OF DENDRITES
237
G4RotationMatrix
*
fRotDendcomp
;
// RotationMatrix with Inverse
238
239
G4double
*
fRadAxoncomp
;
240
G4double
*
fHeightAxoncomp
;
241
G4double
*
fDistAxonsoma
;
242
G4double
*
fMassAxoncomp
;
243
G4double
fMassAxonTot
;
244
G4ThreeVector
*
fPosAxoncomp
;
// VOXEL COORDINATES OF AXON
245
G4RotationMatrix
*
fRotAxoncomp
;
246
247
G4double
*
fRadSpinecomp
;
248
G4double
*
fHeightSpinecomp
;
249
G4double
*
fDistSpinesoma
;
250
G4double
*
fMassSpinecomp
;
251
G4double
fMassSpineTot
;
252
G4ThreeVector
*
fPosSpinecomp
;
// VOXEL COORDINATES OF SPINE
253
G4RotationMatrix
*
fRotSpinecomp
;
254
255
G4double
*
fRadNeuroncomp
;
256
G4double
*
fHeightNeuroncomp
;
257
G4double
*
fDistNeuronsoma
;
258
G4double
*
fMassNeuroncomp
;
259
//G4double fMassNeuronTot ;
260
G4ThreeVector
*
fPosNeuroncomp
;
// VOXEL COORDINATES OF Neuron
261
G4RotationMatrix
*
fRotNeuroncomp
;
262
263
G4double
fTotVolNeuron
;
264
G4double
fTotSurfNeuron
;
265
G4double
fTotMassNeuron
;
266
G4double
fTotVolSlice
;
267
G4double
fTotSurfSlice
;
268
G4double
fTotMassSlice
;
269
G4double
fTotVolMedium
;
270
G4double
fTotSurfMedium
;
271
G4double
fTotMassMedium
;
272
273
G4VisAttributes
*
fSomaColour
;
274
G4VisAttributes
*
fDendColour
;
275
G4VisAttributes
*
fAxonColour
;
276
G4VisAttributes
*
fSpineColour
;
277
G4VisAttributes
*
fNeuronColour
;
278
279
//G4Sphere* fsphereComp;
280
//G4Tubs* fcylinderConp;
281
282
//NeuronLoadMessenger * fpNeuronMessenger;
283
284
};
285
286
#endif
287
288
geant4
tree
geant4-10.6-release
examples
extended
medical
dna
neuron
include
NeuronLoadDataFile.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:08
using
1.8.2 with
ECCE GitHub integration