Geant4 Cross Reference |
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 // Previous authors: G. Guerrieri, S. Guatelli 26 // Previous authors: G. Guerrieri, S. Guatelli, and M. G. Pia, INFN Genova, Italy 27 // Authors (since 2007): S. Guatelli, Universi 27 // Authors (since 2007): S. Guatelli, University of Wollongong, Australia 28 // 28 // 29 29 30 #include <map> 30 #include <map> 31 31 32 #include "globals.hh" 32 #include "globals.hh" 33 33 34 #include "G4HumanPhantomConstruction.hh" 34 #include "G4HumanPhantomConstruction.hh" 35 35 36 #include "G4SystemOfUnits.hh" 36 #include "G4SystemOfUnits.hh" 37 #include "G4HumanPhantomSD.hh" 37 #include "G4HumanPhantomSD.hh" 38 #include "G4SDManager.hh" 38 #include "G4SDManager.hh" 39 39 40 //#include "G4VBodyFactory.hh" 40 //#include "G4VBodyFactory.hh" 41 //#include "G4MIRDBodyFactory.hh" 41 //#include "G4MIRDBodyFactory.hh" 42 //#include "G4ORNLBodyFactory.hh" 42 //#include "G4ORNLBodyFactory.hh" 43 43 44 #include "G4PhantomBuilder.hh" 44 #include "G4PhantomBuilder.hh" 45 #include "G4FemaleBuilder.hh" 45 #include "G4FemaleBuilder.hh" 46 #include "G4MaleBuilder.hh" 46 #include "G4MaleBuilder.hh" 47 #include "G4PhantomHeadBuilder.hh" 47 #include "G4PhantomHeadBuilder.hh" 48 #include "G4RunManager.hh" 48 #include "G4RunManager.hh" 49 #include "G4HumanPhantomMaterial.hh" 49 #include "G4HumanPhantomMaterial.hh" 50 #include "G4Box.hh" 50 #include "G4Box.hh" 51 #include "G4LogicalVolume.hh" 51 #include "G4LogicalVolume.hh" 52 #include "G4VPhysicalVolume.hh" 52 #include "G4VPhysicalVolume.hh" 53 #include "G4VisAttributes.hh" 53 #include "G4VisAttributes.hh" 54 #include "G4Colour.hh" 54 #include "G4Colour.hh" 55 #include "G4PVPlacement.hh" 55 #include "G4PVPlacement.hh" 56 56 57 G4HumanPhantomConstruction::G4HumanPhantomCons 57 G4HumanPhantomConstruction::G4HumanPhantomConstruction() 58 { 58 { 59 fMessenger = new G4HumanPhantomMessenger(thi 59 fMessenger = new G4HumanPhantomMessenger(this); 60 fMaterial = new G4HumanPhantomMaterial(); 60 fMaterial = new G4HumanPhantomMaterial(); 61 } 61 } 62 62 63 G4HumanPhantomConstruction::~G4HumanPhantomCon 63 G4HumanPhantomConstruction::~G4HumanPhantomConstruction() 64 { 64 { 65 delete fMaterial; 65 delete fMaterial; 66 delete fMessenger; 66 delete fMessenger; 67 } 67 } 68 68 69 G4VPhysicalVolume* G4HumanPhantomConstruction: 69 G4VPhysicalVolume* G4HumanPhantomConstruction::Construct() 70 { 70 { 71 fMaterial -> DefineMaterials(); 71 fMaterial -> DefineMaterials(); 72 72 73 G4BasePhantomBuilder* builder = nullptr; 73 G4BasePhantomBuilder* builder = nullptr; 74 74 75 if (fModel == "MIRDHead" || fModel == "ORNLH 75 if (fModel == "MIRDHead" || fModel == "ORNLHead") 76 { 76 { 77 G4cout << "HeadBuilder instantiated" << 77 G4cout << "HeadBuilder instantiated" << G4endl; 78 builder = new G4PhantomHeadBuilder; 78 builder = new G4PhantomHeadBuilder; 79 if (fModel == "MIRDHead") builder->SetM 79 if (fModel == "MIRDHead") builder->SetModel("MIRD"); 80 else if (fModel == "ORNLHead") builder- 80 else if (fModel == "ORNLHead") builder->SetModel("ORNLMale"); 81 } 81 } 82 else 82 else 83 { 83 { 84 if (fSex =="Female") 84 if (fSex =="Female") 85 { 85 { 86 builder = new G4FemaleBuilder; 86 builder = new G4FemaleBuilder; 87 builder->SetModel(fModel); 87 builder->SetModel(fModel); 88 G4cout << fModel << " "<< fSex << G4endl; 88 G4cout << fModel << " "<< fSex << G4endl; 89 } 89 } 90 else if (fSex == "Male") 90 else if (fSex == "Male") 91 { 91 { 92 builder = new G4MaleBuilder; 92 builder = new G4MaleBuilder; 93 builder->SetModel(fModel); 93 builder->SetModel(fModel); 94 } 94 } 95 } 95 } 96 96 97 builder->SetMotherVolume(ConstructWorld()); 97 builder->SetMotherVolume(ConstructWorld()); 98 98 99 // the argument indicates the sensitivity of 99 // the argument indicates the sensitivity of the volume 100 100 101 builder->BuildHead("black", false, fSensitiv 101 builder->BuildHead("black", false, fSensitivities["Head"]); 102 builder->BuildSkull("orange", false, fSensit 102 builder->BuildSkull("orange", false, fSensitivities["Skull"]); 103 builder->BuildBrain("yellow", true, fSensiti 103 builder->BuildBrain("yellow", true, fSensitivities["Brain"]); 104 104 105 if (fModel != "MIRDHead" && fModel != "ORNLH 105 if (fModel != "MIRDHead" && fModel != "ORNLHead") 106 { 106 { 107 // builder->SetModel(model); 107 // builder->SetModel(model); 108 builder->BuildTrunk("yellow", false, fSe 108 builder->BuildTrunk("yellow", false, fSensitivities["Trunk"]); 109 109 110 builder->BuildLeftLeg("yellow", false, f 110 builder->BuildLeftLeg("yellow", false, fSensitivities["LeftLeg"]); 111 builder->BuildRightLeg("yellow", false, 111 builder->BuildRightLeg("yellow", false, fSensitivities["RightLeg"]); 112 112 113 builder->BuildLeftArmBone("grey", true, 113 builder->BuildLeftArmBone("grey", true, fSensitivities["LeftArmBone"]); 114 builder->BuildRightArmBone("grey", true, 114 builder->BuildRightArmBone("grey", true, fSensitivities["RightArmBone"]); 115 115 116 builder->BuildLeftLegBone("grey", true, 116 builder->BuildLeftLegBone("grey", true, fSensitivities["LeftLegBone"]); 117 builder ->BuildRightLegBone("grey", true 117 builder ->BuildRightLegBone("grey", true, fSensitivities["RightLegBone"]); 118 118 119 builder->BuildUpperSpine("yellow", true, 119 builder->BuildUpperSpine("yellow", true, fSensitivities["UpperSpine"]); 120 120 121 if (fModel == "MIRD") 121 if (fModel == "MIRD") 122 { 122 { 123 builder->BuildLeftScapula("grey", true, fS 123 builder->BuildLeftScapula("grey", true, fSensitivities["LeftScapula"]); 124 builder->BuildRightScapula("grey", true, f 124 builder->BuildRightScapula("grey", true, fSensitivities["RightScapula"]); 125 builder->BuildLeftAdrenal("yellow", true, 125 builder->BuildLeftAdrenal("yellow", true, fSensitivities["LeftAdrenal"]); 126 builder->BuildRightAdrenal("yellow", true, 126 builder->BuildRightAdrenal("yellow", true, fSensitivities["RightAdrenal"]); 127 builder->BuildThymus("orange", true, fSens 127 builder->BuildThymus("orange", true, fSensitivities["Thymus"]); 128 builder->BuildLeftClavicle("grey", true, f 128 builder->BuildLeftClavicle("grey", true, fSensitivities["LeftClavicle"]); 129 builder->BuildRightClavicle("grey", true, 129 builder->BuildRightClavicle("grey", true, fSensitivities["RightClavicle"]); 130 builder->BuildSmallIntestine("orange", tru 130 builder->BuildSmallIntestine("orange", true, fSensitivities["SmallIntestine"]); 131 builder->BuildRibCage("grey", true, fSensi 131 builder->BuildRibCage("grey", true, fSensitivities["RibCage"]); 132 } 132 } 133 133 134 builder->BuildMiddleLowerSpine("yellow", 134 builder->BuildMiddleLowerSpine("yellow", true, fSensitivities["MiddleLowerSpine"]); 135 135 136 builder->BuildPelvis("grey", true, fSens 136 builder->BuildPelvis("grey", true, fSensitivities["Pelvis"]); 137 137 138 builder->BuildStomach("orange", true, fS 138 builder->BuildStomach("orange", true, fSensitivities["Stomach"]); 139 builder->BuildUpperLargeIntestine("light 139 builder->BuildUpperLargeIntestine("lightBlue", true, fSensitivities["UpperLargeIntestine"]); 140 builder->BuildLowerLargeIntestine("light 140 builder->BuildLowerLargeIntestine("lightBlue", true, fSensitivities["LowerLargeIntestine"]); 141 builder->BuildSpleen("green", true, fSen 141 builder->BuildSpleen("green", true, fSensitivities["Spleen"]); 142 builder->BuildPancreas("purple", true, f 142 builder->BuildPancreas("purple", true, fSensitivities["Pancreas"]); 143 //builder->BuildLiver("orange", true,sen 143 //builder->BuildLiver("orange", true,sensitivities["Liver"]); 144 144 145 builder->BuildLeftKidney("green", true, 145 builder->BuildLeftKidney("green", true, fSensitivities["LeftKidney"]); 146 builder->BuildRightKidney("green", true, 146 builder->BuildRightKidney("green", true, fSensitivities["RightKidney"]); 147 builder->BuildUrinaryBladder("green", tr 147 builder->BuildUrinaryBladder("green", true, fSensitivities["UrinaryBladder"]); 148 148 149 //builder->BuildHeart("red", true,fSensi 149 //builder->BuildHeart("red", true,fSensitivities["Hearth"]);// to do MIRD 150 // builder->BuildLeftLung("blue", true, f 150 // builder->BuildLeftLung("blue", true, fSensitivities["LeftLung"]); 151 //builder->BuildRightLung("blue", true, 151 //builder->BuildRightLung("blue", true, fSensitivities["RightLung"]); 152 // builder->BuildThyroid("orange", true, 152 // builder->BuildThyroid("orange", true, fSensitivities["Thyroid"]); 153 153 154 if(fSex=="Female"){ 154 if(fSex=="Female"){ 155 155 156 builder->BuildLeftOvary("purple", true, fSen 156 builder->BuildLeftOvary("purple", true, fSensitivities["LeftOvary"]); 157 builder->BuildRightOvary("purple", true, fSe 157 builder->BuildRightOvary("purple", true, fSensitivities["RightOvary"]); 158 builder->BuildUterus("purple", true, fSensit 158 builder->BuildUterus("purple", true, fSensitivities["Uterus"]); 159 159 160 if (fModel == "ORNLFemale" || fModel == "MIR 160 if (fModel == "ORNLFemale" || fModel == "MIRD") 161 { 161 { 162 builder->BuildLeftBreast("purple", true, 162 builder->BuildLeftBreast("purple", true,fSensitivities["LeftBreast"]); 163 builder->BuildRightBreast("purple", true 163 builder->BuildRightBreast("purple", true,fSensitivities["RightBreast"]); 164 } 164 } 165 } 165 } 166 166 167 if(fSex=="Male"){ 167 if(fSex=="Male"){ 168 168 169 if (fModel == "MIRD"){ 169 if (fModel == "MIRD"){ 170 builder -> BuildMaleGenitalia("yellow",fal 170 builder -> BuildMaleGenitalia("yellow",false, fSensitivities["MaleGenitalia"]); 171 builder -> BuildLeftTeste("purple",true, f 171 builder -> BuildLeftTeste("purple",true, fSensitivities["LeftTeste"]); 172 builder -> BuildRightTeste("purple",true, 172 builder -> BuildRightTeste("purple",true, fSensitivities["RightTeste"]); 173 } 173 } 174 else G4cout << "ORNL does not have model fo 174 else G4cout << "ORNL does not have model for male genitalia and testes yet" << G4endl; 175 } 175 } 176 176 177 } 177 } 178 G4VPhysicalVolume* result=builder->GetPhanto 178 G4VPhysicalVolume* result=builder->GetPhantom(); 179 delete builder; 179 delete builder; 180 return result; 180 return result; 181 } 181 } 182 182 183 void G4HumanPhantomConstruction::SetBodyPartS 183 void G4HumanPhantomConstruction::SetBodyPartSensitivity(G4String, G4bool) 184 { 184 { 185 G4cout << "This method is not currently work 185 G4cout << "This method is not currently working !!!!" << G4endl; 186 } 186 } 187 187 188 G4VPhysicalVolume* G4HumanPhantomConstruction: 188 G4VPhysicalVolume* G4HumanPhantomConstruction::ConstructWorld() 189 { 189 { 190 G4Material* air = fMaterial -> GetMaterial(" 190 G4Material* air = fMaterial -> GetMaterial("Air"); 191 191 192 // World Volume 192 // World Volume 193 // G4double worldSize = 1.*m ; 193 // G4double worldSize = 1.*m ; 194 G4double worldSize = 1.5 *m ; 194 G4double worldSize = 1.5 *m ; 195 G4Box* world = new G4Box("world", worldSize, 195 G4Box* world = new G4Box("world", worldSize, worldSize, worldSize); 196 196 197 auto* logicWorld = new G4LogicalVolume(world 197 auto* logicWorld = new G4LogicalVolume(world, 198 air, 198 air, 199 "logicalWorld", nullptr, nul 199 "logicalWorld", nullptr, nullptr, nullptr); 200 200 201 G4VPhysicalVolume* motherVolume = new G4PVPl 201 G4VPhysicalVolume* motherVolume = new G4PVPlacement(nullptr,G4ThreeVector(), 202 "physicalWorld", 202 "physicalWorld", 203 logicWorld, 203 logicWorld, 204 nullptr, 204 nullptr, 205 false, 205 false, 206 0); 206 0); 207 207 208 // Visualization Attributes 208 // Visualization Attributes 209 auto* WorldVisAtt = new G4VisAttributes(G4Co 209 auto* WorldVisAtt = new G4VisAttributes(G4Colour(0.94,0.5,0.5)); 210 210 211 WorldVisAtt->SetForceSolid(false); 211 WorldVisAtt->SetForceSolid(false); 212 logicWorld->SetVisAttributes(G4VisAttributes 212 logicWorld->SetVisAttributes(G4VisAttributes::GetInvisible()); 213 213 214 return motherVolume; 214 return motherVolume; 215 } 215 } 216 216 217 void G4HumanPhantomConstruction::SetPhantomSex 217 void G4HumanPhantomConstruction::SetPhantomSex(G4String newSex) 218 { 218 { 219 fSex=newSex; 219 fSex=newSex; 220 220 221 if (fSex == "Male") 221 if (fSex == "Male") 222 { 222 { 223 G4cout << ">> Male Phantom will be built 223 G4cout << ">> Male Phantom will be built." << G4endl; 224 } 224 } 225 if (fSex == "Female") 225 if (fSex == "Female") 226 { 226 { 227 G4cout << ">> Female Phantom will be bui 227 G4cout << ">> Female Phantom will be built." << G4endl; 228 } 228 } 229 if ((fSex != "Female") && (fSex != "Male")) 229 if ((fSex != "Female") && (fSex != "Male")) 230 G4cout << fSex << " can not be defined!" < 230 G4cout << fSex << " can not be defined!" << G4endl; 231 } 231 } 232 232 233 void G4HumanPhantomConstruction::SetPhantomMod 233 void G4HumanPhantomConstruction::SetPhantomModel(G4String newModel) 234 { 234 { 235 fModel = newModel; 235 fModel = newModel; 236 236 237 if (fModel == "MIRD") 237 if (fModel == "MIRD") 238 { 238 { 239 G4cout<<" >> Phantom " << fModel << " wi 239 G4cout<<" >> Phantom " << fModel << " will be built."<<G4endl; 240 } 240 } 241 if (fModel == "ORNLFemale") 241 if (fModel == "ORNLFemale") 242 { 242 { 243 G4cout<<" >> Phantom " << fModel << " wi 243 G4cout<<" >> Phantom " << fModel << " will be built."<<G4endl; 244 } 244 } 245 245 246 if (fModel == "ORNLMale") 246 if (fModel == "ORNLMale") 247 { 247 { 248 G4cout<<" >> Phantom " << fModel << " wi 248 G4cout<<" >> Phantom " << fModel << " will be built."<<G4endl; 249 } 249 } 250 250 251 if (fModel == "MIRDHead") 251 if (fModel == "MIRDHead") 252 { 252 { 253 G4cout<<" >> Phantom " << fModel << " wi 253 G4cout<<" >> Phantom " << fModel << " will be built."<<G4endl; 254 } 254 } 255 255 256 if (fModel == "ORNLHead") 256 if (fModel == "ORNLHead") 257 { 257 { 258 G4cout<<" >> Phantom " << fModel << " wi 258 G4cout<<" >> Phantom " << fModel << " will be built."<<G4endl; 259 } 259 } 260 } 260 } 261 261 262 void G4HumanPhantomConstruction::ConstructSDan 262 void G4HumanPhantomConstruction::ConstructSDandField() 263 { 263 { 264 auto* SD = new G4HumanPhantomSD("SD", "Huma 264 auto* SD = new G4HumanPhantomSD("SD", "HumanPhantomCollection"); 265 G4SDManager::GetSDMpointer()->AddNewDetecto 265 G4SDManager::GetSDMpointer()->AddNewDetector(SD); 266 266 267 if (fModel != "ORNLMale" && fModel != "ORNLFem 267 if (fModel != "ORNLMale" && fModel != "ORNLFemale" && fModel!= "ORNLHead") 268 { 268 { 269 SetSensitiveDetector("logicalHead",SD); 269 SetSensitiveDetector("logicalHead",SD); 270 SetSensitiveDetector("logicalSkull",SD); 270 SetSensitiveDetector("logicalSkull",SD); 271 SetSensitiveDetector("logicalBrain",SD); 271 SetSensitiveDetector("logicalBrain",SD); 272 if (fModel != "MIRDHead") 272 if (fModel != "MIRDHead") 273 { 273 { 274 SetSensitiveDetector("logicalTrunk",SD); 274 SetSensitiveDetector("logicalTrunk",SD); 275 SetSensitiveDetector("logicalLeftLeg",SD 275 SetSensitiveDetector("logicalLeftLeg",SD); 276 SetSensitiveDetector("logicalRightLeg",S 276 SetSensitiveDetector("logicalRightLeg",SD); 277 SetSensitiveDetector("logicalLeftArmBone 277 SetSensitiveDetector("logicalLeftArmBone",SD); 278 SetSensitiveDetector("logicalRightArmBon 278 SetSensitiveDetector("logicalRightArmBone",SD); 279 SetSensitiveDetector("logicalLeftLegBone 279 SetSensitiveDetector("logicalLeftLegBone",SD); 280 SetSensitiveDetector("logicalRightLegBon 280 SetSensitiveDetector("logicalRightLegBone",SD); 281 SetSensitiveDetector("logicalUpperSpine" 281 SetSensitiveDetector("logicalUpperSpine",SD); 282 SetSensitiveDetector("logicalLeftScapula 282 SetSensitiveDetector("logicalLeftScapula",SD); 283 SetSensitiveDetector("logicalRightScapul 283 SetSensitiveDetector("logicalRightScapula",SD); 284 SetSensitiveDetector("logicalLeftAdrenal 284 SetSensitiveDetector("logicalLeftAdrenal",SD); 285 SetSensitiveDetector("logicalRightAdrena 285 SetSensitiveDetector("logicalRightAdrenal",SD); 286 SetSensitiveDetector("logicalThymus",SD) 286 SetSensitiveDetector("logicalThymus",SD); 287 SetSensitiveDetector("logicalLeftClavicl 287 SetSensitiveDetector("logicalLeftClavicle",SD); 288 SetSensitiveDetector("logicalRightClavic 288 SetSensitiveDetector("logicalRightClavicle",SD); 289 SetSensitiveDetector("logicalSmallIntest 289 SetSensitiveDetector("logicalSmallIntestine",SD); 290 SetSensitiveDetector("logicalRibCage",SD 290 SetSensitiveDetector("logicalRibCage",SD); 291 SetSensitiveDetector("logicalMiddleLower 291 SetSensitiveDetector("logicalMiddleLowerSpine",SD); 292 SetSensitiveDetector("logicalStomach",SD 292 SetSensitiveDetector("logicalStomach",SD); 293 SetSensitiveDetector("logicalUpperLargeI 293 SetSensitiveDetector("logicalUpperLargeIntestine",SD); 294 SetSensitiveDetector("logicalLowerLargeI 294 SetSensitiveDetector("logicalLowerLargeIntestine",SD); 295 SetSensitiveDetector("logicalSpleen",SD) 295 SetSensitiveDetector("logicalSpleen",SD); 296 SetSensitiveDetector("logicalPancreas",S 296 SetSensitiveDetector("logicalPancreas",SD); 297 SetSensitiveDetector("logicalLeftKidney" 297 SetSensitiveDetector("logicalLeftKidney",SD); 298 SetSensitiveDetector("logicalRightKidney 298 SetSensitiveDetector("logicalRightKidney",SD); 299 SetSensitiveDetector("logicalUrinaryBlad 299 SetSensitiveDetector("logicalUrinaryBladder",SD); 300 300 301 if(fSex=="Female"){ 301 if(fSex=="Female"){ 302 SetSensitiveDetector("logicalLeftOvary",SD); 302 SetSensitiveDetector("logicalLeftOvary",SD); 303 SetSensitiveDetector("logicalRightOvar 303 SetSensitiveDetector("logicalRightOvary",SD); 304 SetSensitiveDetector("logicalUterus",S 304 SetSensitiveDetector("logicalUterus",SD); 305 SetSensitiveDetector("logicalLeftBreas 305 SetSensitiveDetector("logicalLeftBreast",SD); 306 SetSensitiveDetector("logicalRightBrea 306 SetSensitiveDetector("logicalRightBreast",SD); 307 } 307 } 308 else if(fSex=="Male"){ 308 else if(fSex=="Male"){ 309 SetSensitiveDetector("logicalMaleGenitalia 309 SetSensitiveDetector("logicalMaleGenitalia",SD); 310 SetSensitiveDetector("logicalLeftTes 310 SetSensitiveDetector("logicalLeftTeste",SD); 311 SetSensitiveDetector("logicalRightTeste",S 311 SetSensitiveDetector("logicalRightTeste",SD); 312 } 312 } 313 } 313 } 314 }else 314 }else 315 { 315 { 316 SetSensitiveDetector("HeadVolume",SD); 316 SetSensitiveDetector("HeadVolume",SD); 317 SetSensitiveDetector("SkullVolume",SD); 317 SetSensitiveDetector("SkullVolume",SD); 318 SetSensitiveDetector("BrainVolume",SD); 318 SetSensitiveDetector("BrainVolume",SD); 319 G4cout <<"ORNL model!!!! Head is sensitive o 319 G4cout <<"ORNL model!!!! Head is sensitive only!!!" << G4endl; 320 } 320 } 321 } 321 } 322 322