Import Geant4 9.0.0 source tree
This commit is contained in:
@@ -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
|
||||
# --------------------------------------------------------------
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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 $
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
||||
@@ -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 $
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user