Presentation is loading. Please wait.

Presentation is loading. Please wait.

Examples of GEANT4 application in medical diagnostic energy range

Similar presentations


Presentation on theme: "Examples of GEANT4 application in medical diagnostic energy range"— Presentation transcript:

1 Examples of GEANT4 application in medical diagnostic energy range
G. Mettivier, F. Di Lillo, A. Sarno, P. Russo Medical Physics Research Laboratory Dipartimento di Fisica “Ettore Pancini” Università di Napoli Federico II INFN, Sezione di Napoli Good morning, I am Giovanni Mettivier and I work with the Medical Physics Research Group of the Dipartimento di Fisica … Prof. Giovanni Mettivier, PhD XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

2 MC simulations for X-ray breast imaging
Total Volume irradiation Full Field Digital Mammography (dosimetry) Digital Breast Tomosynthesis (dosimetry) Cone-beam breast CT (Computed tomography) (image quality and dosimetry) Partial Volume irradiation Magnification/spot Mammography (dosimetry) Synchrotron radiation breast CT (image quality and dosimetry) Personalized dosimetry Synchrotron radiation rotational radiotherapy (dosimetry) Our group works mainly on the study of instrumentation and acquisition techniques in the field of medical imaging in the diagnostic energy range i.e. from 20 to 120 keV. At the moment our interest in concentrated on the breast medical imaging and in this slide are reported all the different techniques that we are studing and in our stidies we use aslo MC simulations in particular for the evalutation of the dose. I divide these techniques in two group «total Volume irradaition» and «partial Volume irradiation»…. Another two field where we use the MC similation are the XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

3 Total volume irradiation - FFDM
The mammographic exam consists on the realization of two planar x-ray images of the compressed breast. The used source is a policromatic X-ray tube and the images are acquired in CC and MLO geometry. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

4 Mammography - Geometry
In this slice is reported a screcht of the geometry used in a CC projection and used tipically in the MC simulations. The body is simulated as a big cube of water and the breast is simulated as a semicylinder with a radium r surrounded by a layer of skin tipically of 0.4 mm.g is the air gap, SID is the source to imager distance and t is the thichness of the compressed breast. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

5 Mammography - dosimetry
Mean Glandular Dose MGD = 𝐸 𝑑𝑒𝑝 𝐺 𝑚𝑎𝑠𝑠 𝑓 𝑔 = K DgN K (mGy) Kerma in air- > Entrance Surface Air Kerma (without backscattering) DgN are calculated as a function of the weight glandular fraction using MC simulation USA 3 mGy** Europa 2.5 mGy* *D. R. Dance, “Monte Carlo calculation of conversion factors for the estimation of mean glandular breast dose,” Phys. Med. Biol., vol. 35, pp. 1211–1219, 1980. **R. van Engen et al., “Addendum on Digital Mammography,” European Guidelines for Quality Assurance in Mammography Screening, ch. 3, 1.0 ed. , European Reference Organization for Quality Assured Breast Screening and Diagnostic Services, 2003. In our simulations we are interested to study the influence of the hardware, geometry and settings parameters on the value of the dose to the breast and its distribution. In mammography the dose is evaluated as the mean glandular dose. This value is obtained from the measure of the ESAK, the air kerma measured on the first surface of the breast without compression plate or breast and the DgN coefficients that are obtained from MC simulaions. The reference values (tha max value) for a single mammography are XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

6 Mammography - Dosimetry
𝑀𝐺𝐷= 𝐸 𝑑𝑒𝑝 𝐺 𝑚𝑎𝑠𝑠 𝑔 𝑓 𝑔 The values of the DgN as you can see from these graph depends on the Energy of the simulated photon, the glandular fraction and the dimensions of the breast. In these graph are shown an example of the calculated DgN as a function of the tube KV for two different glandularity. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

7 Mammography - Dosimetry
These values can depends also on the simulated physics. In our pubblised study on PMB we studied the influence of four different physics library on the value of the attenuation coefficients. In these graphs are reported the relative difference between the simulated and the NIST tabuled value. You can see that the difference goes from 2/3 percent to 18 percent and that the EM sstandard provodies the biggest differnces. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

8 Mammography - Dosimetry
In this graph are reported the simulated DgN with 4 different physics library with the data reported by Boone that represent the reference for the American Standard. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

