Import Geant4 11.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2021-12-10 16:15:15 +00:00
committed by Ben Morgan
parent 6399a014b6
commit 80e2389dd8
3932 changed files with 202519 additions and 246221 deletions
@@ -82,7 +82,6 @@
#include "G4hIonisation.hh"
#include "G4ionIonisation.hh"
#include "G4alphaIonisation.hh"
#include "G4IonParametrisedLossModel.hh"
#include "G4NuclearStopping.hh"
@@ -45,8 +45,8 @@
#include "G4UImanager.hh"
#include "G4ios.hh"
#include "G4SystemOfUnits.hh"
#include "G4AnalysisManager.hh"
#include "SAXSAnalysis.hh"
#include "SAXSEventAction.hh"
#include "SAXSSensitiveDetectorHit.hh"
@@ -44,17 +44,14 @@
#include "G4ParticleTable.hh"
//EM Physics Lists
#include "G4EmParameters.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmLivermorePhysics.hh"
#include "G4EmPenelopePhysics.hh"
#include "G4EmLowEPPhysics.hh"
#include "G4EmStandardPhysics_option4.hh"
#include "G4EmPenelopePhysicsMI.hh"
//EM options
#include "G4EmSaturation.hh"
#include "G4LossTableManager.hh"
#include "G4UAtomicDeexcitation.hh"
//Hadronic and Extra Physics Lists
#include "G4EmExtraPhysics.hh"
@@ -63,21 +60,8 @@
#include "G4IonPhysics.hh"
#include "G4StoppingPhysics.hh"
//Optical processes
#include "G4Cerenkov.hh"
#include "G4Scintillation.hh"
#include "G4OpAbsorption.hh"
#include "G4OpRayleigh.hh"
#include "G4OpMieHG.hh"
#include "G4OpBoundaryProcess.hh"
//Decays
#include "G4Decay.hh"
#include "G4DecayPhysics.hh"
#include "G4RadioactiveDecayPhysics.hh"
#include "G4PhysicsListHelper.hh"
#include "G4RadioactiveDecayBase.hh"
#include "G4NuclideTable.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -108,7 +92,10 @@ SAXSPhysicsList::SAXSPhysicsList():
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
SAXSPhysicsList::~SAXSPhysicsList() {}
SAXSPhysicsList::~SAXSPhysicsList()
{
delete fPMessenger;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -124,16 +111,14 @@ void SAXSPhysicsList::ConstructProcess()
//transportation
AddTransportation();
//Atomic deexcitation
G4EmParameters* param = G4EmParameters::Instance();
param->SetFluo(true); //Activate deexcitation processes and fluorescence
param->SetAuger(true); //Activate Auger effect if deexcitation is activated
param->SetPixe(true); //Activate Particle Induced X-Ray Emission (PIXE)
//EM physics
fEmPhysicsList->ConstructProcess();
//Atomic deexcitation
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
de->SetFluo(true); //Activate deexcitation processes and fluorescence
de->SetAuger(true); //Activate Auger effect if deexcitation is activated
de->SetAugerCascade(true); //Activate Auger Cascade if deexcitation is activated
de->SetPIXE(true); //Activate Particle Induced X-Ray Emission (PIXE)
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -144,29 +129,29 @@ void SAXSPhysicsList::SelectPhysicsList(const G4String& name)
G4cout << "### PhysicsList::SelectPhysicsList: <" << name << "> ###" << G4endl;
}
if (name == "standard") {
if (name == "emstandard") {
delete fEmPhysicsList;
fEmPhysicsList = new G4EmStandardPhysics(verboseLevel);
G4cout << "### selected Standard PhysicsList ###" << G4endl;
} else if (name == "standard_option4") {
} else if (name == "emstandard_opt4") {
delete fEmPhysicsList;
fEmPhysicsList = new G4EmStandardPhysics_option4(verboseLevel);
G4cout << "### selected Standard_option4 PhysicsList ###" << G4endl;
} else if (name == "livermore") {
} else if (name == "emlivermore") {
delete fEmPhysicsList;
fEmPhysicsList = new G4EmLivermorePhysics(verboseLevel);
G4cout << "### selected Livermore PhysicsList ###" << G4endl;
} else if (name == "penelope") {
} else if (name == "empenelope") {
delete fEmPhysicsList;
fEmPhysicsList = new G4EmPenelopePhysics(verboseLevel);
G4cout << "### selected Penelope PhysicsList ###" << G4endl;
} else if (name == "penelopeMI") {
} else if (name == "empenelopeMI") {
delete fEmPhysicsList;
fEmPhysicsList = new G4EmPenelopePhysicsMI(verboseLevel,"G4EmPenelopeMI",fUseMIFlag);
G4cout << "### selected Penelope PhysicsList with MI effects ###" << G4endl;
} else if (name == "LowEP") {
} else if (name == "emlowenergy") {
delete fEmPhysicsList;
fEmPhysicsList = new G4EmLowEPPhysics(1,name);
fEmPhysicsList = new G4EmLowEPPhysics(verboseLevel);
G4cout << "### selected LowEP PhysicsList ###" << G4endl;
} else {
G4cout << "### PhysicsList::SelectPhysicsList: <" << name
@@ -174,17 +159,6 @@ void SAXSPhysicsList::SelectPhysicsList(const G4String& name)
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void SAXSPhysicsList::SetCuts()
{
//set the default cuts value for all particle types
SetCutsWithDefault();
if (verboseLevel>0) DumpCutValuesTable();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void SAXSPhysicsList::SetDefaultCutsValue(G4double value)
{
//define a new default cuts value
@@ -32,23 +32,18 @@
#include "G4RunManager.hh"
#include "G4UnitsTable.hh"
#include "G4SystemOfUnits.hh"
#include "G4AnalysisManager.hh"
#include "SAXSRunAction.hh"
#include "SAXSRunActionMessenger.hh"
#include "SAXSDetectorConstruction.hh"
#include "SAXSAnalysis.hh"
#include "G4SDManager.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
SAXSRunAction::SAXSRunAction():
G4UserRunAction(),
fIsFileOpened(false)
SAXSRunAction::SAXSRunAction(): G4UserRunAction()
{
//set the number of events to print progress during the simulation
G4RunManager::GetRunManager()->SetPrintProgress(10000);
//define the messenger
fMessenger = new SAXSRunActionMessenger(this);
@@ -56,48 +51,46 @@ SAXSRunAction::SAXSRunAction():
fFileName = "output";
//Create the analysis manager
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
analysisManager->SetFileName(fFileName);
analysisManager->SetNtupleMerging(true); //only for root
analysisManager->SetVerboseLevel(1);
fAnalysisManager = G4AnalysisManager::Instance();
fAnalysisManager->SetDefaultFileType("root");
fAnalysisManager->SetFileName(fFileName);
fAnalysisManager->SetNtupleMerging(true); //only for root
fAnalysisManager->SetVerboseLevel(1);
//Creating the SD scoring ntuple
analysisManager->CreateNtuple("part","Particle");
analysisManager->CreateNtupleDColumn("e");
analysisManager->CreateNtupleDColumn("posx");
analysisManager->CreateNtupleDColumn("posy");
analysisManager->CreateNtupleDColumn("posz");
analysisManager->CreateNtupleDColumn("momx");
analysisManager->CreateNtupleDColumn("momy");
analysisManager->CreateNtupleDColumn("momz");
analysisManager->CreateNtupleDColumn("t");
analysisManager->CreateNtupleIColumn("type");
analysisManager->CreateNtupleIColumn("trackID");
analysisManager->CreateNtupleIColumn("NRi");
analysisManager->CreateNtupleIColumn("NCi");
analysisManager->CreateNtupleIColumn("NDi");
analysisManager->CreateNtupleIColumn("eventID");
analysisManager->CreateNtupleDColumn("weight");
analysisManager->FinishNtuple();
fAnalysisManager->CreateNtuple("part","Particle");
fAnalysisManager->CreateNtupleDColumn("e");
fAnalysisManager->CreateNtupleDColumn("posx");
fAnalysisManager->CreateNtupleDColumn("posy");
fAnalysisManager->CreateNtupleDColumn("posz");
fAnalysisManager->CreateNtupleDColumn("momx");
fAnalysisManager->CreateNtupleDColumn("momy");
fAnalysisManager->CreateNtupleDColumn("momz");
fAnalysisManager->CreateNtupleDColumn("t");
fAnalysisManager->CreateNtupleIColumn("type");
fAnalysisManager->CreateNtupleIColumn("trackID");
fAnalysisManager->CreateNtupleIColumn("NRi");
fAnalysisManager->CreateNtupleIColumn("NCi");
fAnalysisManager->CreateNtupleIColumn("NDi");
fAnalysisManager->CreateNtupleIColumn("eventID");
fAnalysisManager->CreateNtupleDColumn("weight");
fAnalysisManager->FinishNtuple();
//Creating ntuple for scattering
analysisManager->CreateNtuple("scatt","Scattering");
analysisManager->CreateNtupleIColumn("processID");
analysisManager->CreateNtupleDColumn("e");
analysisManager->CreateNtupleDColumn("theta");
analysisManager->CreateNtupleDColumn("weight");
analysisManager->FinishNtuple();
fAnalysisManager->CreateNtuple("scatt","Scattering");
fAnalysisManager->CreateNtupleIColumn("processID");
fAnalysisManager->CreateNtupleDColumn("e");
fAnalysisManager->CreateNtupleDColumn("theta");
fAnalysisManager->CreateNtupleDColumn("weight");
fAnalysisManager->FinishNtuple();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
SAXSRunAction::~SAXSRunAction() {
//write results
if (fIsFileOpened)
{
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
analysisManager->Write();
}
SAXSRunAction::~SAXSRunAction()
{
delete fMessenger;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -107,7 +100,7 @@ void SAXSRunAction::BeginOfRunAction(const G4Run*)
//open the output file
if (!fIsFileOpened)
{
G4AnalysisManager::Instance()->OpenFile(fFileName);
fAnalysisManager->OpenFile(fFileName);
fIsFileOpened = true;
}
}
@@ -133,12 +126,15 @@ void SAXSRunAction::EndOfRunAction(const G4Run* run)
<< G4endl
<< " The run had " << nofEvents << " events";
}
if (fIsFileOpened) {
fAnalysisManager->Write();
fAnalysisManager->CloseFile();
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void SAXSRunAction::SetFileName(G4String filename)
void SAXSRunAction::SetFileName(const G4String& filename)
{
//method to set the output filename
if (filename != "") fFileName = filename;
@@ -45,11 +45,11 @@
#include "G4UImanager.hh"
#include "G4ios.hh"
#include "G4SystemOfUnits.hh"
#include "G4AnalysisManager.hh"
#include "SAXSSteppingAction.hh"
#include "SAXSEventAction.hh"
#include "SAXSDetectorConstruction.hh"
#include "SAXSAnalysis.hh"
#include "G4Step.hh"
#include "G4Track.hh"