Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // This example is provided by the Geant4-DNA 27 // Any report or published results obtained us 28 // shall cite the following Geant4-DNA collabo 29 // Med. Phys. 37 (2010) 4692-4708 30 // The Geant4-DNA web site is available at htt 31 // 32 // If you use this example, please cite the fo 33 // Rad. Prot. Dos. 133 (2009) 2-11 34 35 #ifndef CellParameterisation_H 36 #define CellParameterisation_H 1 37 38 #include "G4VPVParameterisation.hh" 39 #include "G4VisAttributes.hh" 40 41 //....oooOO0OOooo........oooOO0OOooo........oo 42 43 class CellParameterisation : public G4VPVParam 44 { 45 public: 46 47 explicit CellParameterisation 48 (G4Material* nucleus1, G4Material* cytopla 49 G4Material* nucleus2, G4Material* cytopla 50 G4Material* nucleus3, G4Material* cytopla 51 ); 52 53 ~CellParameterisation() override; 54 55 void ComputeTransformation (const G4int co 56 57 void ComputeDimensions(G4Box&, 58 const G4int, 59 const G4VPhysicalVolume* ) const ove 60 61 void ComputeDimensions(G4Tubs &, 62 const G4int 63 const G4VPh 64 65 void ComputeDimensions(G4Trd &, 66 const G4int 67 const G4VPh 68 69 void ComputeDimensions(G4Trap &, 70 const G4int 71 const G4VPh 72 73 void ComputeDimensions(G4Cons &, 74 const G4int 75 const G4VPh 76 77 void ComputeDimensions(G4Sphere &, 78 const G4int 79 const G4VPh 80 81 void ComputeDimensions(G4Ellipsoid &, 82 const G4int 83 const G4VPh 84 85 void ComputeDimensions(G4Orb &, 86 const G4int 87 const G4VPh 88 89 void ComputeDimensions(G4Torus &, 90 const G4int 91 const G4VPh 92 93 void ComputeDimensions(G4Para &, 94 const G4int 95 const G4VPh 96 97 void ComputeDimensions(G4Polycone &, 98 const G4int 99 const G4VPh 100 101 void ComputeDimensions(G4Polyhedra &, 102 const G4int 103 const G4VPh 104 105 void ComputeDimensions(G4Hype &, 106 const G4int 107 const G4VPh 108 109 G4int GetNoBoxes() const {return fPhantomT 110 111 G4Material* ComputeMaterial(const G4int co 112 G4VPhysi 113 const G4VTouch 114 115 // NEW 116 117 G4int GetPhantomTotalPixels() const {r 118 G4int GetNucleusTotalPixels() const {r 119 G4int GetCytoplasmTotalPixels() const {r 120 G4double GetPixelSizeX() const {r 121 G4double GetPixelSizeY() const {r 122 G4double GetPixelSizeZ() const {r 123 G4double GetCytoplasmMass() const {r 124 G4double GetNucleusMass() const {r 125 126 G4ThreeVector GetVoxelThreeVector(G4int i) 127 G4double GetMaterialVector(G4int i) 128 G4double GetMassVector(G4int i) 129 G4int GetTissueType(G4int i) 130 131 // SINGLETON 132 133 static CellParameterisation * Instance() 134 { 135 return gInstance; 136 } 137 138 private: 139 static CellParameterisation* gInstance; 140 141 G4Material * fNucleusMaterial1; 142 G4Material * fCytoplasmMaterial1; 143 G4Material * fNucleusMaterial2; 144 G4Material * fCytoplasmMaterial2; 145 G4Material * fNucleusMaterial3; 146 G4Material * fCytoplasmMaterial3; 147 148 G4VisAttributes * fNucleusAttributes1; 149 G4VisAttributes * fCytoplasmAttributes1; 150 G4VisAttributes * fNucleusAttributes2; 151 G4VisAttributes * fCytoplasmAttributes2; 152 G4VisAttributes * fNucleusAttributes3; 153 G4VisAttributes * fCytoplasmAttributes3; 154 155 G4ThreeVector * fMapCell; // VOXEL COOR 156 157 G4double * fMaterial; // MATERIAL 158 G4double * fMass; // DENSITY RE 159 G4double fDimCellBoxX; 160 G4double fDimCellBoxY; 161 G4double fDimCellBoxZ; 162 G4double fNucleusMass; 163 G4double fCytoplasmMass; 164 165 G4int * fTissueType; // DENSITY RE 166 G4int fPhantomTotalPixels; 167 G4int fNucleusTotalPixels; 168 G4int fCytoplasmTotalPixels; 169 }; 170 #endif 171 172 173