9 Mammography - Dosimetry
Energy Range (keV) Fit Equation Parameters Value 1-4 (a/(xb+c))+d a= b= c= d= 4-10 (a/(b+c·xd))+e a= b= c= d= e= 10-20 (a/(b+c·x3))+d+e·x a= b= c= d= e= 20-35 a= b= c= d= e= 35-50 (a/(b+c·x3))+d a=2.6947·106 b= ·107 c= d= In order to correct these difference we evaluate different fitting curve for interval of 5 keV. Energy Range (keV) Fit Equation Parameters Value 1-4 (a/(xb+c))+d a= b= c= d= 4-10 (a/(b+c·xd))+e a= b= c= d= e= 10-20 (a/(b+c·x3))+d+e·x a= b= c= d= e= 20-35 a= b= c= d= e= 35-50 (a/(b+c·x3))+d a= b= c= d= XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

10 Total volume irradiation - FFDM
Fig. Percentage deviation in DgN(E) from the case in which bremsstrahlung processes are simulated and a low cutoff electron energy is set, for the cases in which the bremsstrahlung processes are not included in the MC simulations. Breast thickness = 5 cm; compression paddles = 2 mm PMMA; skin thickness = 1.45 mm. Another effect that we stadied was the influence of the inclusion/exclusion of the bremsstralung effect in the simulation. In the past simulation this effect was exclused and we find that this exlusion may result in a difference of 1% in the case of a 0% glandurar fraction XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

11 Total volume irradiation - FFDM
Fig. Influence of the thickness of the top compression paddle on the MC calculation of DgN(E) for a PMMA paddle thickness in the range 15 m when the incident photon angle on the scoring surface is considered in the air kerma calculation. The deviation is evaluated as the ratio to the results obtained without the top paddle. Breast glandular fraction = 20%; compressed breast thickness = 5 cm: cone-beam irradiation. The breast was in place in the beam path when evaluating the glandular dose and the incident air kerma. After the physics we studied the influence of the presence of the compression plate and of its thickness. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

12 Total volume irradiation - FFDM
From the recent studies of the images of the 3D breast obtained with the breast CT imaging prototypes the correct size of the skin seems to be 1,45 mm instead of 5 mm. Fig. MGD per photon to a breast of 20% glandular fraction, due to the primary photons (a) and to the secondary photons (b) for skin thicknesses of 1.45 mm and 5 mm. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

13 Total volume irradiation - DBT
The mammography today is the gold standard in the fight again the breast tumor but however this exams presents same limitation. The principal is due to the tissue sovrapposition related to the projection of a 3D structure on a 2D plane. In order to overcome this limitations new 3D techniques were proposed. The first is the Digital breast tomosintesis. In this exam we have the same geometry of the mammography but the X-ray tube is moved on an arch and different projections are acquired. For a given compressed breast, glandular dose per view depends on scan angle and spectrum Few experimental data available for dose distribution in the irradiated breast XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

14 Total volume irradiation - DBT
This allows to reconstruct with appropriate algorithm different layers of the breast. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

15 Total volume irradiation - DBT
Also in this case we are interested to the dose and in particular to the dose distribution. Using gafchromic films (particular films that allow the measure of the dose) we measure the dose distribution and compared it with our simulations. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

16 Total volume irradiation - DBT
In these graph are reported the simulated and measured dose profile along the chest-wall at two different distances XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

17 Total volume irradiation - BCT
The next step was the complete 3D imaging with the dedicated computed tomography. In this exam the patient is in prone position and the breast hangs in a hole in the patient bad. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

18 Total volume irradiation - BCT
more projections Full 3D image reconstruction Absorbed dose ~ 5 mGy The X-ray tube and the detector rotate around the breast on a complete 360 degree acquiring more projections. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

19 Total volume irradiation - BCT
Courtesy of Prof. J. Boone, Univ. California Davis XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

20 Total volume irradiation - BCT
XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

21 Total volume irradiation - BCT
XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

22 Total volume irradiation - BCT
XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

23 Total volume irradiation – Future work
- Validation of the code with standard (TG95) - Definition od the DgN in CBT, DBT and FFDM XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

24 𝒏=𝟏 − 𝜹−𝒊𝜷 Ψ 𝑟 = 𝐸 0 𝑒 𝑖𝑛𝑘𝑟 = 𝐸 0 𝑒 𝑖 1−𝛿 𝑘𝑟 𝑒 −𝛽𝑘𝑟
X-ray phase-contrast imaging attenuation 𝒏=𝟏 − 𝜹−𝒊𝜷 phase shift But we have to remember that the X-rays are electromagnetic wave and that the propagation of an electromagnetic wave through a medium with refractive index n is described by This type of equation where the first and second exponential terms describe the shift in phase and decrease in amplitude of a wave. The refractive index can be written as n = 1-d-ib, where d is related to the phase shift and ib determines the attenuation. Ψ 𝑟 = 𝐸 0 𝑒 𝑖𝑛𝑘𝑟 = 𝐸 0 𝑒 𝑖 1−𝛿 𝑘𝑟 𝑒 −𝛽𝑘𝑟 S.D. Auweter et al., British Inst. Radiol. 2014, doi /bjr Black Sea Conference 2016– 8 June 2016

