Loading...
Searching...
No Matches
DicomNestedParamDetectorConstruction.cc
Go to the documentation of this file.
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/// \file medical/DICOM/src/DicomNestedParamDetectorConstruction.cc
28/// \brief Implementation of the DicomNestedParamDetectorConstruction class
29//
30// History:
31// Pedro Arce
32//
33//*******************************************************
34
35#include "globals.hh"
36
37#include "G4Box.hh"
38#include "G4LogicalVolume.hh"
39#include "G4VPhysicalVolume.hh"
40#include "G4PVPlacement.hh"
41#include "G4PVParameterised.hh"
42
45
46#include "G4VisAttributes.hh"
47
48//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
53
54//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
58
59//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
61{
62#ifdef G4VERBOSE
63 G4cout << "DicomNestedParamDetectorConstruction::ConstructPhantom "
64 << G4endl;
65#endif
66
67 //----- Replication of Water Phantom Volume.
68 //--- Y Slice
69 G4String yRepName("RepY");
70 G4VSolid* solYRep = new G4Box(yRepName,fNoVoxelsX*fVoxelHalfDimX,
73 G4LogicalVolume* logYRep = new G4LogicalVolume(solYRep,fAir,yRepName);
74 new G4PVReplica(yRepName,logYRep,fContainer_logic,kYAxis,
76
77 logYRep->SetVisAttributes(new G4VisAttributes(G4VisAttributes::GetInvisible()));
78
79 //--- X Slice
80 G4String xRepName("RepX");
81 G4VSolid* solXRep = new G4Box(xRepName,fVoxelHalfDimX,fVoxelHalfDimY,
83 G4LogicalVolume* logXRep = new G4LogicalVolume(solXRep,fAir,xRepName);
84 new G4PVReplica(xRepName,logXRep,logYRep,kXAxis,fNoVoxelsX,fVoxelHalfDimX*2.);
85
86 logXRep->SetVisAttributes(new G4VisAttributes(G4VisAttributes::GetInvisible()));
87
88 //----- Voxel solid and logical volumes
89 //--- Z Slice
90 G4VSolid* solVoxel = new G4Box("phantom",fVoxelHalfDimX,
92 G4LogicalVolume* logicVoxel = new G4LogicalVolume(solVoxel,fAir,"phantom");
93
94 logicVoxel->
95 SetVisAttributes(new G4VisAttributes(G4VisAttributes::GetInvisible()));
96
97 //
98 // Parameterisation for transformation of voxels.
99 // (voxel size is fixed in this example.
100 // e.g. nested parameterisation handles material
101 // and transfomation of voxels.)
102 G4ThreeVector voxelSize(fVoxelHalfDimX,fVoxelHalfDimY,fVoxelHalfDimZ);
105
106 new G4PVParameterised("phantom", // their name
107 logicVoxel, // their logical volume
108 logXRep, // Mother logical volume
109 kZAxis, // Are placed along this axis
110 //kUndefined,
111 // Are placed along this axis
112 fNoVoxelsZ, // Number of cells
113 param); // Parameterisation.
114
117
118 //phantom_phys->SetRegularStructureId(0);
119
120 // Z logical volume
121 SetScorer(logicVoxel);
122
123}
Definition of the DicomNestedParamDetectorConstruction class.
Definition of the DicomNestedPhantomParameterisation class.
std::vector< G4Material * > fMaterials
void SetScorer(G4LogicalVolume *voxel_logic)
Implements a G4VNestedParameterisation.
void SetNoVoxels(unsigned int nx, unsigned int ny, unsigned int nz)

Applications | User Support | Publications | Collaboration