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
@@ -1,5 +1,5 @@
# $Id: GNUmakefile,v 1.7 2006/10/31 15:05:33 vnivanch Exp $
# GEANT4 tag $Name: geant4-08-02 $
# GEANT4 tag $Name: geant4-09-00 $
# --------------------------------------------------------------
# GNUmakefile for examples module with AIDA interface
# --------------------------------------------------------------
+16 -1
View File
@@ -1,4 +1,4 @@
$Id: History,v 1.15 2007/04/26 18:16:55 vnivanch Exp $
$Id: History,v 1.19 2007/06/01 16:07:31 vnivanch Exp $
-------------------------------------------------------------------
=========================================================
@@ -15,6 +15,21 @@ track of all tags.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
01-06-07 V.Ivant (exhadr01-V08-03-03)
- Physics List updated according to recent changes in hadronics and
physics_lists packages
24-05-07 V.Ivant (exhadr01-V08-03-02)
- substitute autoptr by normal pointers in Histo to avoid crash
21-05-07 V.Ivant (exhadr01-V08-03-01)
- Fix filling histogram on total energy deposit in the target
16-05-07 V.Ivant (exhadr01-V08-03-00)
- Added histogram on total energy deposit in the target
- Use renamed EM builders G4EmStandardPhysics_option1 and
G4EmStandardPhysics_option2
26-04-07 V.Ivant (exhadr01-V08-02-01)
- PhysicsList update according to physics_lists modification
+1 -1
View File
@@ -25,7 +25,7 @@
//
//
// $Id: hadr01.cc,v 1.9 2006/11/24 16:48:57 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
// -------------------------------------------------------------
// GEANT4 hadr01
+16 -15
View File
@@ -1,6 +1,6 @@
*************************************************************
Geant4 version Name: geant4-08-03-cand-00 (5-May-2007)
Geant4 version Name: geant4-09-00-cand-03 (29-June-2007)
Copyright : Geant4 Collaboration
Reference : NIM A 506 (2003), 250-303
WWW : http://cern.ch/geant4
@@ -136,31 +136,32 @@ EventAction: Event # 90 started
Run terminated.
Run Summary
Number of events processed : 100
User=15.31s Real=17.65s Sys=1.91s
User=13.4s Real=14.4s Sys=0.63s
RunAction: End of run actions are started
HistoManager: End of run actions are started
========================================================
Beam particle proton
Beam Energy(MeV) 3000
Number of events 100
Average number of steps 316.8
Average number of gamma 2.39
Average number of e- 4.3
Average energy deposit (MeV) 56.84 RMS(MeV) 39.72
Average number of steps 258.6
Average number of gamma 1.94
Average number of e- 3.97
Average number of e+ 0.05
Average number of neutrons 1.01
Average number of protons 1.14
Average number of neutrons 0.76
Average number of protons 0.8
Average number of antiprotons 0
Average number of pi+ & pi- 0.29
Average number of pi0 0.19
Average number of pi+ & pi- 0.27
Average number of pi0 0.13
Average number of kaons 0
Average number of muons 0
Average number of deuterons+tritons 0.03
Average number of He3+alpha 0.18
Average number of ions 0.44
Average number of forward neutrons 0.1
Average number of reflected neutrons 0.05
Average number of leaked neutrons 0.79
Average number of proton leak 0.43
Average number of He3+alpha 0.13
Average number of ions 0.36
Average number of forward neutrons 0.13
Average number of reflected neutrons 0.03
Average number of leaked neutrons 0.59
Average number of proton leak 0.38
Average number of pion leak 0.26
========================================================
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: CheckVolumeSD.hh,v 1.3 2006/06/29 17:23:25 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: DetectorConstruction.hh,v 1.4 2006/06/29 17:23:28 gunter 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.hh,v 1.6 2006/11/15 14:58:09 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: DetectorMessenger.hh,v 1.7 2007/05/16 11:43:30 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -73,6 +73,7 @@ private:
G4UIcmdWithAString* mat1Cmd;
G4UIcmdWithADoubleAndUnit* rCmd;
G4UIcmdWithADoubleAndUnit* lCmd;
G4UIcmdWithADoubleAndUnit* edepCmd;
G4UIcmdWithAnInteger* binCmd;
G4UIcmdWithAnInteger* nOfAbsCmd;
G4UIcmdWithAnInteger* verbCmd;
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: EventAction.hh,v 1.3 2006/06/29 17:23:34 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: EventActionMessenger.hh,v 1.3 2006/06/29 17:23:36 gunter 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: Histo.hh,v 1.4 2006/08/11 14:38:11 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: Histo.hh,v 1.6 2007/05/24 13:52:31 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-00 $
#ifndef Histo_h
#define Histo_h 1
@@ -55,9 +55,10 @@
class HistoMessenger;
namespace AIDA {
class ITree;
class ITuple;
class IHistogram1D;
class ITree;
class ITuple;
class IHistogram1D;
class IAnalysisFactory;
}
class Histo
@@ -121,6 +122,7 @@ private:
G4int defaultAct;
std::vector<AIDA::IHistogram1D*> histo;
AIDA::IAnalysisFactory* af;
AIDA::ITuple* ntup;
AIDA::ITree* tree;
HistoMessenger* messenger;
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HistoManager.hh,v 1.7 2006/11/15 14:58:09 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-02 $
// $Id: HistoManager.hh,v 1.8 2007/05/16 11:43:30 vnivanch Exp $
// GEANT4 tag $Name: geant4-09-00 $
//
//---------------------------------------------------------------------------
//
@@ -79,6 +79,8 @@ public:
void BeginOfRun();
void EndOfRun();
void BeginOfEvent();
void EndOfEvent();
void Fill(G4int id, G4double x, G4double w);
void ScoreNewTrack(const G4Track*);
@@ -105,6 +107,8 @@ public:
G4double CurrentKinEnergy() {return currentKinEnergy;};
const G4ParticleDefinition* CurrentParticle() {return currentDef;};
void SetMaxEnergyDeposit(G4double val) {edepMax = val;};
private:
static HistoManager* fManager;
@@ -115,6 +119,10 @@ private:
const G4Material* material;
G4Element* elm;
G4double edepMax;
G4double edepEvt;
G4double edepSum;
G4double edepSum2;
G4double beamEnergy;
G4double length;
G4double absZ0;
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: HistoMessenger.hh,v 1.5 2006/11/15 14:58:10 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -25,7 +25,7 @@
//
//
// $Id: PhysicsList.hh,v 1.5 2006/08/28 13:54:13 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -25,7 +25,7 @@
//
//
// $Id: PhysicsListMessenger.hh,v 1.3 2006/06/29 17:23:50 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
/////////////////////////////////////////////////////////////////////////
@@ -25,7 +25,7 @@
//
//
// $Id: PrimaryGeneratorAction.hh,v 1.3 2006/06/29 17:23:52 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
/////////////////////////////////////////////////////////////////////////
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: StackingAction.hh,v 1.3 2006/06/29 17:23:56 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: StackingMessenger.hh,v 1.3 2006/06/29 17:23:58 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
//
/////////////////////////////////////////////////////////////////////////
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: TargetSD.hh,v 1.4 2006/06/29 17:24:00 gunter Exp $
// GEANT4 tag $Name: geant4-08-02 $
// GEANT4 tag $Name: geant4-09-00 $
//
/////////////////////////////////////////////////////////////////////////
//
@@ -18,6 +18,7 @@
/run/initialize
#/process/eLoss/MscStepLimit 0.2 false
/testhadr/HistoName p_pb_20GeV
/testhadr/MaxEdep 10 GeV
#
/gun/particle proton
/gun/energy 20. GeV
+1 -4
View File
@@ -1,6 +1,6 @@
#/bin/csh
setenv HISTODIR v20070415
setenv HISTODIR 20070516
mkdir -p $HISTODIR
setenv PHYSLIST LHEP
@@ -27,8 +27,5 @@ $G4MY/hadr01 p_pb.in >& $HISTODIR/$PHYSLIST.out
setenv PHYSLIST QBBC
$G4MY/hadr01 p_pb.in >& $HISTODIR/$PHYSLIST.out
setenv PHYSLIST QBBC_FTF
$G4MY/hadr01 p_pb.in >& $HISTODIR/$PHYSLIST.out
echo "Done!"
#
@@ -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 $
//
/////////////////////////////////////////////////////////////////////////
//