25 𝐼(𝑧)= 𝐼 0 𝑒 −𝜇∙𝑧 X-ray phase-contrast imaging
In the mammography we detect only the absorption and we obtain image like that. 𝐼(𝑧)= 𝐼 0 𝑒 −𝜇∙𝑧 Black Sea Conference 2016– 8 June 2016

26 In line X-ray phase-contrast imaging
If we are able also to detect the phase map we can abtain image like that where we can see the presence of an enhancment of the visibility of the edge of the object due to the presence of a white and black line. Black Sea Conference 2016– 8 June 2016

27 Partial Volume Irradiation - SyrmaCT
In order to study this type of exam we are involved in a INFN research project called SyrmaCT tha have the aim to realize the first phase-contrast breast CT on a patient. In this experimental setup we have the patient in the same position as in the breast CT but the source is a laminar monochromatic beam. The problem in this case is that we have to move and rotate the patient. The dimension of the beam is only 3 mm and we have to scan all the breast of 9 cm and then 30 rotation. For this we have decide to irradiate only a limtate volume of the breast. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

28 Propagation-based imaging
Sample 1(diameter: 9.4 cm).(a) FBP reconstruction of 1200 projections and (b) 300 projections, (c) SART reconstruction of 300 projections, (d) phase retrieved SART reconstruction of 300 projections. Longo et al., Phys Med Biol 61, 2016

29 Partial Volume Irradiation - SyrmaCT
𝑀𝐺𝐷= 𝐸 𝑑𝑒𝑝 𝐺 𝑚𝑎𝑠𝑠 𝑔 𝑓 𝑔 The problem for the dosimetry is that the MGD is defined as ratio between the deposited energy in the breast and the glandular mass because in the mammography all the breast is irradiated. In this case only the energy is irradiated in only a small part of the breast and we propose to use as mass only the mass in the irradiated volume but in this case we don’t take in account the dose due to the scattered radiation outside the irradiated volume. And we propose another parateer MGDt defined as the ratio between the energy deposited in the whole breast and the mass of the irradiated mass. - Interview on MedicalPhysicsWEB - Featured article XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

30 Partial Volume Irradiation - SpotDM
After this study we have applied the same concept to the spot mammography. This exam is a second level exam where is irradiated only the portion of breast where there is the tumor. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

31 Partial Volume Irradiation - SpotDM
This draft is to show the different simulated geometry from the standard mammography. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

32 Partial Volume Irradiation - SpotDM
Fig. Polyenergetic DgN, DgNV and DgNM for a 20% glandular breast with a thickness of 50 mm (constant thickness compression) for varying compression paddle size. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

33 UCDMC breast scan patient
Personalized dosimetry UCDMC breast scan patient Phantom #5 Volume rendering Axial slice Coronal slice Sagittal slice XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

34 Synchrotron radiation rotational radiotherapy
Energy: 178 keV Phantom dimension: 14 cm diameter, 9 cm heigh Material: polyethilen Beam dimension: 1, 7, 14 cm x (direction) XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

35 Exercise: a realistic X-ray imaging simulation
Now, we can make a little exercise. You have a XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

36 Main.cc Random engine Pseudo-random number generators (PRNG) use in MC simulations are necessary to generate reliable representations of the physical imaging environment. The HepRandom module consists of classes implementing different random engines and different random distributions Ranecu engine Mersenne/Twister engine HepJamesRandom engine #include "Randomize.hh" CLHEP::HepRandom::setTheEngine(new CLHEP::HepJamesRandom); if(argc>2){ long indice = strtol(argv[2],NULL,10); CLHEP::HepRandom::setTheSeed(time(NULL)+indice); } else{ CLHEP::HepRandom::setTheSeed(time(NULL)); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

37 Main.cc Run Manager G4RunManager * runManager = new G4RunManager;
DetectorConstruction* detector = new DetectorConstruction; //Setup descriction runManager->SetUserInitialization(detector); PhysicsList* physics = new PhysicsList; // Used Physic List runManager->SetUserInitialization(physics); PrimaryGeneratorAction* gen_action = new PrimaryGeneratorAction(); runManager->SetUserAction(gen_action); RunAction* run_action = new RunAction; runManager->SetUserAction(run_action); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

38 Main.cc XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

39 Main.cc Geant4 Kernel runManager->Initialize(); #ifdef G4VIS_USE
G4VisManager* visManager = new G4VisExecutive; visManager->Initialize(); #endif XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

