Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/advanced/brachytherapy/src/BrachyDetectorConstructionOncura6711.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/advanced/brachytherapy/src/BrachyDetectorConstructionOncura6711.cc (Version 11.3.0) and /examples/advanced/brachytherapy/src/BrachyDetectorConstructionOncura6711.cc (Version 11.1.3)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 //                                                 26 //
 27 // -------------------------------------------     27 // --------------------------------------------------------------
 28 //                 GEANT 4 - Brachytherapy exa     28 //                 GEANT 4 - Brachytherapy example
 29 // -------------------------------------------     29 // --------------------------------------------------------------
 30 //                                                 30 //
 31 // Code developed by:                              31 // Code developed by:
 32 // D. Cutajar, A. Le                               32 // D. Cutajar, A. Le
 33 //                                                 33 //
 34 //    ****************************************     34 //    ********************************************
 35 //    *                                            35 //    *                                          *
 36 //    *  BrachyDetectorConstructionOncura6711.     36 //    *  BrachyDetectorConstructionOncura6711.cc *
 37 //    *                                            37 //    *                                          *
 38 //    ****************************************     38 //    ********************************************
 39 //                                                 39 //
 40 //                                                 40 // 
 41 //                                                 41 //
 42 #include "BrachyDetectorConstructionOncura6711     42 #include "BrachyDetectorConstructionOncura6711.hh"
 43 #include "globals.hh"                              43 #include "globals.hh"
 44 #include "G4SystemOfUnits.hh"                      44 #include "G4SystemOfUnits.hh"
 45 #include "G4Sphere.hh"                             45 #include "G4Sphere.hh"
 46 #include "G4RunManager.hh"                         46 #include "G4RunManager.hh"
 47 #include "G4Box.hh"                                47 #include "G4Box.hh"
 48 #include "G4Tubs.hh"                               48 #include "G4Tubs.hh"
 49 #include "G4LogicalVolume.hh"                      49 #include "G4LogicalVolume.hh"
 50 #include "G4ThreeVector.hh"                        50 #include "G4ThreeVector.hh"
 51 #include "G4PVPlacement.hh"                        51 #include "G4PVPlacement.hh"
 52 #include "G4Transform3D.hh"                        52 #include "G4Transform3D.hh"
 53 #include "G4RotationMatrix.hh"                     53 #include "G4RotationMatrix.hh"
 54 #include "G4TransportationManager.hh"              54 #include "G4TransportationManager.hh"
 55 #include "G4NistManager.hh"                        55 #include "G4NistManager.hh"
 56 #include "G4VisAttributes.hh"                      56 #include "G4VisAttributes.hh"
 57 #include "G4Colour.hh"                             57 #include "G4Colour.hh"
 58                                                    58 
 59 BrachyDetectorConstructionOncura6711::BrachyDe     59 BrachyDetectorConstructionOncura6711::BrachyDetectorConstructionOncura6711()
 60   :                                                60   : 
 61    fOncuraCapsule(nullptr), fOncuraCapsuleLog(     61    fOncuraCapsule(nullptr), fOncuraCapsuleLog(nullptr),
 62    fOncuraCapsulePhys(nullptr),                    62    fOncuraCapsulePhys(nullptr),
 63    fOncuraCapsuleTip1(nullptr), fOncuraCapsule     63    fOncuraCapsuleTip1(nullptr), fOncuraCapsuleTip1Log(nullptr),
 64    fOncuraCapsuleTip1Phys(nullptr),                64    fOncuraCapsuleTip1Phys(nullptr),
 65    fOncuraCapsuleTip2(nullptr), fOncuraCapsule     65    fOncuraCapsuleTip2(nullptr), fOncuraCapsuleTip2Log(nullptr),
 66    fOncuraCapsuleTip2Phys(nullptr),                66    fOncuraCapsuleTip2Phys(nullptr),
 67    fOncuraAirGap(nullptr), fOncuraAirGapLog(nu     67    fOncuraAirGap(nullptr), fOncuraAirGapLog(nullptr),
 68    fOncuraAirGapPhys(nullptr),                     68    fOncuraAirGapPhys(nullptr),
 69    fOncuraSilverCore(nullptr), fOncuraSilverCo     69    fOncuraSilverCore(nullptr), fOncuraSilverCoreLog(nullptr),
 70    fOncuraSilverCorePhys(nullptr),                 70    fOncuraSilverCorePhys(nullptr),
 71    fOncuraCapsuleShellVisAtt(nullptr), fOncura     71    fOncuraCapsuleShellVisAtt(nullptr), fOncuraCapsuleTipVisAtt(nullptr),
 72    fOncuraSilverCoreVisAtt(nullptr)                72    fOncuraSilverCoreVisAtt(nullptr)
 73 {}                                                 73 {}
 74                                                    74 
 75 void BrachyDetectorConstructionOncura6711::Con     75 void BrachyDetectorConstructionOncura6711::ConstructOncura6711(G4VPhysicalVolume* mother)
 76 {                                                  76 {
 77 G4Colour  red     (1.0, 0.0, 0.0) ;                77 G4Colour  red     (1.0, 0.0, 0.0) ;
 78 G4Colour  magenta (1.0, 0.0, 1.0) ;                78 G4Colour  magenta (1.0, 0.0, 1.0) ; 
 79                                                    79 
 80 G4NistManager* nist = G4NistManager::Instance(     80 G4NistManager* nist = G4NistManager::Instance();
 81 G4Material* titanium = nist -> FindOrBuildMate     81 G4Material* titanium = nist -> FindOrBuildMaterial("G4_Ti");
 82 G4Material* air = nist -> FindOrBuildMaterial(     82 G4Material* air = nist -> FindOrBuildMaterial("G4_AIR");
 83 G4Material* silver = nist -> FindOrBuildMateri     83 G4Material* silver = nist -> FindOrBuildMaterial("G4_Ag");
 84                                                    84 
 85 //Capsule shell                                    85 //Capsule shell
 86 fOncuraCapsule = new G4Tubs("OncuraCapsule",0,     86 fOncuraCapsule = new G4Tubs("OncuraCapsule",0,0.4*mm,1.875*mm,0.*deg,360.*deg);
 87 fOncuraCapsuleLog = new G4LogicalVolume(fOncur     87 fOncuraCapsuleLog = new G4LogicalVolume(fOncuraCapsule,titanium,"OncuraCapsuleLog", nullptr,nullptr,nullptr);
 88 fOncuraCapsulePhys = new G4PVPlacement(nullptr     88 fOncuraCapsulePhys = new G4PVPlacement(nullptr, G4ThreeVector(0,0,0), 
 89                   "OncuraCapsulePhys", fOncura     89                   "OncuraCapsulePhys", fOncuraCapsuleLog, 
 90                   mother, false, 0, true);         90                   mother, false, 0, true);
 91                                                    91             
 92 //Capsule tips                                     92 //Capsule tips
 93 fOncuraCapsuleTip1 = new G4Sphere("OncuraCapsu     93 fOncuraCapsuleTip1 = new G4Sphere("OncuraCapsuleTip1", 0, 0.4*mm, 0., 360*deg, 0., 90*deg);
 94 fOncuraCapsuleTip1Log = new G4LogicalVolume(fO     94 fOncuraCapsuleTip1Log = new G4LogicalVolume(fOncuraCapsuleTip1, titanium, "OncuraCapsuleTip1Log",nullptr,nullptr,nullptr);
 95 fOncuraCapsuleTip1Phys = new G4PVPlacement(nul     95 fOncuraCapsuleTip1Phys = new G4PVPlacement(nullptr, G4ThreeVector(0,0,1.875*mm), 
 96                 "OncuraCapsuleTip1Phys", fOncu     96                 "OncuraCapsuleTip1Phys", fOncuraCapsuleTip1Log,
 97                 mother, false,                     97                 mother, false, 
 98                 0, true);                          98                 0, true);
 99                                                    99 
100 fOncuraCapsuleTip2 = new G4Sphere("OncuraCapsu    100 fOncuraCapsuleTip2 = new G4Sphere("OncuraCapsuleTip2", 0, 0.4*mm, 0., 360*deg, 90*deg, 90*deg);
101 fOncuraCapsuleTip2Log = new G4LogicalVolume(fO    101 fOncuraCapsuleTip2Log = new G4LogicalVolume(fOncuraCapsuleTip2, titanium, "OncuraCapsuleTip2Log", nullptr,nullptr,nullptr);
102 fOncuraCapsuleTip2Phys = new G4PVPlacement(nul    102 fOncuraCapsuleTip2Phys = new G4PVPlacement(nullptr, G4ThreeVector(0,0,-1.875*mm), 
103                 "OncuraCapsuleTip2Phys", fOncu    103                 "OncuraCapsuleTip2Phys", fOncuraCapsuleTip2Log,
104                 mother, false,                    104                 mother, false, 
105                 0, true);                         105                 0, true);
106                                                   106 
107 //Air gap                                         107 //Air gap
108 fOncuraAirGap = new G4Tubs("OncuraAirGap",0,0.    108 fOncuraAirGap = new G4Tubs("OncuraAirGap",0,0.33*mm,1.825*mm,0.*deg,360.*deg);
109 fOncuraAirGapLog = new G4LogicalVolume(fOncura    109 fOncuraAirGapLog = new G4LogicalVolume(fOncuraAirGap, air, "OncuraAirGapLog");
110 fOncuraAirGapPhys = new G4PVPlacement(nullptr,    110 fOncuraAirGapPhys = new G4PVPlacement(nullptr, G4ThreeVector(0,0,0), 
111                                 "OncuraAirGapP    111                                 "OncuraAirGapPhys", fOncuraAirGapLog, 
112                                 fOncuraCapsule    112                                 fOncuraCapsulePhys, false,
113                                 0, true);         113                                 0, true);
114                                                   114 
115 //Silver core                                     115 //Silver core
116 fOncuraSilverCore = new G4Tubs("OncuraSilverCo    116 fOncuraSilverCore = new G4Tubs("OncuraSilverCore",0,0.25*mm,1.4*mm,0.*deg,360.*deg);
117 fOncuraSilverCoreLog = new G4LogicalVolume(fOn    117 fOncuraSilverCoreLog = new G4LogicalVolume(fOncuraSilverCore, silver, "silverCoreLog");
118 fOncuraSilverCorePhys = new G4PVPlacement(null    118 fOncuraSilverCorePhys = new G4PVPlacement(nullptr, G4ThreeVector(0,0,0), 
119                 "OncuraSilverCorePhys", fOncur    119                 "OncuraSilverCorePhys", fOncuraSilverCoreLog,
120                                 fOncuraAirGapP    120                                 fOncuraAirGapPhys, false,
121                                 0, true);         121                                 0, true);
122                                                   122 
123 fOncuraCapsuleShellVisAtt = new G4VisAttribute    123 fOncuraCapsuleShellVisAtt = new G4VisAttributes(red);
124 fOncuraCapsuleShellVisAtt -> SetVisibility(tru    124 fOncuraCapsuleShellVisAtt -> SetVisibility(true);  
125 fOncuraCapsuleShellVisAtt -> SetForceWireframe    125 fOncuraCapsuleShellVisAtt -> SetForceWireframe(true);
126 fOncuraCapsuleLog -> SetVisAttributes(fOncuraC    126 fOncuraCapsuleLog -> SetVisAttributes(fOncuraCapsuleShellVisAtt);
127                                                   127 
128 fOncuraCapsuleTipVisAtt = new G4VisAttributes(    128 fOncuraCapsuleTipVisAtt = new G4VisAttributes(red);
129 fOncuraCapsuleTipVisAtt -> SetVisibility(true)    129 fOncuraCapsuleTipVisAtt -> SetVisibility(true);  
130 fOncuraCapsuleTipVisAtt -> SetForceSolid(true)    130 fOncuraCapsuleTipVisAtt -> SetForceSolid(true);
131 fOncuraCapsuleTip1Log -> SetVisAttributes(fOnc    131 fOncuraCapsuleTip1Log -> SetVisAttributes(fOncuraCapsuleTipVisAtt);
132 fOncuraCapsuleTip2Log -> SetVisAttributes(fOnc    132 fOncuraCapsuleTip2Log -> SetVisAttributes(fOncuraCapsuleTipVisAtt);
133                                                   133 
134 fOncuraSilverCoreVisAtt = new G4VisAttributes(    134 fOncuraSilverCoreVisAtt = new G4VisAttributes(magenta);
135 fOncuraSilverCoreVisAtt -> SetVisibility(true)    135 fOncuraSilverCoreVisAtt -> SetVisibility(true);
136 fOncuraSilverCoreVisAtt -> SetForceSolid(true)    136 fOncuraSilverCoreVisAtt -> SetForceSolid(true);
137 fOncuraSilverCoreLog -> SetVisAttributes(fOncu    137 fOncuraSilverCoreLog -> SetVisAttributes(fOncuraSilverCoreVisAtt);
138 }                                                 138 }
139                                                   139 
140 void BrachyDetectorConstructionOncura6711::Cle    140 void BrachyDetectorConstructionOncura6711::CleanOncura6711()
141 {                                                 141 { 
142  delete fOncuraSilverCoreVisAtt;                  142  delete fOncuraSilverCoreVisAtt;
143  fOncuraSilverCoreVisAtt = nullptr;               143  fOncuraSilverCoreVisAtt = nullptr;
144                                                   144 
145  delete fOncuraCapsuleTipVisAtt;                  145  delete fOncuraCapsuleTipVisAtt;
146  fOncuraCapsuleTipVisAtt = nullptr;               146  fOncuraCapsuleTipVisAtt = nullptr;
147                                                   147 
148  delete fOncuraCapsuleShellVisAtt;                148  delete fOncuraCapsuleShellVisAtt;
149  fOncuraCapsuleShellVisAtt = nullptr;             149  fOncuraCapsuleShellVisAtt = nullptr;
150                                                   150 
151  delete fOncuraSilverCorePhys;                    151  delete fOncuraSilverCorePhys;
152  fOncuraSilverCorePhys = nullptr;                 152  fOncuraSilverCorePhys = nullptr;
153                                                   153 
154  delete fOncuraSilverCoreLog;                     154  delete fOncuraSilverCoreLog;
155  fOncuraSilverCoreLog = nullptr;                  155  fOncuraSilverCoreLog = nullptr;
156                                                   156 
157  delete fOncuraSilverCore;                        157  delete fOncuraSilverCore;
158  fOncuraSilverCore = nullptr;                     158  fOncuraSilverCore = nullptr;
159                                                   159 
160  delete fOncuraAirGapPhys;                        160  delete fOncuraAirGapPhys;
161  fOncuraAirGapPhys = nullptr;                     161  fOncuraAirGapPhys = nullptr;
162                                                   162 
163  delete fOncuraAirGapLog;                         163  delete fOncuraAirGapLog;
164  fOncuraAirGapLog = nullptr;                      164  fOncuraAirGapLog = nullptr;
165                                                   165 
166  delete fOncuraAirGap;                            166  delete fOncuraAirGap;
167  fOncuraAirGap = nullptr;                         167  fOncuraAirGap = nullptr;
168                                                   168 
169  delete fOncuraCapsuleTip2Phys;                   169  delete fOncuraCapsuleTip2Phys;
170  fOncuraCapsuleTip2Phys = nullptr;                170  fOncuraCapsuleTip2Phys = nullptr;
171                                                   171 
172  delete fOncuraCapsuleTip2Log;                    172  delete fOncuraCapsuleTip2Log;
173  fOncuraCapsuleTip2Log = nullptr;                 173  fOncuraCapsuleTip2Log = nullptr;
174                                                   174  
175  delete fOncuraCapsuleTip2;                       175  delete fOncuraCapsuleTip2;
176  fOncuraCapsuleTip2 = nullptr;                    176  fOncuraCapsuleTip2 = nullptr;
177                                                   177 
178  delete fOncuraCapsuleTip1Phys;                   178  delete fOncuraCapsuleTip1Phys;
179  fOncuraCapsuleTip1Phys = nullptr;                179  fOncuraCapsuleTip1Phys = nullptr;
180                                                   180 
181  delete fOncuraCapsuleTip1Log;                    181  delete fOncuraCapsuleTip1Log;
182  fOncuraCapsuleTip1Log = nullptr;                 182  fOncuraCapsuleTip1Log = nullptr;
183                                                   183 
184  delete fOncuraCapsuleTip1;                       184  delete fOncuraCapsuleTip1;
185  fOncuraCapsuleTip1 = nullptr;                    185  fOncuraCapsuleTip1 = nullptr;
186                                                   186 
187  delete fOncuraCapsulePhys;                       187  delete fOncuraCapsulePhys;
188  fOncuraCapsulePhys = nullptr;                    188  fOncuraCapsulePhys = nullptr;
189                                                   189   
190  delete fOncuraCapsuleLog;                        190  delete fOncuraCapsuleLog;
191  fOncuraCapsuleLog = nullptr;                     191  fOncuraCapsuleLog = nullptr;
192                                                   192 
193  delete fOncuraCapsule;                           193  delete fOncuraCapsule;
194  fOncuraCapsule = nullptr;                        194  fOncuraCapsule = nullptr;
195                                                   195   
196  G4RunManager::GetRunManager() -> GeometryHasB    196  G4RunManager::GetRunManager() -> GeometryHasBeenModified();
197 }                                                 197 }
198                                                   198