Import Geant4 5.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:28:22 +02:00
parent fbd4999cf7
commit 4aea781e80
5454 changed files with 223141 additions and 67347 deletions
@@ -212,11 +212,11 @@ void DMXAnalysisManager::Finish()
{
// Committing the transaction with the tree
G4std::cout << "Committing..." << G4std::endl;
std::cout << "Committing..." << std::endl;
// write all histograms to file
tree->commit();
G4std::cout << "Closing the tree..." << G4std::endl;
std::cout << "Closing the tree..." << std::endl;
// close (will again commit)
tree->close();
@@ -127,6 +127,21 @@
metalAl->AddElement(Al, 1);
// photocathode aluminium
G4Material* cathmetalAl = new G4Material
(name="CathodeMetalAluminium", density=2.700*g/cm3, ncomponents=1);
cathmetalAl->AddElement(Al, 1);
G4double cathmetal_PP[NUMENTRIES] = { 5.0*eV, 6.69*eV, 7.50*eV };
G4double cathmetal_RIND[NUMENTRIES] = { 1.51, 1.57, 1.61 }; // ref index
G4double cathmetal_ABSL[NUMENTRIES] = { 1.e-20*m, 1.e-20*m, 1.e-20*m };// atten length
// G4double cathmetal_ABSL[NUMENTRIES] = { 3.0*cm, 3.0*cm, 3.0*cm };// atten length
G4MaterialPropertiesTable *cathmetal_mt = new G4MaterialPropertiesTable();
cathmetal_mt->AddProperty("RINDEX", cathmetal_PP, cathmetal_RIND,NUMENTRIES);
cathmetal_mt->AddProperty("ABSLENGTH", cathmetal_PP, cathmetal_ABSL, NUMENTRIES);
cathmetalAl->SetMaterialPropertiesTable(cathmetal_mt);
// iron
G4Element* Fe = new G4Element
(name="Iron" ,symbol="Fe" , z= 26., a=55.85*g/mole);
@@ -246,7 +261,8 @@ jacketflange_mat = ssteel;
vacuum_mat = vacuum;
copper_mat = metalCu;
vessel_mat = ssteel;
GXe_mat = GXe;
// GXe_mat = GXe;
GXe_mat = LXe;
CuShield_mat = metalCu;
LXe_mat = LXe;
alpha_mat = metalPb;
@@ -255,4 +271,4 @@ jacketflange_mat = ssteel;
mirror_mat = metalAl;
grid_mat = LXe;
pmt_mat = quartz;
phcath_mat = metalAl;
phcath_mat = cathmetalAl;
@@ -534,16 +534,16 @@
G4RotationMatrix rotMatrixDesk4;
rotMatrixDesk4.rotateZ(0.0*deg);
for (i=0; i<3; i++)
for (G4int j=0; j<3; j++)
{
if( i == 2)
if( j == 2)
{
desk_Y += crateWidth;
crate_Y = desk_Y - 0.5*(desk4Width + crateWidth);
}
desk4_phys = new G4PVPlacement
(G4Transform3D(rotMatrixDesk4, G4ThreeVector(desk_X, desk_Y, desk_Z)),
"desk4_phys", desk4_log, lab_phys, false, i);
"desk4_phys", desk4_log, lab_phys, false, j);
desk_Y += desk4Width+2.0*cm;
}
@@ -65,8 +65,8 @@
#include "G4UImanager.hh"
#include "G4UnitsTable.hh"
#include "G4ios.hh"
#include "g4std/fstream"
#include "g4std/iomanip"
#include <fstream>
#include <iomanip>
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -295,9 +295,9 @@ void DMXEventAction::writeScintHitsToFile(void) {
// G4String filename="hits.out";
G4String filename=runAct->GetsavehitsFile();
G4std::ofstream hitsfile(filename, G4std::ios::app);
std::ofstream hitsfile(filename, std::ios::app);
if(!event_id) {
G4std::ofstream hitsfile(filename);
std::ofstream hitsfile(filename);
hitsfile <<"Evt Eprim Etot LXe LXeTime PMT PMTTime Seed1 Seed2 First Flags"
<< G4endl;
hitsfile <<"# MeV MeV hits ns hits ns hit"
@@ -310,20 +310,20 @@ void DMXEventAction::writeScintHitsToFile(void) {
if(hitsfile.is_open()) {
hitsfile << G4std::setiosflags(G4std::ios::fixed)
<< G4std::setprecision(4)
<< G4std::setiosflags(G4std::ios::left)
<< G4std::setw(6)
hitsfile << std::setiosflags(std::ios::fixed)
<< std::setprecision(4)
<< std::setiosflags(std::ios::left)
<< std::setw(6)
<< event_id << "\t"
<< energy_pri/MeV << "\t"
<< totEnergy/MeV << "\t"
<< S_hits << "\t"
<< G4std::setiosflags(G4std::ios::scientific)
<< G4std::setprecision(2)
<< std::setiosflags(std::ios::scientific)
<< std::setprecision(2)
<< firstLXeHitTime/nanosecond << "\t"
<< P_hits << "\t"
<< G4std::setiosflags(G4std::ios::fixed)
<< G4std::setprecision(4)
<< std::setiosflags(std::ios::fixed)
<< std::setprecision(4)
<< aveTimePmtHits/nanosecond << "\t"
<< *seeds << "\t"
<< *(seeds+1) << "\t"
@@ -357,15 +357,15 @@ void DMXEventAction::writePmtHitsToFile(const DMXPmtHitsCollection* hits) {
// G4String filename="pmt.out";
G4String filename=runAct->GetsavepmtFile();
G4std::ofstream pmtfile(filename, G4std::ios::app);
std::ofstream pmtfile(filename, std::ios::app);
G4double x; G4double y; G4double z;
if(pmtfile.is_open()) {
pmtfile << "Hit# X, mm Y, mm Z, mm" << G4endl;
pmtfile << G4std::setiosflags(G4std::ios::fixed)
<< G4std::setprecision(3)
<< G4std::setiosflags(G4std::ios::left)
<< G4std::setw(6);
pmtfile << std::setiosflags(std::ios::fixed)
<< std::setprecision(3)
<< std::setiosflags(std::ios::left)
<< std::setw(6);
for (G4int i=0; i<P_hits; i++)
{
x = ((*hits)[i]->GetPos()).x()/mm;
@@ -126,7 +126,7 @@ void DMXEventActionMessenger::SetNewValue
if(command == DrawHitsCmd) {
G4int vl;
const char* t = newValue;
G4std::istrstream is((char*)t);
std::istrstream is((char*)t);
is >> vl;
eventAction->SetDrawHitsFlag(vl!=0);
}
@@ -134,7 +134,7 @@ void DMXEventActionMessenger::SetNewValue
if(command == SavePmtCmd) {
G4int vl;
const char* t = newValue;
G4std::istrstream is((char*)t);
std::istrstream is((char*)t);
is >> vl;
eventAction->SetSavePmtFlag(vl!=0);
}
@@ -142,7 +142,7 @@ void DMXEventActionMessenger::SetNewValue
if(command == SaveHitsCmd) {
G4int vl;
const char* t = newValue;
G4std::istrstream is((char*)t);
std::istrstream is((char*)t);
is >> vl;
eventAction->SetSaveHitsFlag(vl!=0);
}
@@ -22,7 +22,7 @@
//
//
// $Id: DMXMinEkineCuts.cc,v 1.2 2002/06/18 10:17:30 ahoward Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// --------------------------------------------------------------
@@ -57,10 +57,10 @@
#include "G4UIcmdWithADouble.hh"
#include "G4UIcmdWithABool.hh"
#include "G4ios.hh"
#include "g4std/fstream"
#include "g4std/iomanip"
#include <fstream>
#include <iomanip>
#include "G4Tokenizer.hh"
#include "g4std/strstream"
#include <strstream>
///////////////////////////////////////////////////////////////////////////////
DMXParticleSourceMessenger::DMXParticleSourceMessenger
@@ -34,6 +34,11 @@
// (27th November 2001)
//
// PhysicsList program
//
// Modified:
//
// 14-02-03 Fix bugs in msc and hIon instanciation + cut per region
//
// --------------------------------------------------------------
#include "DMXPhysicsList.hh"
@@ -48,7 +53,7 @@
#include "G4ParticleTable.hh"
#include "G4ios.hh"
#include "g4std/iomanip"
#include <iomanip>
#include "G4UserLimits.hh"
@@ -256,23 +261,15 @@ void DMXPhysicsList::AddTransportation() {
void DMXPhysicsList::ConstructEM() {
// processes:
G4MultipleScattering* aMultipleScattering = new G4MultipleScattering();
G4LowEnergyPhotoElectric* lowePhot = new G4LowEnergyPhotoElectric();
G4LowEnergyIonisation* loweIon = new G4LowEnergyIonisation();
G4LowEnergyBremsstrahlung* loweBrem = new G4LowEnergyBremsstrahlung();
G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation();
// note LowEIon uses proton as basis for its data-base, therefore
// cannot specify different LowEnergyIonisation models for different
// particles, but can change model globally for Ion, Alpha and Proton.
// ahadronLowEIon->SetNuclearStoppingOff() ;
ahadronLowEIon->SetNuclearStoppingPowerModel("ICRU_R49") ;
ahadronLowEIon->SetNuclearStoppingOn() ;
//fluorescence switch off for hadrons (for now) PIXE:
ahadronLowEIon->SetFluorescence(false);
//fluorescence apply specific cut for fluorescence from photons, electrons
//and bremsstrahlung photons:
@@ -312,6 +309,7 @@ void DMXPhysicsList::ConstructEM() {
//electron
// process ordering: AddProcess(name, at rest, along step, post step)
// -1 = not implemented, then ordering
G4MultipleScattering* aMultipleScattering = new G4MultipleScattering();
pmanager->AddProcess(aMultipleScattering, -1, 1, 1);
pmanager->AddProcess(loweIon, -1, 2, 2);
pmanager->AddProcess(loweBrem, -1,-1, 3);
@@ -319,6 +317,7 @@ void DMXPhysicsList::ConstructEM() {
else if (particleName == "e+")
{
//positron
G4MultipleScattering* aMultipleScattering = new G4MultipleScattering();
pmanager->AddProcess(aMultipleScattering, -1, 1, 1);
pmanager->AddProcess(new G4eIonisation(), -1, 2, 2);
pmanager->AddProcess(new G4eBremsstrahlung(), -1,-1, 3);
@@ -328,6 +327,7 @@ void DMXPhysicsList::ConstructEM() {
particleName == "mu-" )
{
//muon
G4MultipleScattering* aMultipleScattering = new G4MultipleScattering();
pmanager->AddProcess(aMultipleScattering, -1, 1, 1);
pmanager->AddProcess(new G4MuIonisation(), -1, 2, 2);
pmanager->AddProcess(new G4MuBremsstrahlung(), -1,-1, 3);
@@ -346,14 +346,24 @@ void DMXPhysicsList::ConstructEM() {
// OBJECT may be dynamically created as either a GenericIon or nucleus
// G4Nucleus exists and therefore has particle type nucleus
// genericIon:
G4MultipleScattering* aMultipleScattering = new G4MultipleScattering();
G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation();
pmanager->AddProcess(aMultipleScattering,-1,1,1);
pmanager->AddProcess(ahadronLowEIon,-1,2,2);
// ahadronLowEIon->SetNuclearStoppingOff() ;
// ahadronLowEIon->SetNuclearStoppingPowerModel("ICRU_R49") ;
// ahadronLowEIon->SetNuclearStoppingOn() ;
//fluorescence switch off for hadrons (for now) PIXE:
ahadronLowEIon->SetFluorescence(false);
}
else if ((!particle->IsShortLived()) &&
(charge != 0.0) &&
(particle->GetParticleName() != "chargedgeantino"))
{
//all others charged particles except geantino
G4MultipleScattering* aMultipleScattering = new G4MultipleScattering();
G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation();
pmanager->AddProcess(aMultipleScattering,-1,1,1);
pmanager->AddProcess(ahadronLowEIon, -1,2,2);
// pmanager->AddProcess(new G4hIonisation(), -1,2,2);
@@ -807,12 +817,12 @@ void DMXPhysicsList::SetCuts()
SetCutValue(cutForElectron, "e-");
SetCutValue(cutForPositron, "e+");
SetCutValue(cutForProton, "proton");
SetCutValue(cutForProton, "anti_proton");
SetCutValue(cutForAlpha, "alpha");
SetCutValue(cutForGenericIon, "GenericIon");
// SetCutValue(cutForProton, "proton");
// SetCutValue(cutForProton, "anti_proton");
// SetCutValue(cutForAlpha, "alpha");
// SetCutValue(cutForGenericIon, "GenericIon");
SetCutValueForOthers(defaultCutValue);
// SetCutValueForOthers(defaultCutValue);
if (verboseLevel>0) DumpCutValuesTable();
}
@@ -44,7 +44,7 @@
#include "G4Colour.hh"
#include "G4VisAttributes.hh"
#include "g4std/iomanip"
#include <iomanip>
G4Allocator<DMXPmtHit> DMXPmtHitsAllocator;
@@ -108,7 +108,7 @@ void DMXPmtHit::Print() {
// G4cout << " PMT hit: " << G4BestUnit(pos,"Length") << G4endl;
G4cout << " PMT hit: " << G4std::setw(5) << G4BestUnit(time,"Time")
G4cout << " PMT hit: " << std::setw(5) << G4BestUnit(time,"Time")
<< ", at " << G4BestUnit(pos,"Length") << G4endl;
@@ -47,9 +47,9 @@
#include "G4VVisManager.hh"
#include "G4ios.hh"
#include "g4std/fstream"
#include "g4std/iomanip"
#include "g4std/vector"
#include <fstream>
#include <iomanip>
#include <vector>
#ifdef G4ANALYSIS_USE
#include "DMXAnalysisManager.hh"
@@ -110,7 +110,7 @@ void DMXRunActionMessenger::SetNewValue(G4UIcommand * command,G4String newValue)
if(command == PlotEventCmd) {
G4int vl;
const char* t = newValue;
G4std::istrstream is((char*)t);
std::istrstream is((char*)t);
is >> vl;
DMXRun->Setplotevent(vl!=0);
}
@@ -118,7 +118,7 @@ void DMXRunActionMessenger::SetNewValue(G4UIcommand * command,G4String newValue)
if(command == InteractPlotCmd) {
G4int vl;
const char* t = newValue;
G4std::istrstream is((char*)t);
std::istrstream is((char*)t);
is >> vl;
DMXRun->Setinteractplot(vl!=0);
}
@@ -42,7 +42,7 @@
#include "G4Circle.hh"
#include "G4Colour.hh"
#include "G4VisAttributes.hh"
#include "g4std/iomanip"
#include <iomanip>
G4Allocator<DMXScintHit> DMXScintHitAllocator;
@@ -100,7 +100,7 @@ void DMXScintHit::Draw()
void DMXScintHit::Print()
{
G4cout << " LXe hit ENERGY: " << G4std::setw(5) << G4BestUnit(edep,"Energy")
G4cout << " LXe hit ENERGY: " << std::setw(5) << G4BestUnit(edep,"Energy")
<< ", at " << G4BestUnit(pos,"Length") << G4endl;
}
@@ -67,7 +67,7 @@ void DMXStackingActionMessenger::SetNewValue
if(command==KillGammasCmd) {
G4int vl;
const char* t = newValue;
G4std::istrstream is((char*)t);
std::istrstream is((char*)t);
is >> vl;
DMXAction->SetKillGammasFlag(vl!=0);
}
@@ -30,7 +30,7 @@
// Comments
//
// Underground Advanced
// by A. Howard and H. Araujo
// by A. Howard and H. Araujo
// (27th November 2001)
//
// VisManager program
@@ -47,6 +47,7 @@
#include "G4DAWNFILE.hh"
#include "G4GAGTree.hh"
#include "G4HepRepFile.hh"
#include "G4HepRep.hh"
#include "G4RayTracer.hh"
#include "G4VRML1File.hh"
#include "G4VRML2File.hh"
@@ -103,6 +104,7 @@ void DMXVisManager::RegisterGraphicsSystems () {
RegisterGraphicsSystem (new G4DAWNFILE);
RegisterGraphicsSystem (new G4GAGTree);
RegisterGraphicsSystem (new G4HepRepFile);
RegisterGraphicsSystem (new G4HepRep);
RegisterGraphicsSystem (new G4RayTracer);
RegisterGraphicsSystem (new G4VRML1File);
RegisterGraphicsSystem (new G4VRML2File);