40 Main.cc User Interface manager
G4UImanager* UImanager = G4UImanager::GetUIpointer(); if (argc!=1) { // batch mode G4String command = "/control/execute "; G4String fileName = argv[1]; UImanager->ApplyCommand(command+fileName); } else { // interactive mode : define UI session #ifdef G4UI_USE G4UIExecutive* ui = new G4UIExecutive(argc, argv); #ifdef G4VIS_USE //UImanager->ApplyCommand("/control/execute vis.mac"); #endif ui->SessionStart(); delete ui; delete visManager; User Interface manager XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

41 DetectorConstruction.cc A detector geometry in GEANT4 is made of a number of volumes Largest volume -> World volume (typically a box) Each volume is created by describing its shape and its physical characteristics, and then placing it inside a containing volume When a volume (daughter) is placed within another volume(mother), its coordinate system is defined with respect to its mother volume XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

42 DetectorConstruction.cc Object Dimensions
G4double skin_thickness=0.5;//*cm; G4double breast_out_radium=8.;//*cm; G4double breast_out_height=5.;//*cm; G4double source_det_distance=64.5;//*cm; G4double superior_compressing_pl=0.28;//*cm; G4double inf_compressing_pl=0.41;//*cm; G4double f_g=.5;//glandular fraction by mass; G4double source_to_rot_dist=62.;//cm G4double source_to_det_dist=66.;//cm G4double air_gap=1.5;//cm XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

43 DetectorConstruction.cc Materials Definition
G4double density, fractionmass; G4int ncomponents; G4NistManager* man = G4NistManager::Instance(); G4Element* N = man -> FindOrBuildElement("N"); G4Element* O = man -> FindOrBuildElement("O"); G4Element* H = man -> FindOrBuildElement("H"); G4Element* C = man -> FindOrBuildElement("C"); G4Element* P = man -> FindOrBuildElement("P"); air = man->FindOrBuildMaterial ("G4_AIR"); water = man->FindOrBuildMaterial ("G4_WATER"); plexi = man->FindOrBuildMaterial ("G4_PLEXIGLASS"); polietilene = man->FindOrBuildMaterial ("G4_POLYETHYLENE"); graphite = man->FindOrBuildMaterial ("G4_GRAPHITE"); Al = man->FindOrBuildMaterial ("G4_Al"); polycarbonate = man->FindOrBuildMaterial ("G4_POLYCARBONATE"); carbon= man->FindOrBuildMaterial ("G4_C"); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

44 DetectorConstruction.cc Materials Definition // Carbon Fiber
G4Element* elC = new G4Element("Carbon", "C", 6., 12.01*g/mole); CarbonFiber = new G4Material("CarbonFiber",0.145*g/cm3, 1); CarbonFiber->AddElement(elC,1); //vacuum vacuum = new G4Material("Galactic", 1., 1.01*g/mole, universe_mean_density, kStateGas, 2.73*kelvin, 3.e-18*pascal); // Skin Boone skin_boone = new G4Material("skin_boone",density=1.09*g/cm3,ncomponents=5); skin_boone -> AddElement(H,fractionmass=0.098); skin_boone -> AddElement(C,fractionmass=0.178); skin_boone -> AddElement(N,fractionmass=0.050); skin_boone -> AddElement(O,fractionmass=0.667); skin_boone -> AddElement(P,fractionmass=0.007); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

45 DetectorConstruction.cc Materials Definition
//Breast Tissue 0% GLANDULAR G4double adip_density=0.9301; breast_tissue_0 = new G4Material("breast_tissue_0",adip_density*g/cm3,ncomponents=5); breast_tissue_0 -> AddElement(H,fractionmass=0.112); breast_tissue_0 -> AddElement(C,fractionmass=0.619); breast_tissue_0 -> AddElement(N,fractionmass=0.017); breast_tissue_0 -> AddElement(O,fractionmass=0.251); breast_tissue_0 -> AddElement(P,fractionmass=0.001); //Breast Tissue 100% GLANDULAR G4double gland_density=1.04; breast_tissue_100 = new G4Material("breast_tissue_100",gland_density*g/cm3,ncomponents=5); breast_tissue_100 -> AddElement(H,fractionmass=0.102); breast_tissue_100 -> AddElement(C,fractionmass=0.184); breast_tissue_100 -> AddElement(N,fractionmass=0.032); breast_tissue_100 -> AddElement(O,fractionmass=0.677); breast_tissue_100 -> AddElement(P,fractionmass=0.005); //Breast Tissue X% GLANDULAR G4double breast_density=1./((f_g/gland_density)+((1-f_g)/adip_density)); breast_tissue = new G4Material("breast_tissue",breast_density*g/cm3,ncomponents=2); breast_tissue->AddMaterial(breast_tissue_0,(1-f_g)); breast_tissue->AddMaterial(breast_tissue_100,f_g); Materials Definition XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

46 DetectorConstruction.cc World
solid_world = new G4Box("solid_world", 1.*m,1.*m,1.*m); logic_world = new G4LogicalVolume(solid_world, air, "logic_world",0,0,0); physical_world = new G4PVPlacement(0, G4ThreeVector(), logic_world, "physical_world", 0, false, 0); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

47 DetectorConstruction.cc Body
solid_body = new G4Box("solid_body",8.5*cm, 15.*cm,15.*cm); logic_body = new G4LogicalVolume(solid_body, water, "logic_body",0,0,0); G4VisAttributes* solid_body_VisAtt = new G4VisAttributes(); solid_body_VisAtt->SetForceAuxEdgeVisible(true); solid_body_VisAtt->SetColour(1.,0.,1.); logic_body->SetVisAttributes(solid_body_VisAtt); physical_body = new G4PVPlacement(0, G4ThreeVector(-8.5* cm, 0. *cm, -source_to_det_dist-source_to_rot_dist-air_gap-3.)*cm), logic_body, "physical_body", logic_world, false, 0); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

