Import Geant4 9.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 15:16:48 +02:00
parent 75c7fd177d
commit a8e9364cea
6592 changed files with 84274 additions and 69292 deletions
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: CheckVolumeSD.cc,v 1.3 2006/06/29 17:24:02 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: DetectorConstruction.cc,v 1.6 2006/10/04 09:56:03 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: DetectorMessenger.cc,v 1.6 2006/11/15 14:58:10 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: DetectorMessenger.cc,v 1.7 2007/05/16 11:43:30 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -93,6 +93,13 @@ DetectorMessenger::DetectorMessenger(DetectorConstruction * Det)
nOfAbsCmd->SetParameterName("NZ",false);
nOfAbsCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
edepCmd = new G4UIcmdWithADoubleAndUnit("/testhadr/MaxEdep",this);
edepCmd->SetGuidance("Set max energy in histogram");
edepCmd->SetParameterName("edep",false);
edepCmd->SetUnitCategory("Energy");
edepCmd->SetRange("edep>0");
edepCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
updateCmd = new G4UIcmdWithoutParameter("/testhadr/Update",this);
updateCmd->SetGuidance("Update geometry.");
updateCmd->SetGuidance("This command MUST be applied before \"beamOn\" ");
@@ -121,6 +128,7 @@ DetectorMessenger::~DetectorMessenger()
delete testDir;
delete beamCmd;
delete verbCmd;
delete edepCmd;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -144,6 +152,8 @@ void DetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValue)
h->SetVerbose(verbCmd->GetNewIntValue(newValue));
else if (command == beamCmd)
h->SetDefaultBeamPositionFlag(beamCmd->GetNewBoolValue(newValue));
else if (command == edepCmd)
h->SetMaxEnergyDeposit(edepCmd->GetNewDoubleValue(newValue));
else if( command == updateCmd )
Detector->UpdateGeometry();
}
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: EventAction.cc,v 1.3 2006/06/29 17:24:08 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: EventAction.cc,v 1.4 2007/05/16 11:43:30 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -88,8 +88,9 @@ void EventAction::BeginOfEventAction(const G4Event* evt)
}
// Initialize user actions
if(HistoManager::GetPointer()->GetVerbose() > 0 ||
G4int(nEvt/printModulo)*printModulo == nEvt)
HistoManager* man = HistoManager::GetPointer();
man->BeginOfEvent();
if(man->GetVerbose() > 0 || G4int(nEvt/printModulo)*printModulo == nEvt)
G4cout << "EventAction: Event # "
<< nEvt << " started" << G4endl;
@@ -124,7 +125,9 @@ void EventAction::EndOfEventAction(const G4Event* evt)
debugStarted = false;
}
if(HistoManager::GetPointer()->GetVerbose() > 1)
HistoManager* man = HistoManager::GetPointer();
man->EndOfEvent();
if(man->GetVerbose() > 1)
G4cout << "EventAction: Event ended" << G4endl;
}
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: EventActionMessenger.cc,v 1.3 2006/06/29 17:24:11 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
+18 -17
View File
@@ -39,13 +39,10 @@
#include "Histo.hh"
#ifdef G4ANALYSIS_USE
#include <memory> // for the auto_ptr(T>
#include <AIDA/AIDA.h>
#include "HistoMessenger.hh"
#endif
//#include <iomanip>
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -65,6 +62,8 @@ Histo::Histo(G4int ver)
#ifdef G4ANALYSIS_USE
messenger = new HistoMessenger(this);
tree = 0;
af = 0;
#endif
}
@@ -73,10 +72,8 @@ Histo::Histo(G4int ver)
Histo::~Histo()
{
#ifdef G4ANALYSIS_USE
for(G4int i=0; i<nHisto; i++) {
if(histo[i]) delete histo[i];
}
delete messenger;
delete af;
#endif
}
@@ -87,12 +84,12 @@ void Histo::book()
#ifdef G4ANALYSIS_USE
G4cout << "### Histo books " << nHisto << " histograms " << G4endl;
// Creating the analysis factory
std::auto_ptr< AIDA::IAnalysisFactory > af( AIDA_createAnalysisFactory() );
if(!af) af = AIDA_createAnalysisFactory();
if(verbose>0)
G4cout<<"HIsto books analysis factory ......... "<<G4endl;
// Creating the tree factory
std::auto_ptr< AIDA::ITreeFactory > tf( af->createTreeFactory() );
AIDA::ITreeFactory* tf = af->createTreeFactory();
if(verbose>0)
G4cout<<"Histo books tree factory ......... "<<G4endl;
@@ -108,9 +105,10 @@ void Histo::book()
G4String name = histDir + histName + histExt + "." + histType;
tree = tf->create(name, histType, false, true, option);
G4cout << "Histo: tree store : " << tree->storeName() << G4endl;
delete tf;
// Creating a histogram factory, whose histograms will be handled by the tree
std::auto_ptr< AIDA::IHistogramFactory > hf(af->createHistogramFactory( *tree ));
AIDA::IHistogramFactory* hf = af->createHistogramFactory( *tree );
// Creating an 1-dimensional histograms in the root directory of the tree
for(G4int i=0; i<nHisto; i++) {
@@ -119,14 +117,19 @@ void Histo::book()
G4cout<<" I am in book: histogram "<< i << " id= " << ids[i] <<G4endl;
histo[i] = hf->createHistogram1D(ids[i], tittles[i], bins[i], xmin[i], xmax[i]);
} else {
histo[i] = 0;
}
}
delete hf;
// Creating a tuple factory, whose tuples will be handled by the tree
if(tupleList != "") {
if(verbose>0)
G4cout<<"Histo books tuple factory for "<<tupleName <<G4endl;
std::auto_ptr< AIDA::ITupleFactory > tpf( af->createTupleFactory( *tree ) );
AIDA::ITupleFactory* tpf = af->createTupleFactory( *tree );
ntup = tpf->create(tupleId, tupleName, tupleList);
delete tpf;
}
#endif
}
@@ -141,9 +144,8 @@ void Histo::save()
G4cout << "Closing the tree..." << G4endl;
tree->close();
G4cout << "Histograms and Ntuples are saved" << G4endl;
for(G4int i=0; i<nHisto; i++) {
if(histo[i]) histo[i]->reset();
}
delete tree;
tree = 0;
#endif
}
@@ -152,9 +154,8 @@ void Histo::save()
void Histo::reset()
{
#ifdef G4ANALYSIS_USE
for(G4int i=0; i<nHisto; i++) {
if(histo[i]) histo[i]->reset();
}
delete tree;
tree = 0;
#endif
}
@@ -226,7 +227,7 @@ void Histo::fill(G4int i, G4double x, G4double w)
<< G4endl;
#ifdef G4ANALYSIS_USE
if(i>=0 && i<nHisto) {
histo[i]->fill((float)(x/unit[i]), (float)w);
histo[i]->fill(x/unit[i], w);
} else {
G4cout << "Histo::fill: WARNING! wrong histogram index " << i << G4endl;
}
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HistoManager.cc,v 1.11 2006/11/15 14:58:10 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: HistoManager.cc,v 1.14 2007/05/24 13:52:31 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//---------------------------------------------------------------------------
//
@@ -89,8 +89,9 @@ HistoManager::HistoManager()
verbose= 0;
nSlices = 300;
nBinsE = 100;
nHisto = 19;
nHisto = 22;
length = 300.*mm;
edepMax = 1.0*GeV;
beamFlag = true;
material = 0;
elm = 0;
@@ -131,6 +132,8 @@ void HistoManager::bookHisto()
histo->add1D("19","log10 Energy (MeV) of leaking charged pions",nBinsE,-4.,6.,1.0);
histo->add1D("20","Log10 Energy (MeV) of pi+",nBinsE,-4.,6.,1.0);
histo->add1D("21","Log10 Energy (MeV) of pi-",nBinsE,-4.,6.,1.0);
histo->add1D("22","Energy deposition (GeV) in the target",
nBinsE,0.0,edepMax,GeV);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -159,6 +162,9 @@ void HistoManager::BeginOfRun()
n_neu_leak = 0;
n_neu_back = 0;
edepSum = 0.0;
edepSum2 = 0.0;
bookHisto();
histo->book();
@@ -200,11 +206,19 @@ void HistoManager::EndOfRun()
G4double xia = x*(G4double)n_alpha;
G4double xio = x*(G4double)n_ions;
edepSum *= x;
edepSum2 *= x;
edepSum2 -= edepSum*edepSum;
if(edepSum2 > 0.0) edepSum2 = std::sqrt(edepSum2);
else edepSum2 = 0.0;
G4cout << "Beam particle "
<< primaryDef->GetParticleName() <<G4endl;
G4cout << "Beam Energy(MeV) "
<< primaryKineticEnergy/MeV <<G4endl;
G4cout << "Number of events " << n_evt <<G4endl;
G4cout << std::setprecision(4) << "Average energy deposit (MeV) " << edepSum/MeV
<< " RMS(MeV) " << edepSum2/MeV << G4endl;
G4cout << std::setprecision(4) << "Average number of steps " << xs << G4endl;
G4cout << std::setprecision(4) << "Average number of gamma " << xg << G4endl;
G4cout << std::setprecision(4) << "Average number of e- " << xe << G4endl;
@@ -234,7 +248,22 @@ void HistoManager::EndOfRun()
if(verbose > 1) histo->print(0);
histo->save();
histo->reset();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
void HistoManager::BeginOfEvent()
{
edepEvt = 0.0;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
void HistoManager::EndOfEvent()
{
edepSum += edepEvt;
edepSum2 += edepEvt*edepEvt;
histo->fill(21,edepEvt,1.0);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -327,24 +356,30 @@ void HistoManager::ScoreNewTrack(const G4Track* track)
void HistoManager::AddTargetStep(const G4Step* step)
{
n_step++;
const G4Track* track = step->GetTrack();
currentDef = track->GetDefinition();
currentKinEnergy = track->GetKineticEnergy();
G4double edep = step->GetTotalEnergyDeposit();
if(edep >= DBL_MIN) {
const G4Track* track = step->GetTrack();
currentDef = track->GetDefinition();
currentKinEnergy = track->GetKineticEnergy();
G4ThreeVector pos =
(step->GetPreStepPoint()->GetPosition() +
step->GetPostStepPoint()->GetPosition())*0.5;
G4ThreeVector pos =
(step->GetPreStepPoint()->GetPosition() +
step->GetPostStepPoint()->GetPosition())*0.5;
G4double z = pos.z() - absZ0;
histo->fill(0,z,step->GetTotalEnergyDeposit());
G4double z = pos.z() - absZ0;
if(1 < verbose)
G4cout << "HistoManager::AddEnergy: e(keV)= " << step->GetTotalEnergyDeposit()/keV
<< "; z(mm)= " << z/mm
<< "; step(mm)= " << step->GetStepLength()/mm
<< " by " << currentDef->GetParticleName()
<< " E(MeV)= " << currentKinEnergy/MeV
<< G4endl;
// scoring
edepEvt += edep;
histo->fill(0,z,edep);
if(1 < verbose)
G4cout << "HistoManager::AddEnergy: e(keV)= " << edep/keV
<< "; z(mm)= " << z/mm
<< "; step(mm)= " << step->GetStepLength()/mm
<< " by " << currentDef->GetParticleName()
<< " E(MeV)= " << currentKinEnergy/MeV
<< G4endl;
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -25,7 +25,7 @@
//
//
// $Id: HistoMessenger.cc,v 1.5 2006/06/29 17:24:18 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: PhysicsList.cc,v 1.19 2007/04/26 18:16:55 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-03 $
// $Id: PhysicsList.cc,v 1.21 2007/06/01 16:07:31 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -44,8 +44,8 @@
#include "PhysicsListMessenger.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics72.hh"
#include "G4EmStandardPhysics71.hh"
#include "G4EmStandardPhysics_option2.hh"
#include "G4EmStandardPhysics_option1.hh"
#include "G4EmStandardPhysics.hh"
#include "G4HadronElasticPhysics.hh"
#include "G4HadronQElasticPhysics.hh"
@@ -58,16 +58,22 @@
#include "G4EmExtraPhysics.hh"
#include "G4EmProcessOptions.hh"
#include "HadronPhysicsQGSP_BIC.hh"
#include "HadronPhysicsQGSP_BIC_HP.hh"
#include "HadronPhysicsFTFP.hh"
#include "HadronPhysicsFTFC.hh"
#include "HadronPhysicsLHEP.hh"
#include "HadronPhysicsQGSP_BERT_HP.hh"
#include "HadronPhysicsQGSP_BERT.hh"
#include "HadronPhysicsLHEP_BERT.hh"
#include "HadronPhysicsLHEP_EMV.hh"
#include "HadronPhysicsLHEP_PRECO_HP.hh"
#include "G4HadronInelasticQBBC.hh"
#include "HadronPhysicsQGSC.hh"
#include "HadronPhysicsQGSC_EFLOW.hh"
#include "HadronPhysicsQGSP.hh"
#include "G4HadronInelasticQBBC.hh"
#include "HadronPhysicsQGSP_BERT.hh"
#include "HadronPhysicsQGSP_BERT_HP.hh"
#include "HadronPhysicsQGSP_BERT_TRV.hh"
#include "HadronPhysicsQGSP_BIC.hh"
#include "HadronPhysicsQGSP_BIC_HP.hh"
#include "G4HadronInelasticQLHEP.hh"
#include "G4IonPhysics.hh"
#include "G4HadronProcessStore.hh"
@@ -98,7 +104,7 @@ PhysicsList::PhysicsList() : G4VModularPhysicsList()
particleList = new G4DecayPhysics("decays");
// EM physics
emPhysicsList = new G4EmStandardPhysics("G4standard");
emPhysicsList = new G4EmStandardPhysics();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
@@ -141,40 +147,99 @@ void PhysicsList::AddPhysicsList(const G4String& name)
if (verboseLevel>0)
G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
if (name == "LHEP") {
hadronPhys.push_back( new G4EmExtraPhysics("gamma_nuc"));
hadronPhys.push_back( new G4HadronElasticPhysics("LElastic",
verboseLevel,false));
hadronPhys.push_back( new HadronPhysicsLHEP());
hadronPhys.push_back( new G4IonPhysics("ion"));
} else if (name == "G4standard_exp") {
if (name == "emstandard_opt2") {
delete emPhysicsList;
emPhysicsList = new G4EmStandardPhysics72("standard");
emPhysicsList = new G4EmStandardPhysics_option2();
} else if (name == "G4standard_fast") {
} else if (name == "emstandard_opt1") {
delete emPhysicsList;
emPhysicsList = new G4EmStandardPhysics71("standard");
emPhysicsList = new G4EmStandardPhysics_option1();
} else if (name == "FTFP_EMV") {
} else if (name == "FTFC") {
AddPhysicsList("G4standard_fast");
AddPhysicsList("FTFP");
hadronPhys.push_back( new HadronPhysicsFTFC("hadron",true));
SetStandardList(false, false);
dump = true;
} else if (name == "FTFP") {
hadronPhys.push_back( new HadronPhysicsFTFP("hadron",true));
SetStandardList(false, false);
dump = true;
} else if (name == "FTFP_EMV") {
AddPhysicsList("emstandard_opt1");
AddPhysicsList("FTFP");
dump = true;
} else if (name == "LHEP") {
hadronPhys.push_back( new G4EmExtraPhysics("gamma_nuc"));
hadronPhys.push_back( new G4HadronElasticPhysics("elastic",
hadronPhys.push_back( new G4HadronElasticPhysics("LElastic",
verboseLevel,false));
hadronPhys.push_back( new HadronPhysicsFTFP("hadron"));
hadronPhys.push_back( new HadronPhysicsLHEP("hadron"));
hadronPhys.push_back( new G4IonPhysics("ion"));
} else if (name == "LHEP_BERT") {
hadronPhys.push_back( new G4EmExtraPhysics("gamma_nuc"));
hadronPhys.push_back( new G4HadronElasticPhysics("LElastic",
verboseLevel,false));
hadronPhys.push_back( new HadronPhysicsLHEP_BERT("hadron"));
hadronPhys.push_back( new G4QStoppingPhysics("stopping",verboseLevel));
hadronPhys.push_back( new G4IonPhysics("ion"));
hadronPhys.push_back( new G4NeutronTrackingCut());
dump = true;
} else if (name == "LHEP_EMV") {
AddPhysicsList("emstandard_opt1");
hadronPhys.push_back( new G4EmExtraPhysics("gamma_nuc"));
hadronPhys.push_back( new G4HadronElasticPhysics("LElastic",
verboseLevel,false));
hadronPhys.push_back( new HadronPhysicsLHEP_EMV("hadron"));
hadronPhys.push_back( new G4QStoppingPhysics("stopping",verboseLevel));
hadronPhys.push_back( new G4IonPhysics("ion"));
} else if (name == "LHEP_PRECO_HP") {
hadronPhys.push_back( new G4EmExtraPhysics("gamma_nuc"));
hadronPhys.push_back( new G4HadronElasticPhysics("LElastic",
verboseLevel,false));
hadronPhys.push_back( new HadronPhysicsLHEP_PRECO_HP("hadron"));
hadronPhys.push_back( new G4QStoppingPhysics("stopping",verboseLevel));
hadronPhys.push_back( new G4IonPhysics("ion"));
} else if (name == "QBBC") {
SetStandardList(false,true);
hadronPhys.push_back( new G4HadronInelasticQBBC("QBBC",verboseLevel,
false,false,false,false,true));
} else if (name == "QBBCG") {
SetStandardList(false, false);
hadronPhys.push_back( new G4HadronInelasticQBBC("QBBC",verboseLevel,
false,false,false,false,false));
} else if (name == "QBEC") {
SetStandardList(false,true);
hadronPhys.push_back( new G4HadronInelasticQBBC("QBBC",verboseLevel,
false,true,false,false,true));
} else if (name == "QBBC_HP") {
SetStandardList(true,true);
hadronPhys.push_back( new G4HadronInelasticQBBC("QBBC",verboseLevel,
false,false,false,true,true));
} else if (name == "QBEC_HP") {
SetStandardList(true,true);
hadronPhys.push_back( new G4HadronInelasticQBBC("QBBC",verboseLevel,
false,true,false,true,true));
} else if (name == "QGSC") {
@@ -198,19 +263,80 @@ void PhysicsList::AddPhysicsList(const G4String& name)
} else if (name == "QGSC_EMV") {
AddPhysicsList("G4standard_fast");
AddPhysicsList("emstandard_opt1");
AddPhysicsList("QGSC");
dump = true;
} else if (name == "QGSP") {
hadronPhys.push_back( new G4EmExtraPhysics("gamma_nuc"));
hadronPhys.push_back( new G4HadronElasticPhysics("elastic",
verboseLevel,false));
SetStandardList(false, false);
hadronPhys.push_back( new HadronPhysicsQGSP("hadron",true));
hadronPhys.push_back( new G4QStoppingPhysics("stopping",verboseLevel));
hadronPhys.push_back( new G4IonPhysics("ion"));
hadronPhys.push_back( new G4NeutronTrackingCut());
dump = true;
} else if (name == "QGSP_BERT") {
SetStandardList(false, false);
hadronPhys.push_back( new HadronPhysicsQGSP_BERT("hadron",true));
dump = true;
} else if (name == "QGSP_BERT_EMV") {
AddPhysicsList("emstandard_opt1");
AddPhysicsList("QGSP_BERT");
dump = true;
} else if (name == "QGSP_BERT_HP") {
SetStandardList(true, false);
hadronPhys.push_back( new HadronPhysicsQGSP_BERT_HP("hadron",true));
dump = true;
} else if (name == "QGSP_BERT_NQE") {
SetStandardList(false, false);
hadronPhys.push_back( new HadronPhysicsQGSP_BERT("hadron",false));
dump = true;
} else if (name == "QGSP_BERT_TRV") {
SetStandardList(false, false);
hadronPhys.push_back( new HadronPhysicsQGSP_BERT_TRV("hadron",true));
dump = true;
} else if (name == "QGSP_BIC") {
SetStandardList(false, false);
hadronPhys.push_back( new HadronPhysicsQGSP_BIC("hadron",true));
dump = true;
} else if (name == "QGSP_BIC_HP") {
SetStandardList(true, false);
hadronPhys.push_back( new HadronPhysicsQGSP_BIC_HP("hadron",true));
dump = true;
} else if (name == "QGSP_EMV") {
AddPhysicsList("emstandard_opt1");
AddPhysicsList("QGSP");
dump = true;
} else if (name == "QGSP_EMV_NQE") {
AddPhysicsList("emstandard_opt1");
AddPhysicsList("QGSP_NQE");
dump = true;
} else if (name == "QGSP_EMX") {
AddPhysicsList("emstandard_opt2");
AddPhysicsList("QGSP");
dump = true;
} else if (name == "QGSP_NQE") {
SetStandardList(false, false);
hadronPhys.push_back( new HadronPhysicsQGSP("hadron",false));
dump = true;
} else if (name == "QGSP_QEL") {
@@ -224,129 +350,6 @@ void PhysicsList::AddPhysicsList(const G4String& name)
hadronPhys.push_back( new G4NeutronTrackingCut());
dump = true;
} else if (name == "QGSP_NQE") {
hadronPhys.push_back( new G4EmExtraPhysics("gamma_nuc"));
hadronPhys.push_back( new G4HadronElasticPhysics("elastic",
verboseLevel,false));
hadronPhys.push_back( new HadronPhysicsQGSP("hadron",false));
hadronPhys.push_back( new G4QStoppingPhysics("stopping",verboseLevel));
hadronPhys.push_back( new G4IonPhysics("ion"));
hadronPhys.push_back( new G4NeutronTrackingCut());
dump = true;
} else if (name == "QGSP_EMV_NQE") {
AddPhysicsList("G4standard_fast");
AddPhysicsList("QGSP_NQE");
dump = true;
} else if (name == "LHEP_EMV") {
AddPhysicsList("G4standard_fast");
AddPhysicsList("LHEP");
dump = true;
} else if (name == "QGSP_EMV") {
AddPhysicsList("G4standard_fast");
AddPhysicsList("QGSP");
dump = true;
} else if (name == "QGSP_EMX") {
AddPhysicsList("G4standard_exp");
AddPhysicsList("QGSP");
dump = true;
} else if (name == "QGSP_BERT_EMV") {
AddPhysicsList("G4standard_fast");
AddPhysicsList("QGSP_BERT");
dump = true;
} else if (name == "QGSP_BERT") {
hadronPhys.push_back( new G4EmExtraPhysics("gamma_nuc"));
hadronPhys.push_back( new G4HadronElasticPhysics("elastic",
verboseLevel,false));
hadronPhys.push_back( new HadronPhysicsQGSP_BERT("hadron",true));
hadronPhys.push_back( new G4QStoppingPhysics("stopping"));
hadronPhys.push_back( new G4IonPhysics("ion"));
hadronPhys.push_back( new G4NeutronTrackingCut());
dump = true;
} else if (name == "QGSP_BERT_NQE") {
hadronPhys.push_back( new G4EmExtraPhysics("gamma_nuc"));
hadronPhys.push_back( new G4HadronElasticPhysics("elastic",
verboseLevel,false));
hadronPhys.push_back( new HadronPhysicsQGSP_BERT("hadron",false));
hadronPhys.push_back( new G4QStoppingPhysics("stopping"));
hadronPhys.push_back( new G4IonPhysics("ion"));
hadronPhys.push_back( new G4NeutronTrackingCut());
dump = true;
} else if (name == "QGSP_BERT_HP") {
hadronPhys.push_back( new G4EmExtraPhysics("gamma_nuc"));
hadronPhys.push_back( new G4HadronElasticPhysics("elastic",
verboseLevel,true));
hadronPhys.push_back( new HadronPhysicsQGSP_BERT_HP("hadron",true));
hadronPhys.push_back( new G4QStoppingPhysics("stopping"));
hadronPhys.push_back( new G4IonPhysics("ion"));
hadronPhys.push_back( new G4NeutronTrackingCut());
dump = true;
} else if (name == "QGSP_BIC") {
SetStandardList(false);
hadronPhys.push_back( new HadronPhysicsQGSP_BIC("hadron",true));
dump = true;
} else if (name == "QGSP_BIC_HP") {
SetStandardList(true);
hadronPhys.push_back( new HadronPhysicsQGSP_BIC_HP("hadron",true));
dump = true;
} else if (name == "QBBC") {
SetStandardList(false);
hadronPhys.push_back( new G4HadronInelasticQBBC("QBBC",verboseLevel,
false,false,false,false,true));
} else if (name == "QBBCG") {
SetStandardList(false, true);
hadronPhys.push_back( new G4HadronInelasticQBBC("QBBC",verboseLevel,
false,false,false,false,false));
} else if (name == "QBEC") {
SetStandardList(false);
hadronPhys.push_back( new G4HadronInelasticQBBC("QBBC",verboseLevel,
false,true,false,false,true));
} else if (name == "QBBC_HP") {
SetStandardList(true);
hadronPhys.push_back( new G4HadronInelasticQBBC("QBBC",verboseLevel,
false,false,false,true,true));
} else if (name == "QBEC_HP") {
SetStandardList(true);
hadronPhys.push_back( new G4HadronInelasticQBBC("QBBC",verboseLevel,
false,true,false,true,true));
} else if (name == "QBBC_FTF") {
SetStandardList(false);
hadronPhys.push_back( new G4HadronInelasticQBBC("QBBC",verboseLevel,
true,false,false,false,true));
} else {
G4cout << "PhysicsList::AddPhysicsList: <" << name << ">"
@@ -362,7 +365,7 @@ void PhysicsList::SetStandardList(G4bool flagHP, G4bool glauber)
hadronPhys.push_back( new G4EmExtraPhysics("gamma_nuc"));
hadronPhys.push_back( new G4HadronElasticPhysics("elastic",verboseLevel,
flagHP,glauber));
hadronPhys.push_back( new G4QStoppingPhysics("stopping"));
hadronPhys.push_back( new G4QStoppingPhysics("stopping",verboseLevel));
hadronPhys.push_back( new G4IonBinaryCascadePhysics("binary_ion"));
hadronPhys.push_back( new G4NeutronTrackingCut());
}
@@ -412,11 +415,17 @@ void PhysicsList::SetCutForPositron(G4double cut)
void PhysicsList::List()
{
G4cout << "### PhysicsLists available: LHEP LHEP_EMV QGSP QGSP_BERT QGSP_BERT_HP QGSP_BIC QGSP_BIC_HP"
G4cout << "### PhysicsLists available: FTFC FTFP FTFP_EMV LHEP LHEP_BERT LHEP_EMV"
<< G4endl;
G4cout << " LHEP_PRECO_HP QBBC QBBCG QBEC QBBC_HP QBEC_HP"
<< G4endl;
G4cout << " QGSP_EMV_NQE QGSP_NQE QGSP_QEL QGSC QGSC_EMV QGSC_EFLOW FTFP FTFP_EMV"
G4cout << " QGSC QGSC_EFLOW QGSC_EMV QGSP QGSP_BERT QGSP_BER_EMV"
<< G4endl;
G4cout << " QGSP_EMV QGSP_EMX QBBC QBBCG QBEC QBBC_HP QBEC_HP QBBC_FTF"
G4cout << " QGSP_BERT_HP QGSP_BERT_NQE QGSP_BERT_TRV"
<< G4endl;
G4cout << " QGSP_BIC QGSP_BIC_HP QGSP_EMV QGSP_EMV_NQE"
<< G4endl;
G4cout << " QGSC_EMX QGSP_NQE QGSP_QEL"
<< G4endl;
}
@@ -25,7 +25,7 @@
//
//
// $Id: PhysicsListMessenger.cc,v 1.4 2006/08/11 14:38:11 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
/////////////////////////////////////////////////////////////////////////
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: PrimaryGeneratorAction.cc,v 1.4 2006/11/15 14:58:10 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: StackingAction.cc,v 1.5 2006/10/04 09:56:03 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: StackingMessenger.cc,v 1.3 2006/06/29 17:24:32 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: TargetSD.cc,v 1.4 2006/06/29 17:24:34 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//