ECCE @ EIC Software
 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 
80 
81 // default - G4PVPlacement volume
82 // if use G4PVParameterised volume,
83 // please enable following G4VPVParameterisation class!
84 //: public G4VPVParameterisation
85 
86 {
87  public:
89  virtual
91 
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 ;
105  const G4VPhysicalVolume*) const {}
107  const G4VPhysicalVolume*) const {}
109  const G4VPhysicalVolume*) const {}
111  const G4VPhysicalVolume*) const {}
113  const G4int,
114  const G4VPhysicalVolume *) const {}
116  const G4int,
117  const G4VPhysicalVolume *) const {}
119  const G4int,
120  const G4VPhysicalVolume *) const {}
122  const G4int,
123  const G4VPhysicalVolume *) const {}
125  const G4int,
126  const G4VPhysicalVolume *) const {}
128  const G4int,
129  const G4VPhysicalVolume *) const {}
131  const G4int,
132  const G4VPhysicalVolume *) const {}
134  const G4int,
135  const G4VPhysicalVolume *) const {}
136 
137  G4double GetwidthB () {return fwidthB;}
139  G4double GetdepthB () {return fdepthB;}
141  G4double GetshiftX () {return fshiftX;}
142  G4double GetshiftY () {return fshiftY;}
143  G4double GetshiftZ () {return fshiftZ;}
144  G4double GetTypeN (G4int i) {return fTypeN[i];}
145 
151 
161 
170 
179 
181 
191 
197 
198  private:
199 
203 
209 
212  //G4int * ftypeC;
218 
219  G4double fshiftX, fshiftY, fshiftZ; // shift in oder to center VOLUME!
223  G4double fdiagnlLength; // diagonal and diameter
224 
229 
236  G4ThreeVector * fPosDendcomp ; // VOXEL COORDINATES OF DENDRITES
237  G4RotationMatrix * fRotDendcomp ; // RotationMatrix with Inverse
238 
244  G4ThreeVector * fPosAxoncomp ; // VOXEL COORDINATES OF AXON
246 
252  G4ThreeVector * fPosSpinecomp ; // VOXEL COORDINATES OF SPINE
254 
259  //G4double fMassNeuronTot ;
260  G4ThreeVector * fPosNeuroncomp ; // VOXEL COORDINATES OF Neuron
262 
272 
278 
279  //G4Sphere* fsphereComp;
280  //G4Tubs* fcylinderConp;
281 
282  //NeuronLoadMessenger * fpNeuronMessenger;
283 
284 };
285 
286 #endif
287 
288