48 DetectorConstruction.cc Compression plate
plate_sup = new G4Box("plate_sup",12.*cm, 15.*cm,(superior_compressing_pl/2.)*cm); logic_plate_sup = new G4LogicalVolume(plate_sup, polycarbonate, "logic_plate_sup",0,0,0); G4VisAttributes* plate_sup_VisAtt = new G4VisAttributes(); plate_sup_VisAtt->SetForceAuxEdgeVisible(true); plate_sup_VisAtt->SetColour(1.,0.,1.); logic_plate_sup->SetVisAttributes(plate_sup_VisAtt); physical_plate_sup = new G4PVPlacement(0, G4ThreeVector(12.* cm, 0. *cm, -(source_to_det_dist-source_to_rot_dist-air_gap-breast_out_height-superior_compressing_pl/2.)*cm), logic_plate_sup, "physical_plate_sup", logic_world, false, 0); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

49 DetectorConstruction.cc Compression plate
plate_inf = new G4Box("plate_inf",12.*cm, 15.*cm,(inf_compressing_pl/2.)*cm); logic_plate_inf = new G4LogicalVolume(plate_inf, CarbonFiber, "logic_plate_inf",0,0,0); G4VisAttributes* plate_inf_VisAtt = new G4VisAttributes(); plate_inf_VisAtt->SetForceAuxEdgeVisible(true); plate_inf_VisAtt->SetColour(1.,0.,1.); logic_plate_inf->SetVisAttributes(plate_inf_VisAtt); physical_plate_inf = new G4PVPlacement(0, G4ThreeVector(12.* cm, 0. *cm, -(source_to_det_dist-source_to_rot_dist-air_gap+inf_compressing_pl/2.)*cm), logic_plate_inf, "physical_plate_inf", logic_world, false, 0); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

50 DetectorConstruction.cc Skin
skin_layer = new G4Tubs("skin_layer",0.*cm, breast_out_radium*cm,(breast_out_height/2)*cm, 270.*deg, 180.*deg); logic_skin_layer = new G4LogicalVolume(skin_layer, breast_tissue_0, "logic_skin_layer",0,0,0); G4VisAttributes* skin_layer_VisAtt = new G4VisAttributes(); skin_layer_VisAtt->SetForceAuxEdgeVisible(true); skin_layer_VisAtt->SetColour(1.,0.,1.); logic_skin_layer->SetVisAttributes(skin_layer_VisAtt); physical_skin_layer = new G4PVPlacement(0, G4ThreeVector(0.* cm, 0. *cm, -(source_to_det_dist-source_to_rot_dist-air_gap- breast_out_height/2)*cm), logic_skin_layer, "physical_skin_layer", logic_world, false, 0); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

51 DetectorConstruction.cc Breast
breast = new G4Tubs("breast",0.*cm, (breast_out_radium-skin_thickness)*cm,((breast_out_height/2)-skin_thickness)*cm, 270.*deg, 180.*deg); logic_breast = new G4LogicalVolume(breast, breast_tissue, "logic_breast",0,0,0); G4VisAttributes* breast_VisAtt = new G4VisAttributes(); breast_VisAtt->SetForceAuxEdgeVisible(true); breast_VisAtt->SetColour(1.,1.,1.); logic_breast->SetVisAttributes(breast_VisAtt); physical_breast = new G4PVPlacement(0, G4ThreeVector(0.* cm, 0. *cm, 0.*cm), logic_breast, "physical_breast", logic_skin_layer, false, 0); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

