Import Geant4 9.5.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 16:46:55 +02:00
parent 89a9605df1
commit b1eb5424d2
10957 changed files with 888481 additions and 160139 deletions
@@ -55,7 +55,7 @@ void G4CustomFemaleBuilder::BuildUterus(const G4String& colourName, G4bool solid
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4CustomFemaleBuilder::BuildUterus()", "human_phantom0001", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("Uterus",trunkVolume, colourName, solidVis, sensitivity); }
@@ -63,7 +63,7 @@ void G4CustomFemaleBuilder::BuildLeftOvary(const G4String& colourName, G4bool so
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4CustomFemaleBuilder::BuildLeftOvary()", "human_phantom0002", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("LeftOvary",trunkVolume, colourName,
solidVis, sensitivity);
@@ -72,9 +72,8 @@ if (trunkVolume == 0)
void G4CustomFemaleBuilder::BuildRightOvary(const G4String& colourName, G4bool solidVis, G4bool sensitivity )
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
if (trunkVolume == 0)
G4Exception("G4CustomFemaleBuilder::BuildRightOvary()", "human_phantom0003", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("RightOvary",trunkVolume, colourName,
solidVis, sensitivity);
@@ -85,7 +84,7 @@ void G4CustomFemaleBuilder::BuildVoxelLeftBreast(const G4String& colourName,
{
G4cout << "BuildVoxelLeftBreast" << G4endl;
if (motherVolume == 0)
G4Exception("The world volume is missing !!!!!");
G4Exception("G4CustomFemaleBuilder::BuildVoxelLeftBreast()", "human_phantom0004", FatalException, "The world volume is missing !!!!!");
G4VBodyFactory* customBody = new G4VoxelBreastFactory();
customBody -> CreateOrgan("LeftBreast",motherVolume, colourName,
@@ -99,7 +98,7 @@ void G4CustomFemaleBuilder::BuildVoxelRightBreast(const G4String& colourName,
G4bool sensitivity)
{
if (motherVolume == 0)
G4Exception("The world volume is missing !!!!!");
G4Exception("G4CustomFemaleBuilder::BuildVoxelRightBreast()", "human_phantom0005", FatalException, "The world volume is missing !!!!!");
G4VBodyFactory* customBody = new G4VoxelBreastFactory();
customBody -> CreateOrgan("RightBreast",motherVolume, colourName,
@@ -53,8 +53,7 @@ void G4FemaleBuilder::BuildUterus(const G4String& colourName, G4bool solidVis, G
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4FemaleBuilder::BuildUterus()", "human_phantom0006", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("Uterus",trunkVolume, colourName, solidVis, sensitivity); }
@@ -62,7 +61,7 @@ void G4FemaleBuilder::BuildLeftOvary(const G4String& colourName, G4bool solidVis
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4FemaleBuilder::BuildLeftOvary()", "human_phantom0007", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("LeftOvary",trunkVolume, colourName,
solidVis, sensitivity);
@@ -72,8 +71,7 @@ void G4FemaleBuilder::BuildRightOvary(const G4String& colourName, G4bool solidVi
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4FemaleBuilder::BuildRightOvary()", "human_phantom0008", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("RightOvary",trunkVolume, colourName,
solidVis, sensitivity);
@@ -83,7 +81,7 @@ void G4FemaleBuilder::BuildLeftBreast(const G4String& colourName,
G4bool solidVis, G4bool sensitivity)
{
if (motherVolume == 0)
G4Exception("The world volume is missing !!!!!");
G4Exception("G4FemaleBuilder::BuildLeftBreast()", "human_phantom0009", FatalException, "The world volume is missing !!!!!");
body -> CreateOrgan("LeftBreast",motherVolume, colourName,
solidVis, sensitivity);
@@ -95,7 +93,7 @@ void G4FemaleBuilder::BuildRightBreast(const G4String& colourName,
G4bool sensitivity)
{
if (motherVolume == 0)
G4Exception("The world volume is missing !!!!!");
G4Exception("G4FemaleBuilder::BuildRightBreast()", "human_phantom0010", FatalException, "The world volume is missing !!!!!");
body -> CreateOrgan("RightBreast",motherVolume, colourName,
solidVis, sensitivity);
@@ -1,155 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
// Authors: S. Guatelli and M. G. Pia, INFN Genova, Italy
//
// Based on code developed by the undergraduate student G. Guerrieri
// Note: this is a preliminary beta-version of the code; an improved
// version will be distributed in the next Geant4 public release, compliant
// with the design in a forthcoming publication, and subject to a
// design and code review.
//
#ifdef G4ANALYSIS_USE
#include <stdlib.h>
#include <fstream>
#include "G4HumanPhantomAnalysisManager.hh"
#include "G4ios.hh"
#include <AIDA/AIDA.h>
#include "G4RunManager.hh"
G4HumanPhantomAnalysisManager* G4HumanPhantomAnalysisManager::instance = 0;
G4HumanPhantomAnalysisManager::G4HumanPhantomAnalysisManager()
: aFact(0), treeFact(0),theTree(0), histogramFactory(0),tupFact(0),
ntuple(0), voxelLeftBreast(0), voxelRightBreast(0)
{
aFact = AIDA_createAnalysisFactory();
treeFact = aFact -> createTreeFactory();
}
G4HumanPhantomAnalysisManager::~G4HumanPhantomAnalysisManager()
{
delete voxelRightBreast;
voxelRightBreast = 0;
delete voxelLeftBreast;
voxelLeftBreast = 0;
delete ntuple;
ntuple = 0;
delete tupFact;
tupFact =0;
delete histogramFactory;
histogramFactory = 0;
delete treeFact;
treeFact = 0;
delete theTree;
theTree = 0;
delete aFact;
aFact = 0;
}
G4HumanPhantomAnalysisManager* G4HumanPhantomAnalysisManager::getInstance()
{
if (instance == 0) instance = new G4HumanPhantomAnalysisManager;
return instance;
}
void G4HumanPhantomAnalysisManager::book()
{
G4String fileName = "G4HumanPhantom.hbk";
theTree = treeFact->create(fileName,"hbook",false, true);
histogramFactory = aFact -> createHistogramFactory( *theTree );
tupFact = aFact -> createTupleFactory( *theTree );
voxelLeftBreast = histogramFactory->createHistogram2D("100",
"Edep(MeV) in LeftBreast, x= slice, y= sector",
10, -0.5, 9.5,
10, -0.5, 9.5);
voxelRightBreast = histogramFactory->createHistogram2D("110",
"Edep(MeV) in RightBreast, x= slice, y= sector",
10, -0.5, 9.5,
10, -0.5, 9.5);
// Defining the ntuple columns' name
std::string columnNames = "int id; float energy";
std::string options = "";
// Creating a ntuple
if (tupFact) ntuple = tupFact -> create("1","1",columnNames, options);
G4cout<<"Booking !!!!"<<G4endl;
}
void G4HumanPhantomAnalysisManager::bodyPartEnergyDeposit(G4int bodyPartID,
G4double eDep)
{
if (ntuple == 0)
{
G4cout << "AAAAAAAGH..... The Ntuple is 0" << G4endl;
return;
}
// Fill the ntuple
// Each organ is identified with an integer
G4int indexX = ntuple -> findColumn( "id" );
G4int indexEnergy = ntuple -> findColumn( "energy" );
ntuple -> fill(indexX, bodyPartID);
ntuple -> fill(indexEnergy, eDep);
ntuple->addRow();
}
void G4HumanPhantomAnalysisManager::voxelLeftBreastEnergyDeposit(G4int slice, G4int sector, G4double edep)
{
// G4cout << "analisis " << slice << " "<< sector << " "<< edep/MeV << G4endl;
voxelLeftBreast -> fill(slice,sector, edep);
}
void G4HumanPhantomAnalysisManager::voxelRightBreastEnergyDeposit(G4int slice, G4int sector, G4double edep)
{
//G4cout << "analisis " << slice << " "<< sector << " "<< edep/MeV << G4endl;
voxelRightBreast -> fill(slice,sector, edep);
}
void G4HumanPhantomAnalysisManager::finish()
{
theTree -> commit();
theTree -> close();
G4cout<<"closing the hbk file"<<G4endl;
}
#endif
@@ -190,8 +190,9 @@ G4VPhysicalVolume* G4HumanPhantomConstruction::Construct()
}
}
return builder->GetPhantom();
G4VPhysicalVolume* result=builder->GetPhantom();
delete builder;
return result;
}
void G4HumanPhantomConstruction::SetBodyPartSensitivity(G4String bodyPartName, G4bool bodyPartSensitivity)
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4HumanPhantomHit.cc,v 1.11 2007/05/15 14:45:35 guatelli Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4HumanPhantomHit.cc,v 1.11 2007-05-15 14:45:35 guatelli Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
#include "G4HumanPhantomHit.hh"
@@ -35,8 +35,8 @@
// * *
// **********************************
//
// $Id: G4HumanPhantomPhysicsList.cc,v 1.13 2010/11/16 15:28:49 allison Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4HumanPhantomPhysicsList.cc,v 1.13 2010-11-16 15:28:49 allison Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
#include "G4HumanPhantomPhysicsList.hh"
@@ -33,18 +33,21 @@
//
#include "G4HumanPhantomRunAction.hh"
#include "G4HumanPhantomAnalysisManager.hh"
#include "G4HumanPhantomAnalysis.hh"
#include "G4ios.hh"
#include "G4Run.hh"
#include "G4UnitsTable.hh"
#ifdef G4ANALYSIS_USE
#include "G4HumanPhantomAnalysisManager.hh"
#endif
G4HumanPhantomRunAction::G4HumanPhantomRunAction()
{}
{
// Create analysis manager
G4AnalysisManager::Instance();
}
G4HumanPhantomRunAction::~G4HumanPhantomRunAction()
{}
{
delete G4AnalysisManager::Instance();
}
void G4HumanPhantomRunAction::BeginOfRunAction(const G4Run* aRun)
{
@@ -84,12 +87,36 @@ void G4HumanPhantomRunAction::BeginOfRunAction(const G4Run* aRun)
energyTotal["logicalRightScapula"]=0.;
energyTotal["logicalLeftAdrenal"]=0.;
energyTotal["logicalRightAdrenal"]=0.;
// Create ROOT output file with ntuple containing the
// energy deposition in the organs.
// Get analysis manager
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
// Open a ROOT output file
//
G4String fileName = "g4humanphantom.root";
analysisManager -> OpenFile(fileName);
// Create the ntuple
analysisManager -> CreateNtuple("ntuple1", "Edep (MeV) in the organs");
analysisManager -> CreateNtupleDColumn("ID"); // Integer identifying the organ
analysisManager -> CreateNtupleDColumn("Edep"); // Energy deposition expressed in MeV
analysisManager -> FinishNtuple();
}
void G4HumanPhantomRunAction::EndOfRunAction(const G4Run* aRun)
{
G4cout << "Number of events = " << aRun->GetNumberOfEvent() << G4endl;
totalRunEnergyDeposit();
// Get analysis manager
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
// Save the ntuple and histograms and close the ROOT file
analysisManager -> Write();
analysisManager -> CloseFile();
}
@@ -117,10 +144,14 @@ void G4HumanPhantomRunAction::totalRunEnergyDeposit()
G4cout << "Energy Total in Run" <<bodypart << " = "
<< G4BestUnit(energyDep,"Energy")
<< G4endl;
#ifdef G4ANALYSIS_USE
G4HumanPhantomAnalysisManager* analysis = G4HumanPhantomAnalysisManager::getInstance();
analysis -> bodyPartEnergyDeposit(k,energyDep/MeV);
#endif
// Get analysis manager
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
// Fill ntuple
analysisManager -> FillNtupleDColumn(0, k);
analysisManager -> FillNtupleDColumn(1, energyDep/MeV);
analysisManager -> AddNtupleRow();
// }
i++;
k++;
@@ -130,7 +161,6 @@ void G4HumanPhantomRunAction::totalRunEnergyDeposit()
G4cout << "Total Energy deposit in the body is: "
<< totalEnergyDepositInPhantom/MeV << " MeV" <<G4endl;
}
@@ -46,39 +46,11 @@ G4MIRDTestes::~G4MIRDTestes()
{
}
G4VPhysicalVolume* G4MIRDTestes::ConstructTestes(G4VPhysicalVolume* mother, G4String sex, G4bool sensitivity)
G4VPhysicalVolume* G4MIRDTestes::ConstructTestes(G4VPhysicalVolume*, G4String, G4bool)
{
// Initialize GDML Processor
parser.Read( "gdmlData/"+sex+"/MIRDTestes.gdml" );
G4LogicalVolume* logicTestes = parser.GetVolume("TestesVolume");
G4ThreeVector position = parser.GetPosition("TestesPos");
G4ThreeVector rot = parser.GetRotation("TestesRot");
G4RotationMatrix* rm = new G4RotationMatrix();
rm->rotateX(rot.x()); rm->rotateY(rot.y()); rm->rotateZ(rot.z());
G4cout << "MIRD Testes still to be created !!!!!!" << G4endl;
// Define rotation and position here!
G4VPhysicalVolume* physTestes = new G4PVPlacement(rm,position,
"physicalTestes",
logicTestes,
mother,
false,
0);
// Sensitive Body Part
if (sensitivity==true)
{
G4SDManager* SDman = G4SDManager::GetSDMpointer();
logicTestes->SetSensitiveDetector( SDman->FindSensitiveDetector("BodyPartSD") );
}
// Visualization Attributes
G4VisAttributes* TestesVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,0.0));
TestesVisAtt->SetForceSolid(true);
logicTestes->SetVisAttributes(TestesVisAtt);
G4cout << "Testes created !!!!!!" << G4endl;
return physTestes;
return 0;
}
@@ -32,6 +32,8 @@
// design and code review.
//
//
#ifdef G4LIB_USE_GDML
#include "G4ORNLFemaleBodyFactory.hh"
#include "G4PhysicalVolumeStore.hh"
#include "G4GDMLParser.hh"
@@ -75,7 +77,7 @@ G4VPhysicalVolume* G4ORNLFemaleBodyFactory::CreateOrgan(const G4String& gdmlFile
logicOrgan,
motherVolume,
false,
0, true);
0);
// Sensitive Body Part
if (sensitivity==true)
@@ -106,4 +108,4 @@ G4VPhysicalVolume* G4ORNLFemaleBodyFactory::CreateOrgan(const G4String& gdmlFile
return physOrgan;
}
#endif
@@ -32,6 +32,8 @@
// design and code review.
//
//
#ifdef G4LIB_USE_GDML
#include "G4ORNLMaleBodyFactory.hh"
#include "G4PhysicalVolumeStore.hh"
#include "G4GDMLParser.hh"
@@ -94,3 +96,4 @@ G4VPhysicalVolume* G4ORNLMaleBodyFactory::CreateOrgan(const G4String& gdmlFile,
return physOrgan;
}
#endif
@@ -63,7 +63,7 @@ G4PhantomBuilder::~G4PhantomBuilder()
void G4PhantomBuilder::BuildTrunk(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (motherVolume == 0)
G4Exception("The world volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildTrunk()", "human_phantom0014", FatalException, "The world volume is missing !!!!!");
G4cout <<"MotherVolume: " << motherVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -73,7 +73,7 @@ void G4PhantomBuilder::BuildTrunk(const G4String& colourName, G4bool solidVis, G
void G4PhantomBuilder::BuildLeftLeg(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (motherVolume == 0)
G4Exception("The world volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildLeftLeg()", "human_phantom0015", FatalException, "The world volume is missing !!!!!");
G4cout <<"MotherVolume: " << motherVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -82,7 +82,7 @@ void G4PhantomBuilder::BuildLeftLeg(const G4String& colourName, G4bool solidVis,
void G4PhantomBuilder::BuildRightLeg(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (motherVolume == 0)
G4Exception("The world volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildRightLeg()", "human_phantom0016", FatalException, "The world volume is missing !!!!!");
G4cout <<"MotherVolume: " << motherVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -92,7 +92,7 @@ void G4PhantomBuilder::BuildRightLeg(const G4String& colourName, G4bool solidVis
void G4PhantomBuilder::BuildLeftLegBone(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (leftLegVolume == 0)
G4Exception("The left leg volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildLeftLegBone()", "human_phantom0017", FatalException, "The left leg volume is missing !!!!!");
G4cout <<"MotherVolume: " << leftLegVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -102,7 +102,7 @@ void G4PhantomBuilder::BuildLeftLegBone(const G4String& colourName, G4bool solid
void G4PhantomBuilder::BuildRightLegBone(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The right leg volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildRightLegBone()", "human_phantom0018", FatalException, "The right leg volume is missing !!!!!");
G4cout <<"MotherVolume: " << rightLegVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -112,7 +112,7 @@ void G4PhantomBuilder::BuildRightLegBone(const G4String& colourName, G4bool soli
void G4PhantomBuilder::BuildLeftArmBone(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The world volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildLeftArmBone()", "human_phantom0019", FatalException, "The world volume is missing !!!!!");
G4cout <<"MotherVolume: " << trunkVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -121,7 +121,7 @@ void G4PhantomBuilder::BuildLeftArmBone(const G4String& colourName, G4bool solid
void G4PhantomBuilder::BuildRightArmBone(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildRightArmBone()", "human_phantom0020", FatalException, "The trunk volume is missing !!!!!");
G4cout <<"MotherVolume: " << trunkVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -131,7 +131,7 @@ void G4PhantomBuilder::BuildRightArmBone(const G4String& colourName, G4bool soli
void G4PhantomBuilder::BuildLeftScapula(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildLeftScapula()", "human_phantom0021", FatalException, "The trunk volume is missing !!!!!");
G4cout <<"MotherVolume: " << trunkVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -141,7 +141,7 @@ void G4PhantomBuilder::BuildLeftScapula(const G4String& colourName, G4bool solid
void G4PhantomBuilder::BuildRightScapula(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildRightScapula()", "human_phantom0022", FatalException, "The trunk volume is missing !!!!!");
G4cout <<"MotherVolume: " << trunkVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -153,7 +153,7 @@ void G4PhantomBuilder::BuildRightScapula(const G4String& colourName, G4bool soli
void G4PhantomBuilder::BuildHead(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (motherVolume == 0)
G4Exception("The mother volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildHead()", "human_phantom0023", FatalException, "The mother volume is missing !!!!!");
G4cout <<"MotherVolume: " << motherVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -163,7 +163,7 @@ void G4PhantomBuilder::BuildHead(const G4String& colourName, G4bool solidVis, G4
void G4PhantomBuilder::BuildSkull(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (headVolume == 0)
G4Exception("The head volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildSkull()", "human_phantom0024", FatalException, "The head volume is missing !!!!!");
G4cout <<"MotherVolume: " << headVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -173,7 +173,7 @@ void G4PhantomBuilder::BuildSkull(const G4String& colourName, G4bool solidVis, G
void G4PhantomBuilder::BuildUpperSpine(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (headVolume == 0)
G4Exception("The head volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildUpperSpine()", "human_phantom0025", FatalException, "The head volume is missing !!!!!");
G4cout <<"MotherVolume: " << headVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -183,7 +183,7 @@ void G4PhantomBuilder::BuildUpperSpine(const G4String& colourName, G4bool solidV
void G4PhantomBuilder::BuildMiddleLowerSpine(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildMiddleLowerSpine()", "human_phantom0026", FatalException, "The trunk volume is missing !!!!!");
G4cout <<"MotherVolume: " << trunkVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -193,7 +193,7 @@ void G4PhantomBuilder::BuildMiddleLowerSpine(const G4String& colourName, G4bool
void G4PhantomBuilder::BuildPelvis(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildPelvis()", "human_phantom0027", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan( "Pelvis",trunkVolume,
colourName, solidVis, sensitivity);
@@ -203,7 +203,7 @@ void G4PhantomBuilder::BuildPelvis(const G4String& colourName, G4bool solidVis,
void G4PhantomBuilder::BuildClavicles(G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildClavicles()", "human_phantom0028", FatalException, "The trunk volume is missing !!!!!");
body -> CreateClavicles(trunkVolume, sensitivity);
}
@@ -212,7 +212,7 @@ void G4PhantomBuilder::BuildClavicles(G4bool sensitivity)
void G4PhantomBuilder::BuildBrain(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (headVolume == 0)
G4Exception("The head volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildBrain()", "human_phantom0029", FatalException, "The head volume is missing !!!!!");
body -> CreateOrgan("Brain",headVolume, colourName, solidVis, sensitivity);
}
@@ -220,14 +220,14 @@ void G4PhantomBuilder::BuildBrain(const G4String& colourName, G4bool solidVis, G
void G4PhantomBuilder::BuildHeart(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildHeart()", "human_phantom0030", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("Heart", trunkVolume,colourName, solidVis, sensitivity);
}
void G4PhantomBuilder::BuildLeftLung(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildLeftLung()", "human_phantom0031", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("LeftLung",trunkVolume,colourName,solidVis, sensitivity);
}
@@ -235,7 +235,7 @@ void G4PhantomBuilder::BuildLeftLung(const G4String& colourName, G4bool solidVis
void G4PhantomBuilder::BuildRightLung(const G4String& colourName, G4bool solidVis, G4bool sensitivity )
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildRightLung()", "human_phantom0032", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("RightLung",trunkVolume,colourName, solidVis, sensitivity);
}
@@ -243,7 +243,7 @@ void G4PhantomBuilder::BuildRightLung(const G4String& colourName, G4bool solidVi
void G4PhantomBuilder::BuildStomach(const G4String& colourName, G4bool solidVis, G4bool sensitivity )
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildStomach()", "human_phantom0033", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("Stomach",trunkVolume,colourName, solidVis, sensitivity);
}
@@ -251,7 +251,7 @@ void G4PhantomBuilder::BuildStomach(const G4String& colourName, G4bool solidVis,
void G4PhantomBuilder::BuildRibCage(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildRibCage()", "human_phantom0034", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("RibCage",trunkVolume,colourName, solidVis, sensitivity);
}
@@ -259,7 +259,7 @@ void G4PhantomBuilder::BuildRibCage(const G4String& colourName, G4bool solidVis,
void G4PhantomBuilder::BuildSpleen(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildSpleen()", "human_phantom0035", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("Spleen", trunkVolume,colourName, solidVis, sensitivity);
}
@@ -267,7 +267,7 @@ void G4PhantomBuilder::BuildSpleen(const G4String& colourName, G4bool solidVis,
void G4PhantomBuilder::BuildUpperLargeIntestine(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildUpperLargeIntestine()", "human_phantom0036", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("UpperLargeIntestine",trunkVolume, colourName, solidVis, sensitivity);
}
@@ -275,7 +275,7 @@ void G4PhantomBuilder::BuildUpperLargeIntestine(const G4String& colourName, G4bo
void G4PhantomBuilder::BuildLowerLargeIntestine(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildLowerLargeIntestine()", "human_phantom0037", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("LowerLargeIntestine", trunkVolume, colourName,solidVis, sensitivity);
}
@@ -283,7 +283,7 @@ void G4PhantomBuilder::BuildLowerLargeIntestine(const G4String& colourName, G4bo
void G4PhantomBuilder::BuildEsophagus(G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildEsophagus()", "human_phantom0038", FatalException, "The trunk volume is missing !!!!!");
body -> CreateEsophagus(trunkVolume, sensitivity);
}
@@ -291,14 +291,14 @@ void G4PhantomBuilder::BuildEsophagus(G4bool sensitivity)
void G4PhantomBuilder::BuildLeftKidney(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildLeftKidney()", "human_phantom0039", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("LeftKidney", trunkVolume,colourName, solidVis, sensitivity);
}
void G4PhantomBuilder::BuildRightKidney(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildRightKidney()", "human_phantom0040", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("RightKidney",trunkVolume,colourName, solidVis, sensitivity);
}
@@ -306,7 +306,7 @@ void G4PhantomBuilder::BuildRightKidney(const G4String& colourName, G4bool solid
void G4PhantomBuilder::BuildLeftAdrenal(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildLeftAdrenal()", "human_phantom0041", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("LeftAdrenal", trunkVolume,colourName, solidVis, sensitivity);
}
@@ -314,7 +314,7 @@ void G4PhantomBuilder::BuildLeftAdrenal(const G4String& colourName, G4bool solid
void G4PhantomBuilder::BuildRightAdrenal(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildRightAdrenal()", "human_phantom0042", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("RightAdrenal", trunkVolume,colourName, solidVis, sensitivity);
}
@@ -323,14 +323,14 @@ void G4PhantomBuilder::BuildRightAdrenal(const G4String& colourName, G4bool soli
void G4PhantomBuilder::BuildLiver(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildLiver()", "human_phantom0043", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("Liver", trunkVolume,colourName, solidVis, sensitivity);
}
void G4PhantomBuilder::BuildPancreas(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildPancreas()", "human_phantom0044", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("Pancreas",trunkVolume,colourName, solidVis, sensitivity);
}
@@ -338,7 +338,7 @@ void G4PhantomBuilder::BuildPancreas(const G4String& colourName, G4bool solidVis
void G4PhantomBuilder::BuildUrinaryBladder(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (trunkVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildUrinaryBladder()", "human_phantom0045", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("UrinaryBladder",trunkVolume, colourName, solidVis, sensitivity);
}
@@ -346,7 +346,7 @@ void G4PhantomBuilder::BuildUrinaryBladder(const G4String& colourName, G4bool so
void G4PhantomBuilder::BuildThyroid(const G4String& colourName, G4bool solidVis, G4bool sensitivity )
{
if (headVolume == 0)
G4Exception("The trunk volume is missing !!!!!");
G4Exception("G4PhantomBuilder::BuildThyroid()", "human_phantom0046", FatalException, "The trunk volume is missing !!!!!");
body -> CreateOrgan("Thyroid",headVolume, colourName,solidVis, sensitivity);
}
@@ -368,7 +368,22 @@ void G4PhantomBuilder::SetModel(G4String modelFlag)
model = modelFlag;
if(model=="MIRD" || model =="MIX") body = new G4MIRDBodyFactory();
if(model=="ORNLFemale") body = new G4ORNLFemaleBodyFactory();
if(model=="ORNLMale") body = new G4ORNLMaleBodyFactory();
}
if(model=="ORNLFemale")
{
#ifdef G4LIB_USE_GDML
body = new G4ORNLFemaleBodyFactory();
#else
G4cout << model << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl;
#endif
}
if(model=="ORNLMale")
{
#ifdef G4LIB_USE_GDML
body = new G4ORNLMaleBodyFactory();
#else
G4cout << model << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl;
#endif
}
}
@@ -54,7 +54,7 @@ G4PhantomHeadBuilder::~G4PhantomHeadBuilder()
void G4PhantomHeadBuilder::BuildHead(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (motherVolume == 0)
G4Exception("The moder Volume volume is missing !!!!!");
G4Exception("G4PhantomHeadBuilder::BuildHead()", "human_phantom0011", FatalException, "The moder Volume volume is missing !!!!!");
G4cout <<"MotherVolume: " << motherVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -64,7 +64,7 @@ void G4PhantomHeadBuilder::BuildHead(const G4String& colourName, G4bool solidVis
void G4PhantomHeadBuilder::BuildSkull(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (headVolume == 0)
G4Exception("The head volume is missing !!!!!");
G4Exception("G4PhantomHeadBuilder::BuildSkull()", "human_phantom0012", FatalException, "The head volume is missing !!!!!");
G4cout <<"MotherVolume: " << headVolume -> GetName()<< G4endl;
G4cout << "sensitivity : "<< sensitivity << G4endl;
@@ -74,7 +74,7 @@ void G4PhantomHeadBuilder::BuildSkull(const G4String& colourName, G4bool solidVi
void G4PhantomHeadBuilder::BuildBrain(const G4String& colourName, G4bool solidVis, G4bool sensitivity)
{
if (headVolume == 0)
G4Exception("The head volume is missing !!!!!");
G4Exception("G4PhantomHeadBuilder::BuildBrain()", "human_phantom0013", FatalException, "The head volume is missing !!!!!");
body -> CreateOrgan("Brain",headVolume, colourName, solidVis, sensitivity);
}
@@ -95,7 +95,23 @@ void G4PhantomHeadBuilder::SetModel(G4String modelFlag)
model = modelFlag;
if(model=="MIRD" || model =="MIX") body = new G4MIRDBodyFactory();
if(model=="ORNLFemale") body = new G4ORNLFemaleBodyFactory();
if(model=="ORNLMale") body = new G4ORNLMaleBodyFactory();
if(model=="ORNLFemale")
{
#ifdef G4LIB_USE_GDML
body = new G4ORNLFemaleBodyFactory();
#else
G4cout << model << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl;
#endif
}
if(model=="ORNLMale")
{
#ifdef G4LIB_USE_GDML
body = new G4ORNLMaleBodyFactory();
#else
G4cout << model << " Working with GDML only! set G4LIB_USE_GDML 1" << G4endl;
#endif
}
}
@@ -100,18 +100,18 @@ G4VPhysicalVolume* G4VoxelLeftBreast::Construct(const G4String& volumeName,
G4VPhysicalVolume* physBreast = new G4PVPlacement(matrix,G4ThreeVector(10.*cm, 52.* cm, 8.7 *cm),
"physicalVoxelLeftBreast",
breast_log,
mother,
false,
0, true);
"physicalVoxelLeftBreast",
breast_log,
mother,
false,
0, true);
G4VPhysicalVolume* physInnerBreast = new G4PVPlacement(0,0,
"LeftBreast",
innerBreast_log,
physBreast,
false,
0, true);
G4VPhysicalVolume* physInnerBreast = new G4PVPlacement(0,G4ThreeVector(),
"LeftBreast",
innerBreast_log,
physBreast,
false,
0, true);
/*
// Parameterisation with Replicas
@@ -37,9 +37,7 @@
#include "G4ThreeVector.hh"
#include "G4SDManager.hh"
#include "G4ios.hh"
#ifdef G4ANALYSIS_USE
#include "G4HumanPhantomAnalysisManager.hh"
#endif
#include "G4HumanPhantomAnalysis.hh"
G4VoxelLeftBreastSD::G4VoxelLeftBreastSD(G4String name)
:G4VSensitiveDetector(name)
@@ -66,20 +64,19 @@ G4bool G4VoxelLeftBreastSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist
if(edep != 0)
{
#ifdef G4ANALYSIS_USE
G4HumanPhantomAnalysisManager* analysis =
G4HumanPhantomAnalysisManager::getInstance();
// Get analysis manager
/* G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
if (aStep -> GetPreStepPoint() -> GetPhysicalVolume() ->
GetName() == "LeftBreast")
{
G4int sector = ROhist -> GetReplicaNumber();
G4int slice = ROhist -> GetReplicaNumber(1);
analysis -> voxelLeftBreastEnergyDeposit(slice,sector,edep/MeV);
analysisManager -> FillH2(1,slice, sector,edep/MeV);
// G4cout << "LeftBreast:" << "slice: " << slice << ",sector: "<< sector << " "<< edep/MeV << G4endl;
}
#endif
*/
}
return true;
}
@@ -100,18 +100,18 @@ G4VPhysicalVolume* G4VoxelRightBreast::Construct(const G4String& volumeName,
G4VPhysicalVolume* physBreast = new G4PVPlacement(matrix,G4ThreeVector(-10.*cm, 52.* cm, 8.7 *cm),
"physicalVoxelRightBreast",
breast_log,
mother,
false,
0, true);
"physicalVoxelRightBreast",
breast_log,
mother,
false,
0, true);
G4VPhysicalVolume* physInnerBreast = new G4PVPlacement(0,0,
"RightBreast",
innerBreast_log,
physBreast,
false,
0, true);
G4VPhysicalVolume* physInnerBreast = new G4PVPlacement(0,G4ThreeVector(),
"RightBreast",
innerBreast_log,
physBreast,
false,
0, true);
// Parameterisation with Replicas
@@ -37,9 +37,7 @@
#include "G4ThreeVector.hh"
#include "G4SDManager.hh"
#include "G4ios.hh"
#ifdef G4ANALYSIS_USE
#include "G4HumanPhantomAnalysisManager.hh"
#endif
#include "G4HumanPhantomAnalysis.hh"
G4VoxelRightBreastSD::G4VoxelRightBreastSD(G4String name)
:G4VSensitiveDetector(name)
@@ -67,20 +65,18 @@ G4bool G4VoxelRightBreastSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhis
if(edep != 0)
{
// Get analysis manager
// G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
#ifdef G4ANALYSIS_USE
G4HumanPhantomAnalysisManager* analysis =
G4HumanPhantomAnalysisManager::getInstance();
if (aStep -> GetPreStepPoint() -> GetPhysicalVolume() ->
GetName() == "RightBreast")
{
G4int sector = ROhist -> GetReplicaNumber();
G4int slice = ROhist -> GetReplicaNumber(1);
analysis -> voxelRightBreastEnergyDeposit(slice,sector,edep/MeV);
/// if (aStep -> GetPreStepPoint() -> GetPhysicalVolume() ->
// GetName() == "RightBreast")
// {
// G4int sector = ROhist -> GetReplicaNumber();
// G4int slice = ROhist -> GetReplicaNumber(1);
//analysisManager -> FillH2(2, slice,sector,edep/MeV);
//G4cout << "RightBreast:" << "slice: " << slice << ",sector: "<< sector << " "<< edep/MeV << G4endl;
}
#endif
// }
}
return true;
}