52 DetectorConstruction.cc Detector
det_covAl = new G4Box("det_covAl",12.*cm, 15.*cm,0.0025/2.*cm); logic_det_covAl = new G4LogicalVolume(det_covAl, Al, "logic_det_covAl",0,0,0); G4VisAttributes* det_covAl_VisAtt = new G4VisAttributes(); det_covAl_VisAtt->SetForceAuxEdgeVisible(true); det_covAl_VisAtt->SetColour(1.,2.,1.); logic_det_covAl->SetVisAttributes(det_covAl_VisAtt); physical_det_covAl = new G4PVPlacement(0, G4ThreeVector(12.* cm, 0. *cm, -(source_to_det_dist /2.-source_to_rot_dist)*cm), logic_det_covAl, "physical_det_covAl", logic_world, false, 0); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

53 DetectorConstruction.cc Detector
det_covC = new G4Box("det_covC",12.*cm, 15.*cm,0.0084/2.*cm); logic_det_covC = new G4LogicalVolume(det_covC, carbon, "logic_det_covC",0,0,0); G4VisAttributes* det_covC_VisAtt = new G4VisAttributes(); det_covC_VisAtt->SetForceAuxEdgeVisible(true); det_covC_VisAtt->SetColour(1.,1.,1.); logic_det_covC->SetVisAttributes(det_covC_VisAtt); physical_det_covC = new G4PVPlacement(0, G4ThreeVector(12.* cm, 0. *cm, -(source_to_det_dist / source_to_rot_dist)*cm), logic_det_covC, "physical_det_covC", logic_world, false, 0); SetupDetectors(); return physical_world; } XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

54 PhysicsList.cc Within this class all particles and physics process to be used during the simulation must be defined. The range cut-off parameter should also be defined in this class. ConstructParticle(); // construction of particles ConstructProcess(); //construct process and register then to particles SetCuts(); // setting a range cut value for all particles ConstructParticle() #include G4Gamma.hh //gamma G4Gamma::GammaDefinition(); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

55 PhysicsList.cc void PhysicsList::ConstructDecay() {
G4Decay* theDecayProcess = new G4Decay(); theParticleIterator->reset(); while( (*theParticleIterator)() ){ G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); if (theDecayProcess->IsApplicable(*particle)) { pmanager ->AddProcess(theDecayProcess); pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); } XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

56 PhysicsList.cc void PhysicsList::SetCuts() { if (verboseLevel >0){
G4cout << "PhysicsList::SetCuts:"; G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl; } SetCutValue(defaultCutValue, "gamma"); SetCutValue(defaultCutValue, "e-"); SetCutValue(defaultCutValue, "e+"); SetCutValue(defaultCutValue, "proton"); if (verboseLevel>0) DumpCutValuesTable(); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

57 PrimaryGenerationAction.cc It is a mandatory class which specifies the generation of primary particles (e.g. gammas X-rays) Geant4 provides three G4VPrimaryGenerator concrete classes: G4ParticleGun G4GeneralParticleSource G4HEPEvtInterface The Geant4 General Particle Source module (GPS) allows to generate primary particles in a more sophisticated manner. Spectrum: linear, exponential, gaussian, user-defined, etc. Angula distribution: unidirectional, isotropic, ets., Spatial sampling: on simple 2D or 3D surfaces (e.g. discs, spheres and boxes) XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

58 PrimaryGenerationAction.cc Action
PrimaryGeneratorAction::PrimaryGeneratorAction() { G4UImanager* uimanager = G4UImanager::GetUIpointer(); particleGun = new G4GeneralParticleSource(); uimanager->ApplyCommand("/gps/particle gamma"); uimanager->ApplyCommand("/gps/ene/type User"); fTubeMessenger = new PrimaryGeneratorMessenger(this); } XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

59 PrimaryGenerationAction.cc Action
G4double angle, x, y, z, costheta, phi, theta, x_p0,y_p0,z_p0, Px,Py,Pz; angle = PI*(ftAng/deg)/180.+asin((source_to_det_dist-source_to_rot_dist)*sin(PI*((ftAng/deg)/180.))/source_to_rot_dist); z = (source_to_rot_dist)*cos(angle); y = -(source_to_rot_dist)*sin(angle); x = 0.; G4String command; std::stringstream s1; std::stringstream s2; s1 << "/gps/position " << x << " " << y << " " << z ; command = s1.str(); uimanager->ApplyCommand(command); XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

60 PrimaryGenerationAction.cc Action
while(!detector_flag){ phi = G4UniformRand()*2*M_PI; costheta = 2*G4UniformRand()-1; theta=acos(costheta); z_p0=sin(theta)*cos(phi); y_p0=sin(theta)*sin(phi); x_p0=cos(theta); z_p0=z_p0/sqrt(pow(x_p0,2)+pow(y_p0,2)+pow(z_p0,2)); y_p0=y_p0/sqrt(pow(x_p0,2)+pow(y_p0,2)+pow(z_p0,2)); x_p0=x_p0/sqrt(pow(x_p0,2)+pow(y_p0,2)+pow(z_p0,2)); if(fabs((source_to_det_dist)*y_p0)<=20. && (source_to_det_dist)*x_p0<=30. && (source_to_det_dist)*x_p0>=0. && z_p0>=0.) { detector_flag=true; Pz=z_p0; Py=y_p0; Px=x_p0; } detector_flag=false; Pz= source_to_det_dist; Py= source_to_det_dist * tan(2.*atan(15./source_to_det_dist)*(G4UniformRand()-0.5));// Px = source_to_det_dist * tan(atan(26./source_to_det_dist)*G4UniformRand()); // G4double x0; G4double y0; G4double z0; z0 = Pz *cos(angle) - Py *sin(angle); y0 = Pz * sin(angle)+ Py *cos(angle); x0 = Px; s2 << "/gps/direction " << x0 << " " << y0 <<" " << -z0; command = s2.str(); uimanager->ApplyCommand(command); particleGun-> GeneratePrimaryVertex(anEvent); Action XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

61 RunAction.cc Action G4Run* RunAction::GenerateRun() { return new Run;
} void RunAction::EndOfRunAction(const G4Run* aRun) Run *theRun=(Run*)(aRun); G4cout<<" "<<G4endl; G4cout<<"The calculated mean glandular dose (total) is: "<<theRun->mgd_tot<<" mGy."<<G4endl; (theRun->mgd_tot)=0; XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

62 Run.cc Action Run::Run() { mgd_tot=0; } Run::~Run() {;}
void Run::Increment (G4double mgd_p) mgd_tot+=mgd_p; XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

63 Analysis manager XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

64 Analysis manager XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

65 MGD.cc Inizialize extern G4double f_g; G4double MGD_p;
MGD::MGD(G4String name) :G4VSensitiveDetector(name) { } MGD::~MGD() void MGD::Initialize(G4HCofThisEvent* HCE) { G4RunManager* runManager=G4RunManager::GetRunManager(); theRun=(Run*)runManager->GetCurrentRun(); } XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

66 MGD.cc G4bool MGD::ProcessHits( G4Step* aStep, G4TouchableHistory*) { G4Track* track = aStep->GetTrack(); G4Material *material = aStep->GetTrack()->GetMaterial(); const G4DynamicParticle* dynParticle = track-> GetDynamicParticle(); G4ParticleDefinition* particle = dynParticle-> GetDefinition(); G4StepPoint* preStep = aStep->GetPreStepPoint(); G4ThreeVector pos = preStep->GetPosition(); G4ParticleDefinition* particle_s= G4Electron::ElectronDefinition(); if ( particle_s!=particle && track->GetTrackID()==1 ){ G4double ener_dep = (aStep->GetPreStepPoint()->GetKineticEnergy()/keV)-(aStep- >GetPostStepPoint()->GetKineticEnergy()/keV); G4double ener_part = aStep->GetPreStepPoint()->GetKineticEnergy()/keV; G4VPhysicalVolume* physVolum = aStep->GetPreStepPoint()->GetPhysicalVolume(); G4double g_factor=G_factor(ener_part,material,physVolum); MGD_p=(g_factor*ener_dep*1.6/pow(10,13)); theRun->Increment(MGD_p); } return true; ProcessHits XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

67 MGD.cc G_Factor double MGD::G_factor(G4double energy_inc, G4Material *material_b, G4VPhysicalVolume* physVol) { G4double mu_rho_adipose; G4double mu_rho_glandular; if (energy_inc<4.) { mu_rho_adipose = ….; //0% mu_rho_glandular = ….; //100% } …. if (energy_inc>87. && energy_inc<120.) { G4double g_factor = (f_g*mu_rho_glandular)/(f_g*mu_rho_glandular+(1-f_g)*mu_rho_adipose); G4double global_factor=g_factor/(f_g*(material_b->GetDensity()/(kg/cm3))*(physVol->GetLogicalVolume()->GetSolid()->GetCubicVolume()/cm3)); return global_factor; XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

68 GPS MacroFile Example using mono-energetic energy spectrum
#type of particle /gps/particle gamma #Set the momentum direction /gps/direction #(Infinitesimal) Point source /gps/pos/type Point /gps/pos/centre cm #Energy /gps/ene/type Mono /gps/ene/mono MeV #Visualization /vis/open DAWNFILE /vis/viewer/set/viewpointThetaPhi 90 0 /vis/viewer/zoom 1 /vis/drawVolume /tracking/storeTrajectory 1 /vis/scene/add/trajectories /vis/scene/endOfEvenAction accumulate #Verbosity (0, 1 or 2) /tracking/verbose 1 #No particles /run/beamOn 1000 Example using mono-energetic energy spectrum XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

69 GPS macro file mono_beam.mac Run_macro.mac Mo_25umMo_25kv.mac
/gps/ene/type Mono /gps/ene/mono 16.8 keV /run/beamOn 100 monoenergetic /run/verbose 1 /tube/angleTomo/angleFix 20. /control/execute mono_beam.mac Run_macro.mac polyenergetic Mo_25umMo_25kv.mac or Rh_25umRh_29kv.mac or W_700umAl_50kv.mac XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

70 Energy spectrum simulation
XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

71 Energy spectrum simulation
XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

72 GPS macro file Mo_25umMo_25kv.mac
/gps/hist/type energy /gps/ene/min MeV /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /gps/hist/point /run/beamOn 100 Mo_25umMo_25kv.mac XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

73 Vis.mac /vis/open OGL 600x /vis/drawVolume # Draw geometry /vis/scene/add/axes cm # Axes /vis/viewer/set/viewpointThetaPhi # Specify view angle /vis/viewer/zoom 2 # Specify zoom value # Draw smooth trajectories /vis/scene/add/trajectories /vis/modeling/trajectories/create/drawByCharge /vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true /vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 1 # Draw hits at end of event: /vis/scene/add/hits /vis/scene/endOfEventAction accumulate -1 # Re-establish auto refreshing and verbosity: /vis/verbose warnings XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

74 Debugging, compiling and linking experiments
> cd /DBT_alghero > cmake -DGeant4_DIR=/home/adminlab/geant p01-install/lib/Geant / > make -jN > ./DBT_alghero Idle> /control/execute vis.mac Idle> /control/execute run_macro.mac XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

75 Scatter field estimation
XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

76 XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

77 Elenco pubblicazioni G. Mettivier et a., “Evaluation of scattering in Cone-Beam breast computed tomography: a Monte Carlo and experimental phantom study”, (IEEE Trans. Nucl. Sci., vol. 57, N° 5, pp , 2010). G. Mettivier et al., “Scatter correction in Cone-Beam breast computed tomography: simulations and experiments”,( IEEE Trans. Nucl. Sci., vol. 59, N° 5, pp , 2012). N. Lanconelli et al., “Investigation of the dose distribution for a Cone Beam CT system dedicated to breast imaging”, (Physica Medica, vol. 4, N. 4, pp , 2013). C. Fedon et al., “GEANT4 for breast dosimetry: parameters optimization study”, (Phys. Med. Biol. 60, vol. 16, pp. N311-N323 , 2015). G. Mettivier et al., “Glandular dose in breast computed tomography with synchrotron radiation” (Phys. Med. Biol. 61, pp , 2016). Featured article. A. Sarno et al., “A Monte Carlo study of monoenergetic and polyenergetic normalized glandular dose (DgN) coefficients in mammography", (Phys. Med. Biol. 62, pp , 2017). G. Mettivier et al., “Evaluation of dose homogeneity in cone-beam breast computed tomography”, (Radiat. Prot. Dosimetry, pp. 1-7, 2017). XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

78 Elenco pubblicazioni (under review)
Sarno A, Dance D R, van Engen R E, Young K C, Russo P, Di Lillo F, Mettivier G, Bliznakova K, Fei B W and Sechopoulos I. “A Monte Carlo model for mean glandular dose evaluation in spot compression mammography“. Med. Phys. (2017) under review. Sarno A, Mettivier G and Russo P. “Air kerma calculation in Monte Carlo simulations for deriving normalized glandular dose coefficients in mammography “. Phys. Med Biol. (2017) under review. Sarno A, Masi M, Antonelli N, Di Lillo F, Mettivier G, Castriconi R and Russo P. “Dose Volume Distribution in Digital Breast Tomosynthesis: a Phantom Study“. Trans. Rad. Pl. Med. Sc. (2017) under review. XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017

79 Thank you!!! Napoli Medical Physics Laboratory Prof. Paolo Russo
Dr. Giovanni Mettivier, PhD Dr. Antonio Sarno Dr. Francesca Di Lillo Dr. Roberta Castriconi Milano) XIV Seminar on Software for Nuclear, Subnuclear and Applied Physics, Alghero – 8 June 2017


Download ppt "Examples of GEANT4 application in medical diagnostic energy range"

Similar presentations


Ads by Google