Import Geant4 8.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 14:36:02 +02:00
parent d93e1e39a9
commit 8a51e0bc40
5471 changed files with 99628 additions and 55248 deletions
+15 -1
View File
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: FTFC.hh,v 1.3 2005/12/05 12:55:27 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 05.12.2005 V.Ivanchenko add controlled verbosity
//
//----------------------------------------------------------------------------
//
#ifndef TTFTFC_h
#define TTFTFC_h 1
@@ -31,7 +45,7 @@ template<class T>
class TFTFC: public T
{
public:
TFTFC();
TFTFC(G4int ver = 1);
virtual ~TFTFC();
public:
+35 -20
View File
@@ -20,7 +20,24 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: FTFC.icc,v 1.7 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 28.11.2005 G.Folger: migration to non static particles
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
// 02.12.2005 V.Ivanchenko: rename components
// 05.12.2005 V.Ivanchenko add controlled verbosity
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
#include "G4ParticleDefinition.hh"
#include "G4ParticleWithCuts.hh"
@@ -34,40 +51,38 @@
#include "G4ios.hh"
#include <iomanip>
#include "GeneralPhysics.hh"
#include "EMPhysics.hh"
#include "MuonPhysics.hh"
#include "IonPhysics.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsFTFC.hh"
#include "HadronPhysicsFTFC.hh"
template<class T> TFTFC<T>::TFTFC(): T()
template<class T> TFTFC<T>::TFTFC(G4int ver): T()
{
// default cut value (1.0mm)
// defaultCutValue = 1.0*mm;
G4DataQuestionaire it(photon);
G4cout << "You are using the simulation engine: FTFC 2.8"<<G4endl;
G4cout <<G4endl<<G4endl;
G4cout << "<<< Geant4 Physics List simulation engine: FTFC 3.0"<<G4endl;
G4cout << G4endl;
this->defaultCutValue = 0.7*mm;
this->SetVerboseLevel(1);
// General Physics
this->RegisterPhysics( new GeneralPhysics("general") );
this->SetVerboseLevel(ver);
// EM Physics
this->RegisterPhysics( new EMPhysics("standard EM"));
this->RegisterPhysics( new G4EmStandardPhysics("standard EM", ver));
// Muon Physics
this->RegisterPhysics( new MuonPhysics("muon"));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics("extra EM"));
// Decays
this->RegisterPhysics( new G4DecayPhysics("decay", ver) );
// Hadron Physics
this->RegisterPhysics( new HadronPhysicsFTFC("hadron"));
// Ion Physics
this->RegisterPhysics( new IonPhysics("ion"));
this->RegisterPhysics( new G4IonPhysics("ion"));
}
@@ -85,8 +100,8 @@ template<class T> void TFTFC<T>::SetCuts()
this->SetCutsWithDefault();
G4VUserPhysicsList::DumpCutValuesTable();
// if (this->verboseLevel > 0)
// G4VUserPhysicsList::DumpCutValuesTable();
}
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsFTFC.hh,v 1.2 2005/11/29 16:59:40 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 23.11.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#ifndef HadronPhysicsFTFC_h
#define HadronPhysicsFTFC_h 1
@@ -27,7 +41,6 @@
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
@@ -54,21 +67,21 @@ class HadronPhysicsFTFC : public G4VPhysicsConstructor
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LEPNeutronBuilder theLEPNeutron;
G4FTFCNeutronBuilder theFTFCNeutron;
void CreateModels();
G4NeutronBuilder * theNeutrons;
G4LEPNeutronBuilder * theLEPNeutron;
G4FTFCNeutronBuilder * theFTFCNeutron;
G4PiKBuilder thePiK;
G4LEPPiKBuilder theLEPPiK;
G4FTFCPiKBuilder theFTFCPiK;
G4PiKBuilder * thePiK;
G4LEPPiKBuilder * theLEPPiK;
G4FTFCPiKBuilder * theFTFCPiK;
G4ProtonBuilder thePro;
G4LEPProtonBuilder theLEPPro;
G4FTFCProtonBuilder theFTFCPro;
G4ProtonBuilder * thePro;
G4LEPProtonBuilder * theLEPPro;
G4FTFCProtonBuilder * theFTFCPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
G4MiscLHEPBuilder * theMiscLHEP;
G4StoppingHadronBuilder * theStoppingHadron;
};
// 2002 by J.P. Wellisch
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsFTFC.cc,v 1.2 2005/11/29 16:59:40 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 28.11.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#include "HadronPhysicsFTFC.hh"
#include "globals.hh"
@@ -34,21 +48,46 @@
HadronPhysicsFTFC::HadronPhysicsFTFC(const G4String& name)
: G4VPhysicsConstructor(name)
{
theNeutrons.RegisterMe(&theFTFCNeutron);
theNeutrons.RegisterMe(&theLEPNeutron);
theLEPNeutron.SetMaxInelasticEnergy(25*GeV);
{}
thePro.RegisterMe(&theFTFCPro);
thePro.RegisterMe(&theLEPPro);
theLEPPro.SetMaxEnergy(25*GeV);
void HadronPhysicsFTFC::CreateModels()
{
theNeutrons=new G4NeutronBuilder;
theNeutrons->RegisterMe(theFTFCNeutron=new G4FTFCNeutronBuilder);
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
thePro=new G4ProtonBuilder;
thePro->RegisterMe(theFTFCPro=new G4FTFCProtonBuilder);
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
theLEPPro->SetMaxEnergy(25*GeV);
thePiK.RegisterMe(&theFTFCPiK);
thePiK.RegisterMe(&theLEPPiK);
theLEPPiK.SetMaxEnergy(25*GeV);
thePiK=new G4PiKBuilder;
thePiK->RegisterMe(theFTFCPiK=new G4FTFCPiKBuilder);
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
theLEPPiK->SetMaxEnergy(25*GeV);
theMiscLHEP=new G4MiscLHEPBuilder;
theStoppingHadron=new G4StoppingHadronBuilder;
}
HadronPhysicsFTFC::~HadronPhysicsFTFC() {}
HadronPhysicsFTFC::~HadronPhysicsFTFC()
{
delete theNeutrons;
delete theLEPNeutron;
delete theFTFCNeutron;
delete thePiK;
delete theLEPPiK;
delete theFTFCPiK;
delete thePro;
delete theLEPPro;
delete theFTFCPro;
delete theMiscLHEP;
delete theStoppingHadron;
}
void HadronPhysicsFTFC::ConstructParticle()
{
@@ -65,11 +104,11 @@ void HadronPhysicsFTFC::ConstructParticle()
#include "G4ProcessManager.hh"
void HadronPhysicsFTFC::ConstructProcess()
{
theNeutrons.Build();
thePro.Build();
thePiK.Build();
theMiscLHEP.Build();
theStoppingHadron.Build();
theHadronQED.Build();
CreateModels();
theNeutrons->Build();
thePro->Build();
thePiK->Build();
theMiscLHEP->Build();
theStoppingHadron->Build();
}
// 2002 by J.P. Wellisch
-52
View File
@@ -1,52 +0,0 @@
<! Copyright © 2002 J.P. Wellisch >
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.78C-CERN UNIX lxplus039 45 [en] (X11; U; Linux 2.4.9-31.1.cernsmp i686) [Netscape]">
</head>
<body>
&nbsp;
<center><table BORDER WIDTH="95%" >
<tr>
<th ALIGN=CENTER></th>
<td ALIGN=CENTER BGCOLOR="#FFF222">
<h1><br>
The @@@ physics list.
</h1>
</center><hr>
Click
<a href="../LHEP.tar">here</a> to down-load the source code of @@@ Version @.@
<br>
Click
<a href="../Packaging.tar">here</a> to down-load the Packaging re-use library 1.2
<hr><br>
The LHEP physics list models and cross-section:
<ul>
<li>
<b>FixME:</b> Some text and links to documentation to be added.
<li>
Verification plots for these cross-sections and models can be found
<a href="index.html">here</a>.
<b>FixME:</b> Add verification page.
</ul>
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr><td colspan="2"><hr hright="1"></td></tr>
<tr valign="bottom">
<td width="100%" class="small">
In case of questions, please contact
<a href=mailto:Hans-Peter.Wellisch@cern.ch>J.P Wellisch</a>. <BR>
</td>
<td ALIGN="right" class="small" nowrap>
J.P. Wellisch, 2002<BR>
</td>
</tr>
</table>
<!--#include file="../snippet.html" -->
</body>
</html>
<! Copyright © 2002 J.P. Wellisch >
+14 -1
View File
@@ -20,6 +20,19 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: FTFP.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2002 J.P. Wellisch
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef TFTFP_h
#define TFTFP_h 1
@@ -31,7 +44,7 @@ template<class T>
class TFTFP: public T
{
public:
TFTFP();
TFTFP(G4int ver = 1);
virtual ~TFTFP();
public:
+34 -20
View File
@@ -20,6 +20,22 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: FTFP.icc,v 1.7 2005/12/15 20:57:53 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 28.11.2005 G.Folger: migration to non static particles
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
// 02.12.2005 V.Ivanchenko: rename components
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
#include "G4ParticleDefinition.hh"
@@ -34,39 +50,38 @@
#include "G4ios.hh"
#include <iomanip>
#include "GeneralPhysics.hh"
#include "EMPhysics.hh"
#include "MuonPhysics.hh"
#include "IonPhysics.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsFTFP.hh"
template<class T> TFTFP<T>::TFTFP(): T()
template<class T> TFTFP<T>::TFTFP(G4int ver): T()
{
// default cut value (1.0mm)
// defaultCutValue = 1.0*mm;
G4DataQuestionaire it(photon);
G4cout << "You are using the simulation engine: FTFP 2.8"<<G4endl;
G4cout <<G4endl<<G4endl;
G4cout << "<<< Geant4 Physics List simulation engine: FTFP 4.0"<<G4endl;
G4cout <<G4endl;
this->defaultCutValue = 0.7*mm;
this->SetVerboseLevel(1);
// General Physics
this->RegisterPhysics( new GeneralPhysics("general") );
this->SetVerboseLevel(ver);
// EM Physics
this->RegisterPhysics( new EMPhysics("standard EM"));
this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver));
// Muon Physics
this->RegisterPhysics( new MuonPhysics("muon"));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics("extra EM"));
// Decays
this->RegisterPhysics( new G4DecayPhysics("decay",ver) );
// Hadron Physics
this->RegisterPhysics( new HadronPhysicsFTFP("hadron"));
// Ion Physics
this->RegisterPhysics( new IonPhysics("ion"));
this->RegisterPhysics( new G4IonPhysics("ion"));
}
template<class T> TFTFP<T>::~TFTFP()
@@ -83,9 +98,8 @@ template<class T> void TFTFP<T>::SetCuts()
this->SetCutsWithDefault();
G4VUserPhysicsList::DumpCutValuesTable();
// if (this->verboseLevel > 0)
// G4VUserPhysicsList::DumpCutValuesTable();
}
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsFTFP.hh,v 1.2 2005/11/29 17:00:07 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 23.11.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#ifndef HadronPhysicsFTFP_h
#define HadronPhysicsFTFP_h 1
@@ -27,7 +41,6 @@
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
@@ -54,21 +67,21 @@ class HadronPhysicsFTFP : public G4VPhysicsConstructor
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LEPNeutronBuilder theLEPNeutron;
G4FTFPNeutronBuilder theFTFPNeutron;
void CreateModels();
G4NeutronBuilder * theNeutrons;
G4LEPNeutronBuilder * theLEPNeutron;
G4FTFPNeutronBuilder * theFTFPNeutron;
G4PiKBuilder thePiK;
G4LEPPiKBuilder theLEPPiK;
G4FTFPPiKBuilder theFTFPPiK;
G4PiKBuilder * thePiK;
G4LEPPiKBuilder * theLEPPiK;
G4FTFPPiKBuilder * theFTFPPiK;
G4ProtonBuilder thePro;
G4LEPProtonBuilder theLEPPro;
G4FTFPProtonBuilder theFTFPPro;
G4ProtonBuilder * thePro;
G4LEPProtonBuilder * theLEPPro;
G4FTFPProtonBuilder * theFTFPPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
G4MiscLHEPBuilder * theMiscLHEP;
G4StoppingHadronBuilder * theStoppingHadron;
};
// 2002 by J.P. Wellisch
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsFTFP.cc,v 1.2 2005/11/29 17:00:07 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 23.11.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#include "HadronPhysicsFTFP.hh"
#include "globals.hh"
@@ -34,21 +48,47 @@
HadronPhysicsFTFP::HadronPhysicsFTFP(const G4String& name)
: G4VPhysicsConstructor(name)
{}
void HadronPhysicsFTFP::CreateModels()
{
theNeutrons.RegisterMe(&theFTFPNeutron);
theNeutrons.RegisterMe(&theLEPNeutron);
theLEPNeutron.SetMaxInelasticEnergy(25*GeV);
thePro.RegisterMe(&theFTFPPro);
thePro.RegisterMe(&theLEPPro);
theLEPPro.SetMaxEnergy(25*GeV);
theNeutrons=new G4NeutronBuilder;
theNeutrons->RegisterMe(theFTFPNeutron=new G4FTFPNeutronBuilder);
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
thePiK.RegisterMe(&theFTFPPiK);
thePiK.RegisterMe(&theLEPPiK);
theLEPPiK.SetMaxEnergy(25*GeV);
thePro=new G4ProtonBuilder;
thePro->RegisterMe(theFTFPPro=new G4FTFPProtonBuilder);
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
theLEPPro->SetMaxEnergy(25*GeV);
thePiK=new G4PiKBuilder;
thePiK->RegisterMe(theFTFPPiK=new G4FTFPPiKBuilder);
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
theLEPPiK->SetMaxEnergy(25*GeV);
theMiscLHEP=new G4MiscLHEPBuilder;
theStoppingHadron=new G4StoppingHadronBuilder;
}
HadronPhysicsFTFP::~HadronPhysicsFTFP() {}
HadronPhysicsFTFP::~HadronPhysicsFTFP()
{
delete theNeutrons;
delete theLEPNeutron;
delete theFTFPNeutron;
delete thePiK;
delete theLEPPiK;
delete theFTFPPiK;
delete thePro;
delete theLEPPro;
delete theFTFPPro;
delete theMiscLHEP;
delete theStoppingHadron;
}
void HadronPhysicsFTFP::ConstructParticle()
{
@@ -65,11 +105,11 @@ void HadronPhysicsFTFP::ConstructParticle()
#include "G4ProcessManager.hh"
void HadronPhysicsFTFP::ConstructProcess()
{
theNeutrons.Build();
thePro.Build();
thePiK.Build();
theMiscLHEP.Build();
theStoppingHadron.Build();
theHadronQED.Build();
CreateModels();
theNeutrons->Build();
thePro->Build();
thePiK->Build();
theMiscLHEP->Build();
theStoppingHadron->Build();
}
// 2002 by J.P. Wellisch
+3 -3
View File
@@ -1,8 +1,8 @@
# $Id: GNUmakefile,v 1.1 2004/12/13 16:38:57 gcosmo Exp $
# $Id: GNUmakefile,v 1.4 2005/12/16 09:59:31 gunter Exp $
# -----------------------------------------------------------------
SUBDIR1 = FTFC FTFP LBE LHEP LHEP_GN LHEP_HP LHEP_LEAD LHEP_LEAD_HP LHEP_PRECO QGSP_BERT
SUBDIR2 = LHEP_PRECO_HP Packaging QGSC QGSC_LEAD QGSC_LEAD_HP QGSP QGSP_GN QGSP_HP LHEP_BERT LHEP_BERT_HP LHEP_BIC LHEP_BIC_HP QGSP_BIC
SUBDIR1 = FTFC FTFP LBE LHEP LHEP_LEAD LHEP_LEAD_HP LHEP_PRECO QGSP_BERT QGSP_BERT_HP QGSP_EMV LHEP_EMV
SUBDIR2 = LHEP_PRECO_HP Packaging QGSC QGSC_LEAD QGSC_LEAD_HP QGSP QGSP_HP LHEP_BERT LHEP_BERT_HP LHEP_BIC LHEP_BIC_HP QGSP_BIC
.PHONY: all clean
@@ -15,8 +15,9 @@ endif
include $(G4INSTALL)/config/architecture.gmk
#
# define G4LISTS_BASE, if you have your own physics lists area installed point
# G4LISTS_BASE to the directory, that contains the subdirectory 'hadronic'.
# define G4LISTS_BASE, if you have your own physics lists area install point
# different from the default one, G4LISTS_BASE should point to the directory
# that contains the subdirectory 'hadronic'.
#
ifndef G4LISTS_BASE
EXTRALIBS += -L$(G4LIB)/plists/$(G4SYSTEM)
@@ -32,49 +33,50 @@ endif
# EXTRALIBS += -lFTFP
# EXTRALIBS += -lLBE
# EXTRALIBS += -lLHEP
# EXTRALIBS += -lLHEP_GN
# EXTRALIBS += -lLHEP_HP
# EXTRALIBS += -lLHEP_LEAD
# EXTRALIBS += -lLHEP_BERT_HP
# EXTRALIBS += -lLHEP_BIC_HP
# EXTRALIBS += -lLHEP_LEAD_HP
# EXTRALIBS += -lLHEP_PRECO
# EXTRALIBS += -lLHEP_EMV
# EXTRALIBS += -lQGSP_BERT
# EXTRALIBS += -lQGSP_BERT_HP
# EXTRALIBS += -lLHEP_PRECO_HP
# EXTRALIBS += -lQGSC
# EXTRALIBS += -lQGSC_LEAD
# EXTRALIBS += -lQGSC_LEAD_HP
# EXTRALIBS += -lQGSP
# EXTRALIBS += -lQGSP_GN
# EXTRALIBS += -lQGSP_HP
# EXTRALIBS += -lQGSP_EMV
# EXTRALIBS += -lLHEP_BERT
# EXTRALIBS += -lLHEP_BIC
# EXTRALIBS += -lQGSP_BIC
# EXTRALIBS += -lPackaging
EXTRALIBS += -lPackaging
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/FTFC/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/FTFP/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LBE/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BERT/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BIC/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_GN/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_HP/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BERT_HP/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BIC/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BIC_HP/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_LEAD/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_LEAD_HP/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_PRECO/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_PRECO_HP/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_EMV/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/Packaging/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSC/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSC_LEAD/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSC_LEAD_HP/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_BERT/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_BERT_HP/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_BIC/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_GN/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_HP/include
CPPFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_EMV/include
.PHONY: all
+38 -1
View File
@@ -1,4 +1,4 @@
$Id: History,v 1.4 2005/02/17 11:49:25 gcosmo Exp $
$Id: History,v 1.15 2005/12/16 09:59:31 gunter Exp $
-------------------------------------------------------------------
=========================================================
@@ -15,6 +15,43 @@ track of all tags.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
16.12.2005, G.Folger - hadr-lists-V07-01-08
- Add QGSP_EMV, LHEP_EMV physics lists, both using multiple scattering 71.
16.12.2005, G.Folger - hadr-lists-V07-01-07
- Add QGSP_BERT_HP physics list, used for background radiation studies for LHCb
15.12.2005, G.Folger - hadr-lists-V07-01-06
- Change version number for Packaging, FTFP, and QGSC.
07.12.2005, G.Cosmo - hadr-lists-V07-01-05
- Do not allow installation of shared libraries when Geant4 granular
libraries are installed and used. Coworks with tag "config-V07-01-06".
06.12.2005, V.Ivanchenko - hadr-lists-V07-01-04
- Defined hIoni and msc to the same list of hadrons as in version 7.1.
- Fixed bug in EmPhysics71.
05.12.2005, V.Ivanchenko - hadr-lists-V07-01-03
- Add verbosity level as a parameter of Physics Lists
- Update cout
02.12.2005, G.Folger - hadr-lists-V07-01-02
- Completed migration of physics lists to non static particles scheme.
Package 3.0.
02.12.2005, V.Ivanchenko - hadr-lists-V07-01-01
- Rename Builder -> Physics for all PhysicsConstructors.
- Fixed compilation problems for non migrated lists.
29.11.2005, G.Folger - hadr-lists-V07-01-00
- (Partial) migration of physics lists to non static particles scheme.
A copy of the standard EM Builder is also used.
Nov-2005, G.Folger - hadr-lists-V07-01-00
- numerous changes to adopt lists to non static particle scheme.
- use standard EM physics builder
17.02.2005, G.Cosmo - ghad-lists-V07-00-01
- Added missing fix in LBE physics-list for usage of 'this' pointer for
porting on gcc-3.4.X compiler series.
@@ -22,7 +22,7 @@
//
//
// $Id: MinEkineCuts.hh,v 1.1 2004/12/13 16:50:57 gcosmo Exp $
// GEANT4 tag $Name: geant4-07-01 $
// GEANT4 tag $Name: geant4-08-00 $
//
//
// ------------------------------------------------------------
@@ -21,7 +21,7 @@
// ********************************************************************
//
//
// GEANT4 tag $Name: geant4-07-01 $
// GEANT4 tag $Name: geant4-08-00 $
//
//
// --------------------------------------------------------------
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP.hh,v 1.2 2005/11/29 17:01:20 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 21.11.2005 G.Folger: don't keep processes as data members, but new these
//
//----------------------------------------------------------------------------
//
#ifndef HadronPhysicsLHEP_h
#define HadronPhysicsLHEP_h 1
@@ -27,7 +41,6 @@
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
@@ -51,18 +64,18 @@ class HadronPhysicsLHEP : public G4VPhysicsConstructor
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LHEPNeutronBuilder theLHEPNeutron;
void CreateModels();
G4NeutronBuilder * theNeutrons;
G4LHEPNeutronBuilder * theLHEPNeutron;
G4PiKBuilder thePiK;
G4LHEPPiKBuilder theLHEPPiK;
G4PiKBuilder * thePiK;
G4LHEPPiKBuilder * theLHEPPiK;
G4ProtonBuilder thePro;
G4LHEPProtonBuilder theLHEPPro;
G4ProtonBuilder * thePro;
G4LHEPProtonBuilder * theLHEPPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
G4MiscLHEPBuilder * theMiscLHEP;
G4StoppingHadronBuilder * theStoppingHadron;
};
// 2002 by J.P. Wellisch
+1 -1
View File
@@ -31,7 +31,7 @@ template<class T>
class TLHEP: public T
{
public:
TLHEP();
TLHEP(G4int ver = 1);
virtual ~TLHEP();
public:
+35 -20
View File
@@ -20,7 +20,22 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP.icc,v 1.8 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 25.11.2005 G.Folger: migration to non static particles
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
// 02.12.2005 V.Ivanchenko: rename components
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
#include "G4ParticleDefinition.hh"
#include "G4ParticleWithCuts.hh"
@@ -34,38 +49,38 @@
#include "G4ios.hh"
#include <iomanip>
#include "GeneralPhysics.hh"
#include "EMPhysics.hh"
#include "MuonPhysics.hh"
#include "IonPhysics.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsLHEP.hh"
template<class T> TLHEP<T>::TLHEP(): T()
template<class T> TLHEP<T>::TLHEP(G4int ver): T()
{
// default cut value (1.0mm)
// defaultCutValue = 1.0*mm;
G4DataQuestionaire it(photon);
G4cout << "You are using the simulation engine: LHEP 3.7"<<G4endl;
G4cout <<G4endl<<G4endl;
G4cout << "<<< Geant4 Physics List simulation engine: LHEP 4.0"<<G4endl;
G4cout <<G4endl;
this->defaultCutValue = 0.7*mm;
this->SetVerboseLevel(1);
// General Physics
this->RegisterPhysics( new GeneralPhysics("general") );
this->SetVerboseLevel(ver);
// EM Physics
this->RegisterPhysics( new EMPhysics("standard EM"));
this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver));
// Muon Physics
this->RegisterPhysics( new MuonPhysics("muon"));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics("extra EM"));
// General Physics - i.e. decay
this->RegisterPhysics( new G4DecayPhysics("decay",ver) );
// Hadron Physics
this->RegisterPhysics( new HadronPhysicsLHEP("hadron"));
// Ion Physics
this->RegisterPhysics( new IonPhysics("ion"));
this->RegisterPhysics( new G4IonPhysics("ion"));
}
@@ -83,9 +98,9 @@ template<class T> void TLHEP<T>::SetCuts()
this->SetCutsWithDefault();
G4VUserPhysicsList::DumpCutValuesTable();
// if (this->verboseLevel >0)
// G4VUserPhysicsList::DumpCutValuesTable();
}
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP.cc,v 1.2 2005/11/29 17:01:20 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 21.11.2005 G.Folger: don't keep processes as data members, but new these
//
//----------------------------------------------------------------------------
//
#include "HadronPhysicsLHEP.hh"
#include "globals.hh"
@@ -34,13 +48,29 @@
HadronPhysicsLHEP::HadronPhysicsLHEP(const G4String& name)
: G4VPhysicsConstructor(name)
{}
void HadronPhysicsLHEP::CreateModels()
{
theNeutrons.RegisterMe(&theLHEPNeutron);
thePro.RegisterMe(&theLHEPPro);
thePiK.RegisterMe(&theLHEPPiK);
theNeutrons=new G4NeutronBuilder;
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
thePro=new G4ProtonBuilder;
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
thePiK=new G4PiKBuilder;
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
}
HadronPhysicsLHEP::~HadronPhysicsLHEP() {}
HadronPhysicsLHEP::~HadronPhysicsLHEP()
{
delete theLHEPNeutron;
delete theNeutrons;
delete theLHEPPro;
delete thePro;
delete theLHEPPiK;
delete thePiK;
}
void HadronPhysicsLHEP::ConstructParticle()
{
@@ -52,16 +82,19 @@ void HadronPhysicsLHEP::ConstructParticle()
G4ShortLivedConstructor pShortLivedConstructor;
pShortLivedConstructor.ConstructParticle();
theMiscLHEP=new G4MiscLHEPBuilder;
theStoppingHadron=new G4StoppingHadronBuilder;
}
#include "G4ProcessManager.hh"
void HadronPhysicsLHEP::ConstructProcess()
{
theNeutrons.Build();
thePro.Build();
thePiK.Build();
theMiscLHEP.Build();
theStoppingHadron.Build();
theHadronQED.Build();
CreateModels();
theNeutrons->Build();
thePro->Build();
thePiK->Build();
theMiscLHEP->Build();
theStoppingHadron->Build();
}
// 2002 by J.P. Wellisch
-52
View File
@@ -1,52 +0,0 @@
<! Copyright © 2002 J.P. Wellisch >
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.78C-CERN UNIX lxplus039 45 [en] (X11; U; Linux 2.4.9-31.1.cernsmp i686) [Netscape]">
</head>
<body>
&nbsp;
<center><table BORDER WIDTH="95%" >
<tr>
<th ALIGN=CENTER></th>
<td ALIGN=CENTER BGCOLOR="#FFF222">
<h1><br>
The @@@ physics list.
</h1>
</center><hr>
Click
<a href="../LHEP.tar">here</a> to down-load the source code of @@@ Version @.@
<br>
Click
<a href="../Packaging.tar">here</a> to down-load the Packaging re-use library 1.2
<hr><br>
The LHEP physics list models and cross-section:
<ul>
<li>
<b>FixME:</b> Some text and links to documentation to be added.
<li>
Verification plots for these cross-sections and models can be found
<a href="index.html">here</a>.
<b>FixME:</b> Add verification page.
</ul>
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr><td colspan="2"><hr hright="1"></td></tr>
<tr valign="bottom">
<td width="100%" class="small">
In case of questions, please contact
<a href=mailto:Hans-Peter.Wellisch@cern.ch>J.P Wellisch</a>. <BR>
</td>
<td ALIGN="right" class="small" nowrap>
J.P. Wellisch, 2002<BR>
</td>
</tr>
</table>
<!--#include file="../snippet.html" -->
</body>
</html>
<! Copyright © 2002 J.P. Wellisch >
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_BERT.hh,v 1.3 2005/12/02 16:09:51 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_BERT
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#ifndef HadronPhysicsLHEP_BERT_h
#define HadronPhysicsLHEP_BERT_h 1
@@ -27,7 +41,6 @@
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
@@ -54,21 +67,21 @@ class HadronPhysicsLHEP_BERT : public G4VPhysicsConstructor
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LHEPNeutronBuilder theLHEPNeutron;
G4BertiniNeutronBuilder theBertiniNeutron;
void CreateModels();
G4NeutronBuilder * theNeutrons;
G4LHEPNeutronBuilder * theLHEPNeutron;
G4BertiniNeutronBuilder * theBertiniNeutron;
G4PiKBuilder thePiK;
G4LHEPPiKBuilder theLHEPPiK;
G4BertiniPiKBuilder theBertiniPiK;
G4PiKBuilder * thePiK;
G4LHEPPiKBuilder * theLHEPPiK;
G4BertiniPiKBuilder * theBertiniPiK;
G4ProtonBuilder thePro;
G4LHEPProtonBuilder theLHEPPro;
G4BertiniProtonBuilder theBertiniPro;
G4ProtonBuilder * thePro;
G4LHEPProtonBuilder * theLHEPPro;
G4BertiniProtonBuilder * theBertiniPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
G4MiscLHEPBuilder * theMiscLHEP;
G4StoppingHadronBuilder * theStoppingHadron;
};
// 2002 by J.P. Wellisch
@@ -20,6 +20,19 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_BERT.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_BERT
//
// Author: 2002 J.P. Wellisch
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef TLHEP_BERT_h
#define TLHEP_BERT_h 1
@@ -31,7 +44,7 @@ template <class T>
class TLHEP_BERT: public T
{
public:
TLHEP_BERT();
TLHEP_BERT(G4int ver = 1);
virtual ~TLHEP_BERT();
public:
@@ -20,6 +20,21 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_BERT.icc,v 1.6 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_BERT
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.11.2005 G.Folger: migration to non static particles
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
#include "G4ParticleDefinition.hh"
@@ -34,41 +49,40 @@
#include "G4ios.hh"
#include <iomanip>
#include "GeneralPhysics.hh"
#include "EMPhysics.hh"
#include "MuonPhysics.hh"
#include "IonPhysics.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsLHEP_BERT.hh"
template<class T> TLHEP_BERT<T>::TLHEP_BERT(): T()
template<class T> TLHEP_BERT<T>::TLHEP_BERT(G4int ver): T()
{
// default cut value (1.0mm)
// defaultCutValue = 1.0*mm;
G4DataQuestionaire it(photon);
G4cout << "You are using the simulation engine: LHEP_BERT 1.1"<<G4endl;
G4cout <<G4endl<<G4endl;
G4cout << "<<< Geant4 Physics List simulation engine: LHEP_BERT 3.0"<<G4endl;
G4cout <<G4endl;
this->defaultCutValue = 0.7*mm;
this->SetVerboseLevel(1);
// General Physics
this->RegisterPhysics( new GeneralPhysics("general") );
this->SetVerboseLevel(ver);
// EM Physics
this->RegisterPhysics( new EMPhysics("standard EM"));
this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver));
// Muon Physics
this->RegisterPhysics( new MuonPhysics("muon"));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics("extra EM"));
// General Physics - i.e. decay
this->RegisterPhysics( new G4DecayPhysics("decay",ver) );
// Hadron Physics
this->RegisterPhysics( new HadronPhysicsLHEP_BERT("hadron"));
// Ion Physics
this->RegisterPhysics( new IonPhysics("ion"));
this->RegisterPhysics( new G4IonPhysics("ion"));
}
@@ -78,7 +92,7 @@ template<class T> TLHEP_BERT<T>::~TLHEP_BERT()
template<class T> void TLHEP_BERT<T>::SetCuts()
{
if (this->verboseLevel >1){
if (this->verboseLevel >1) {
G4cout << "LHEP_BERT::SetCuts:";
}
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
@@ -86,9 +100,8 @@ template<class T> void TLHEP_BERT<T>::SetCuts()
this->SetCutsWithDefault();
G4VUserPhysicsList::DumpCutValuesTable();
// if (this->verboseLevel > 0)
// G4VUserPhysicsList::DumpCutValuesTable();
}
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_BERT.cc,v 1.3 2005/12/02 16:09:51 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_BERT
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#include "HadronPhysicsLHEP_BERT.hh"
#include "globals.hh"
@@ -34,25 +48,50 @@
HadronPhysicsLHEP_BERT::HadronPhysicsLHEP_BERT(const G4String& name)
: G4VPhysicsConstructor(name)
{
theNeutrons.RegisterMe(&theLHEPNeutron);
theNeutrons.RegisterMe(&theBertiniNeutron);
theLHEPNeutron.SetMinInelasticEnergy(9.5*GeV);
theBertiniNeutron.SetMaxEnergy(9.9*GeV);
{}
thePro.RegisterMe(&theLHEPPro);
thePro.RegisterMe(&theBertiniPro);
theLHEPPro.SetMinEnergy(9.5*GeV);
theBertiniPro.SetMaxEnergy(9.9*GeV);
thePiK.RegisterMe(&theLHEPPiK);
thePiK.RegisterMe(&theBertiniPiK);
theLHEPPiK.SetMinPionEnergy(9.5*GeV);
theBertiniPiK.SetMaxEnergy(9.9*GeV);
void HadronPhysicsLHEP_BERT::CreateModels()
{
theNeutrons=new G4NeutronBuilder;
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
theNeutrons->RegisterMe(theBertiniNeutron=new G4BertiniNeutronBuilder);
theLHEPNeutron->SetMinInelasticEnergy(9.5*GeV);
theBertiniNeutron->SetMaxEnergy(9.9*GeV);
thePro=new G4ProtonBuilder;
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
thePro->RegisterMe(theBertiniPro=new G4BertiniProtonBuilder);
theLHEPPro->SetMinEnergy(9.5*GeV);
theBertiniPro->SetMaxEnergy(9.9*GeV);
thePiK=new G4PiKBuilder;
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
thePiK->RegisterMe(theBertiniPiK=new G4BertiniPiKBuilder);
theLHEPPiK->SetMinPionEnergy(9.5*GeV);
theBertiniPiK->SetMaxEnergy(9.9*GeV);
theMiscLHEP=new G4MiscLHEPBuilder;
theStoppingHadron=new G4StoppingHadronBuilder;
}
HadronPhysicsLHEP_BERT::~HadronPhysicsLHEP_BERT() {}
HadronPhysicsLHEP_BERT::~HadronPhysicsLHEP_BERT()
{
delete theNeutrons;
delete theLHEPNeutron;
delete theBertiniNeutron;
delete thePiK;
delete theLHEPPiK;
delete theBertiniPiK;
delete thePro;
delete theLHEPPro;
delete theBertiniPro;
delete theMiscLHEP;
delete theStoppingHadron;
}
void HadronPhysicsLHEP_BERT::ConstructParticle()
{
@@ -69,11 +108,11 @@ void HadronPhysicsLHEP_BERT::ConstructParticle()
#include "G4ProcessManager.hh"
void HadronPhysicsLHEP_BERT::ConstructProcess()
{
theNeutrons.Build();
thePro.Build();
thePiK.Build();
theMiscLHEP.Build();
theStoppingHadron.Build();
theHadronQED.Build();
CreateModels();
theNeutrons->Build();
thePro->Build();
thePiK->Build();
theMiscLHEP->Build();
theStoppingHadron->Build();
}
// 2002 by J.P. Wellisch
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_BERT_HP.hh,v 1.3 2005/12/02 16:16:59 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_BERT_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#ifndef HadronPhysicsLHEP_BERT_HP_h
#define HadronPhysicsLHEP_BERT_HP_h 1
@@ -27,7 +41,6 @@
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
@@ -54,21 +67,21 @@ class HadronPhysicsLHEP_BERT_HP : public G4VPhysicsConstructor
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LHEPNeutronBuilder theLHEPNeutron;
G4BertiniNeutronBuilder theBertiniNeutron;
G4NeutronHPBuilder theHPNeutron;
void CreateModels();
G4NeutronBuilder * theNeutrons;
G4LHEPNeutronBuilder * theLHEPNeutron;
G4BertiniNeutronBuilder * theBertiniNeutron;
G4NeutronHPBuilder * theHPNeutron;
G4PiKBuilder thePiK;
G4LHEPPiKBuilder theLHEPPiK;
G4PiKBuilder * thePiK;
G4LHEPPiKBuilder * theLHEPPiK;
G4ProtonBuilder thePro;
G4LHEPProtonBuilder theLHEPPro;
G4BertiniProtonBuilder theBertiniPro;
G4ProtonBuilder * thePro;
G4LHEPProtonBuilder * theLHEPPro;
G4BertiniProtonBuilder * theBertiniPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
G4MiscLHEPBuilder * theMiscLHEP;
G4StoppingHadronBuilder * theStoppingHadron;
};
// 2002 by J.P. Wellisch
@@ -31,7 +31,7 @@ template<class T>
class TLHEP_BERT_HP: public T
{
public:
TLHEP_BERT_HP();
TLHEP_BERT_HP(G4int ver = 1);
virtual ~TLHEP_BERT_HP();
public:
@@ -20,6 +20,21 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_BERT_HP.icc,v 1.6 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.11.2005 G.Folger: migration to non static particles
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
#include "G4ParticleDefinition.hh"
@@ -34,39 +49,38 @@
#include "G4ios.hh"
#include <iomanip>
#include "GeneralPhysics.hh"
#include "EMPhysics.hh"
#include "MuonPhysics.hh"
#include "IonPhysics.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsLHEP_BERT_HP.hh"
template<class T> TLHEP_BERT_HP<T>::TLHEP_BERT_HP(): T()
template<class T> TLHEP_BERT_HP<T>::TLHEP_BERT_HP(G4int ver): T()
{
G4DataQuestionaire it(photon);
G4cout << "You are using the simulation engine: LHEP_BERT_HP 1.1"<<G4endl;
G4cout << "<<< Geant4 Physics List simulation engine: LHEP_BERT_HP 3.0"<<G4endl;
G4cout <<G4endl<<G4endl;
this->defaultCutValue = 0.7*mm;
this->SetVerboseLevel(1);
// General Physics
this->RegisterPhysics( new GeneralPhysics("general") );
this->SetVerboseLevel(ver);
// EM Physics
this->RegisterPhysics( new EMPhysics("standard EM"));
this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver));
// Muon Physics
this->RegisterPhysics( new MuonPhysics("muon"));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics("extra EM"));
// Hadron Physics
// Decays
this->RegisterPhysics( new G4DecayPhysics("decay",ver) );
// Hadron Physics
this->RegisterPhysics( new HadronPhysicsLHEP_BERT_HP("hadron"));
// Ion Physics
this->RegisterPhysics( new IonPhysics("ion"));
this->RegisterPhysics( new G4IonPhysics("ion"));
}
@@ -84,9 +98,8 @@ template<class T> void TLHEP_BERT_HP<T>::SetCuts()
this->SetCutsWithDefault();
G4VUserPhysicsList::DumpCutValuesTable();
// if (this->verboseLevel > 0)
// G4VUserPhysicsList::DumpCutValuesTable();
}
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_BERT_HP.cc,v 1.3 2005/12/02 16:16:59 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_BERT_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#include "HadronPhysicsLHEP_BERT_HP.hh"
#include "globals.hh"
@@ -34,25 +48,49 @@
HadronPhysicsLHEP_BERT_HP::HadronPhysicsLHEP_BERT_HP(const G4String& name)
: G4VPhysicsConstructor(name)
{
theNeutrons.RegisterMe(&theLHEPNeutron);
theNeutrons.RegisterMe(&theBertiniNeutron);
theNeutrons.RegisterMe(&theHPNeutron);
theLHEPNeutron.SetMinEnergy(19.9*MeV);
theLHEPNeutron.SetMinInelasticEnergy(9.5*GeV);
theBertiniNeutron.SetMaxEnergy(9.9*GeV);
theBertiniNeutron.SetMinEnergy(19.9*MeV);
{}
thePro.RegisterMe(&theLHEPPro);
thePro.RegisterMe(&theBertiniPro);
theLHEPPro.SetMinEnergy(9.5*GeV);
theBertiniPro.SetMaxEnergy(9.9*GeV);
void HadronPhysicsLHEP_BERT_HP::CreateModels()
{
theNeutrons=new G4NeutronBuilder;
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
theNeutrons->RegisterMe(theBertiniNeutron=new G4BertiniNeutronBuilder);
theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder);
theLHEPNeutron->SetMinEnergy(19.9*MeV);
theLHEPNeutron->SetMinInelasticEnergy(9.5*GeV);
theBertiniNeutron->SetMaxEnergy(9.9*GeV);
theBertiniNeutron->SetMinEnergy(19.9*MeV);
thePro=new G4ProtonBuilder;
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
thePro->RegisterMe(theBertiniPro=new G4BertiniProtonBuilder);
theLHEPPro->SetMinEnergy(9.5*GeV);
theBertiniPro->SetMaxEnergy(9.9*GeV);
thePiK.RegisterMe(&theLHEPPiK);
thePiK=new G4PiKBuilder;
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
theMiscLHEP=new G4MiscLHEPBuilder;
theStoppingHadron=new G4StoppingHadronBuilder;
}
HadronPhysicsLHEP_BERT_HP::~HadronPhysicsLHEP_BERT_HP() {}
HadronPhysicsLHEP_BERT_HP::~HadronPhysicsLHEP_BERT_HP()
{
delete theNeutrons;
delete theLHEPNeutron;
delete theBertiniNeutron;
delete theHPNeutron;
delete thePiK;
delete theLHEPPiK;
delete thePro;
delete theLHEPPro;
delete theBertiniPro;
delete theMiscLHEP;
delete theStoppingHadron;
}
void HadronPhysicsLHEP_BERT_HP::ConstructParticle()
{
@@ -69,11 +107,11 @@ void HadronPhysicsLHEP_BERT_HP::ConstructParticle()
#include "G4ProcessManager.hh"
void HadronPhysicsLHEP_BERT_HP::ConstructProcess()
{
theNeutrons.Build();
thePro.Build();
thePiK.Build();
theMiscLHEP.Build();
theStoppingHadron.Build();
theHadronQED.Build();
CreateModels();
theNeutrons->Build();
thePro->Build();
thePiK->Build();
theMiscLHEP->Build();
theStoppingHadron->Build();
}
// 2002 by J.P. Wellisch
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_BIC.hh,v 1.3 2005/12/02 16:13:42 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_BIC
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#ifndef HadronPhysicsLHEP_BIC_h
#define HadronPhysicsLHEP_BIC_h 1
@@ -27,7 +41,6 @@
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
@@ -53,20 +66,20 @@ class HadronPhysicsLHEP_BIC : public G4VPhysicsConstructor
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LHEPNeutronBuilder theLHEPNeutron;
G4BinaryNeutronBuilder theBinaryNeutron;
void CreateModels();
G4NeutronBuilder * theNeutrons;
G4LHEPNeutronBuilder * theLHEPNeutron;
G4BinaryNeutronBuilder * theBinaryNeutron;
G4PiKBuilder thePiK;
G4LHEPPiKBuilder theLHEPPiK;
G4PiKBuilder * thePiK;
G4LHEPPiKBuilder * theLHEPPiK;
G4ProtonBuilder thePro;
G4LHEPProtonBuilder theLHEPPro;
G4BinaryProtonBuilder theBinaryPro;
G4ProtonBuilder * thePro;
G4LHEPProtonBuilder * theLHEPPro;
G4BinaryProtonBuilder * theBinaryPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
G4MiscLHEPBuilder * theMiscLHEP;
G4StoppingHadronBuilder * theStoppingHadron;
};
// 2002 by J.P. Wellisch
@@ -20,6 +20,19 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_BIC.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_BIC
//
// Author: 2002 J.P. Wellisch
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef TLHEP_BIC_h
#define TLHEP_BIC_h 1
@@ -31,7 +44,7 @@ template<class T>
class TLHEP_BIC: public T
{
public:
TLHEP_BIC();
TLHEP_BIC(G4int ver = 1);
virtual ~TLHEP_BIC();
public:
@@ -20,6 +20,21 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_BIC.icc,v 1.6 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_BIC
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.11.2005 G.Folger: migration to non static particles
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
#include "G4ParticleDefinition.hh"
@@ -34,41 +49,40 @@
#include "G4ios.hh"
#include <iomanip>
#include "GeneralPhysics.hh"
#include "EMPhysics.hh"
#include "MuonPhysics.hh"
#include "IonPhysics.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsLHEP_BIC.hh"
template<class T> TLHEP_BIC<T>::TLHEP_BIC(): T()
template<class T> TLHEP_BIC<T>::TLHEP_BIC(G4int ver): T()
{
// default cut value (1.0mm)
// defaultCutValue = 1.0*mm;
G4DataQuestionaire it(photon);
G4cout << "You are using the simulation engine: LHEP_BIC 1.1"<<G4endl;
G4cout <<G4endl<<G4endl;
G4cout << "<<< Geant4 Physics List simulation engine: LHEP_BIC 3.0"<<G4endl;
G4cout <<G4endl;
this->defaultCutValue = 0.7*mm;
this->SetVerboseLevel(1);
// General Physics
this->RegisterPhysics( new GeneralPhysics("general") );
this->SetVerboseLevel(ver);
// EM Physics
this->RegisterPhysics( new EMPhysics("standard EM"));
this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver));
// Muon Physics
this->RegisterPhysics( new MuonPhysics("muon"));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics("extra EM"));
// Decays
this->RegisterPhysics( new G4DecayPhysics("decay",ver) );
// Hadron Physics
this->RegisterPhysics( new HadronPhysicsLHEP_BIC("hadron"));
// Ion Physics
this->RegisterPhysics( new IonPhysics("ion"));
this->RegisterPhysics( new G4IonPhysics("ion"));
}
@@ -86,9 +100,8 @@ template<class T> void TLHEP_BIC<T>::SetCuts()
this->SetCutsWithDefault();
G4VUserPhysicsList::DumpCutValuesTable();
// if (this->verboseLevel >0)
// G4VUserPhysicsList::DumpCutValuesTable();
}
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_BIC.cc,v 1.3 2005/12/02 16:13:42 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_BIC
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#include "HadronPhysicsLHEP_BIC.hh"
#include "globals.hh"
@@ -34,22 +48,46 @@
HadronPhysicsLHEP_BIC::HadronPhysicsLHEP_BIC(const G4String& name)
: G4VPhysicsConstructor(name)
{
theNeutrons.RegisterMe(&theLHEPNeutron);
theNeutrons.RegisterMe(&theBinaryNeutron);
theLHEPNeutron.SetMinInelasticEnergy(9.5*GeV);
theBinaryNeutron.SetMaxEnergy(9.9*GeV);
{}
thePro.RegisterMe(&theLHEPPro);
thePro.RegisterMe(&theBinaryPro);
theLHEPPro.SetMinEnergy(9.5*GeV);
theBinaryPro.SetMaxEnergy(9.9*GeV);
void HadronPhysicsLHEP_BIC::CreateModels()
{
theNeutrons=new G4NeutronBuilder;
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
theNeutrons->RegisterMe(theBinaryNeutron=new G4BinaryNeutronBuilder);
theLHEPNeutron->SetMinInelasticEnergy(9.5*GeV);
theBinaryNeutron->SetMaxEnergy(9.9*GeV);
thePro=new G4ProtonBuilder;
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
thePro->RegisterMe(theBinaryPro=new G4BinaryProtonBuilder);
theLHEPPro->SetMinEnergy(9.5*GeV);
theBinaryPro->SetMaxEnergy(9.9*GeV);
thePiK.RegisterMe(&theLHEPPiK);
thePiK=new G4PiKBuilder;
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
theMiscLHEP=new G4MiscLHEPBuilder;
theStoppingHadron=new G4StoppingHadronBuilder;
}
HadronPhysicsLHEP_BIC::~HadronPhysicsLHEP_BIC() {}
HadronPhysicsLHEP_BIC::~HadronPhysicsLHEP_BIC()
{
delete theNeutrons;
delete theLHEPNeutron;
delete theBinaryNeutron;
delete thePiK;
delete theLHEPPiK;
delete thePro;
delete theLHEPPro;
delete theBinaryPro;
delete theMiscLHEP;
delete theStoppingHadron;
}
void HadronPhysicsLHEP_BIC::ConstructParticle()
{
@@ -66,11 +104,11 @@ void HadronPhysicsLHEP_BIC::ConstructParticle()
#include "G4ProcessManager.hh"
void HadronPhysicsLHEP_BIC::ConstructProcess()
{
theNeutrons.Build();
thePro.Build();
thePiK.Build();
theMiscLHEP.Build();
theStoppingHadron.Build();
theHadronQED.Build();
CreateModels();
theNeutrons->Build();
thePro->Build();
thePiK->Build();
theMiscLHEP->Build();
theStoppingHadron->Build();
}
// 2002 by J.P. Wellisch
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_BIC_HP.hh,v 1.3 2005/12/02 16:51:45 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_BIC_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#ifndef HadronPhysicsLHEP_BIC_HP_h
#define HadronPhysicsLHEP_BIC_HP_h 1
@@ -27,7 +41,6 @@
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
@@ -54,21 +67,21 @@ class HadronPhysicsLHEP_BIC_HP : public G4VPhysicsConstructor
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LHEPNeutronBuilder theLHEPNeutron;
G4BinaryNeutronBuilder theBinaryNeutron;
G4NeutronHPBuilder theHPNeutron;
void CreateModels();
G4NeutronBuilder * theNeutrons;
G4LHEPNeutronBuilder * theLHEPNeutron;
G4BinaryNeutronBuilder * theBinaryNeutron;
G4NeutronHPBuilder * theHPNeutron;
G4PiKBuilder thePiK;
G4LHEPPiKBuilder theLHEPPiK;
G4PiKBuilder * thePiK;
G4LHEPPiKBuilder * theLHEPPiK;
G4ProtonBuilder thePro;
G4LHEPProtonBuilder theLHEPPro;
G4BinaryProtonBuilder theBinaryPro;
G4ProtonBuilder * thePro;
G4LHEPProtonBuilder * theLHEPPro;
G4BinaryProtonBuilder * theBinaryPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
G4MiscLHEPBuilder * theMiscLHEP;
G4StoppingHadronBuilder * theStoppingHadron;
};
// 2002 by J.P. Wellisch
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_BIC_HP.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_BIC_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.11.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#ifndef TLHEP_BIC_HP_h
#define TLHEP_BIC_HP_h 1
@@ -31,7 +45,7 @@ template<class T>
class TLHEP_BIC_HP: public T
{
public:
TLHEP_BIC_HP();
TLHEP_BIC_HP(G4int ver = 1);
virtual ~TLHEP_BIC_HP();
public:
@@ -20,6 +20,21 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_BIC_HP.icc,v 1.6 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_BIC_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.11.2005 G.Folger: migration to non static particles
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
#include "G4ParticleDefinition.hh"
@@ -34,42 +49,40 @@
#include "G4ios.hh"
#include <iomanip>
#include "GeneralPhysics.hh"
#include "EMPhysics.hh"
#include "MuonPhysics.hh"
#include "IonPhysics.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsLHEP_BIC_HP.hh"
template<class T> TLHEP_BIC_HP<T>::TLHEP_BIC_HP(): T()
template<class T> TLHEP_BIC_HP<T>::TLHEP_BIC_HP(G4int ver): T()
{
// default cut value (1.0mm)
// defaultCutValue = 1.0*mm;
G4DataQuestionaire it(photon);
G4cout << "You are using the simulation engine: LHEP_BIC_HP 1.1"<<G4endl;
G4cout <<G4endl<<G4endl;
G4cout << "<<< Geant4 Physics List simulation engine: LHEP_BIC_HP 3.0"<<G4endl;
G4cout <<G4endl;
this->defaultCutValue = 0.7*mm;
this->SetVerboseLevel(1);
// General Physics
this->RegisterPhysics( new GeneralPhysics("general") );
this->SetVerboseLevel(ver);
// EM Physics
this->RegisterPhysics( new EMPhysics("standard EM"));
this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver));
// Muon Physics
this->RegisterPhysics( new MuonPhysics("muon"));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics("extra EM"));
// Hadron Physics
// Decays
this->RegisterPhysics( new G4DecayPhysics("decay",ver) );
// Hadron Physics
this->RegisterPhysics( new HadronPhysicsLHEP_BIC_HP("hadron"));
// Ion Physics
this->RegisterPhysics( new IonPhysics("ion"));
this->RegisterPhysics( new G4IonPhysics("ion"));
}
template<class T> TLHEP_BIC_HP<T>::~TLHEP_BIC_HP()
@@ -86,9 +99,8 @@ template<class T> void TLHEP_BIC_HP<T>::SetCuts()
this->SetCutsWithDefault();
G4VUserPhysicsList::DumpCutValuesTable();
// if (this->verboseLevel >0)
// G4VUserPhysicsList::DumpCutValuesTable();
}
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_BIC_HP.cc,v 1.3 2005/12/02 16:51:45 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_BIC_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#include "HadronPhysicsLHEP_BIC_HP.hh"
#include "globals.hh"
@@ -34,25 +48,50 @@
HadronPhysicsLHEP_BIC_HP::HadronPhysicsLHEP_BIC_HP(const G4String& name)
: G4VPhysicsConstructor(name)
{
theNeutrons.RegisterMe(&theLHEPNeutron);
theNeutrons.RegisterMe(&theBinaryNeutron);
theNeutrons.RegisterMe(&theHPNeutron);
theLHEPNeutron.SetMinEnergy(19.9*MeV);
theLHEPNeutron.SetMinInelasticEnergy(9.5*GeV);
theBinaryNeutron.SetMaxEnergy(9.9*GeV);
theBinaryNeutron.SetMinEnergy(19.9*MeV);
{}
thePro.RegisterMe(&theLHEPPro);
thePro.RegisterMe(&theBinaryPro);
theLHEPPro.SetMinEnergy(9.5*GeV);
theBinaryPro.SetMaxEnergy(9.9*GeV);
void HadronPhysicsLHEP_BIC_HP::CreateModels()
{
theNeutrons=new G4NeutronBuilder;
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
theNeutrons->RegisterMe(theBinaryNeutron=new G4BinaryNeutronBuilder);
theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder);
theLHEPNeutron->SetMinEnergy(19.9*MeV);
theLHEPNeutron->SetMinInelasticEnergy(9.5*GeV);
theBinaryNeutron->SetMaxEnergy(9.9*GeV);
theBinaryNeutron->SetMinEnergy(19.9*MeV);
thePro=new G4ProtonBuilder;
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
thePro->RegisterMe(theBinaryPro=new G4BinaryProtonBuilder);
theLHEPPro->SetMinEnergy(9.5*GeV);
theBinaryPro->SetMaxEnergy(9.9*GeV);
thePiK.RegisterMe(&theLHEPPiK);
thePiK=new G4PiKBuilder;
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
theMiscLHEP=new G4MiscLHEPBuilder;
theStoppingHadron=new G4StoppingHadronBuilder;
}
HadronPhysicsLHEP_BIC_HP::~HadronPhysicsLHEP_BIC_HP() {}
HadronPhysicsLHEP_BIC_HP::~HadronPhysicsLHEP_BIC_HP()
{
delete theNeutrons;
delete theLHEPNeutron;
delete theBinaryNeutron;
delete theHPNeutron;
delete thePiK;
delete theLHEPPiK;
delete thePro;
delete theLHEPPro;
delete theBinaryPro;
delete theMiscLHEP;
delete theStoppingHadron;
}
void HadronPhysicsLHEP_BIC_HP::ConstructParticle()
{
@@ -69,11 +108,11 @@ void HadronPhysicsLHEP_BIC_HP::ConstructParticle()
#include "G4ProcessManager.hh"
void HadronPhysicsLHEP_BIC_HP::ConstructProcess()
{
theNeutrons.Build();
thePro.Build();
thePiK.Build();
theMiscLHEP.Build();
theStoppingHadron.Build();
theHadronQED.Build();
CreateModels();
theNeutrons->Build();
thePro->Build();
thePiK->Build();
theMiscLHEP->Build();
theStoppingHadron->Build();
}
// 2002 by J.P. Wellisch
@@ -1,2 +1,2 @@
name := LHEP_HP
name := LHEP_EMV
include ../common.gmk
@@ -20,47 +20,62 @@
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef HadronPhysicsLHEP_HP_h
#define HadronPhysicsLHEP_HP_h 1
// $Id: HadronPhysicsLHEP_EMV.hh,v 1.1 2005/12/16 09:57:06 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_EMV
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 16.12.2005 G.Folger: create from LHEP_GN
//
//----------------------------------------------------------------------------
//
#ifndef HadronPhysicsLHEP_EMV_h
#define HadronPhysicsLHEP_EMV_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
#include "G4LHEPPiKBuilder.hh"
#include "G4PiKBuilder.hh"
#include "G4LHEPProtonBuilder.hh"
#include "G4ProtonBuilder.hh"
#include "G4LHEPNeutronBuilder.hh"
#include "G4NeutronBuilder.hh"
#include "G4NeutronHPBuilder.hh"
class HadronPhysicsLHEP_HP : public G4VPhysicsConstructor
#include "G4ProtonBuilder.hh"
#include "G4LHEPProtonBuilder.hh"
#include "G4NeutronBuilder.hh"
#include "G4LHEPNeutronBuilder.hh"
class HadronPhysicsLHEP_EMV : public G4VPhysicsConstructor
{
public:
HadronPhysicsLHEP_HP(const G4String& name ="hadron");
virtual ~HadronPhysicsLHEP_HP();
HadronPhysicsLHEP_EMV(const G4String& name ="hadron");
virtual ~HadronPhysicsLHEP_EMV();
public:
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LHEPNeutronBuilder theLHEPNeutron;
G4NeutronHPBuilder theHPNeutron;
void CreateModels();
G4NeutronBuilder * theNeutrons;
G4LHEPNeutronBuilder * theLHEPNeutron;
G4LHEPPiKBuilder theLHEPPiK;
G4PiKBuilder thePiK;
G4LHEPProtonBuilder theLHEPProton;
G4ProtonBuilder theProton;
G4PiKBuilder * thePiK;
G4LHEPPiKBuilder * theLHEPPiK;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
G4ProtonBuilder * thePro;
G4LHEPProtonBuilder * theLHEPPro;
G4MiscLHEPBuilder * theMiscLHEP;
G4StoppingHadronBuilder * theStoppingHadron;
};
// 2002 by J.P. Wellisch
@@ -20,29 +20,43 @@
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef TQGSP_GN_h
#define TQGSP_GN_h 1
// $Id: LHEP_EMV.hh,v 1.1 2005/12/16 09:57:06 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_EMV
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 16.12.2005 G.Folger: create from HadronPhysicsLHEP_GN
//
//----------------------------------------------------------------------------
//
#ifndef TLHEP_EMV_h
#define TLHEP_EMV_h 1
#include "G4VModularPhysicsList.hh"
#include "globals.hh"
#include "CompileTimeConstraints.hh"
template<class T>
class TQGSP_GN: public T
class TLHEP_EMV: public T
{
public:
TQGSP_GN();
virtual ~TQGSP_GN();
TLHEP_EMV(G4int ver = 1);
virtual ~TLHEP_EMV();
public:
// SetCuts()
virtual void SetCuts();
private:
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
};
#include "QGSP_GN.icc"
typedef TQGSP_GN<G4VModularPhysicsList> QGSP_GN;
#include "LHEP_EMV.icc"
typedef TLHEP_EMV<G4VModularPhysicsList> LHEP_EMV;
// 2002 by J.P. Wellisch
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_EMV.icc,v 1.1 2005/12/16 09:57:06 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_EMV
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 16.12.2005 G.Folger: create from LHEP_GN
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
#include "G4ParticleDefinition.hh"
@@ -34,56 +48,56 @@
#include "G4ios.hh"
#include <iomanip>
#include "GeneralPhysics.hh"
#include "EM_GNPhysics.hh"
#include "MuonPhysics.hh"
#include "IonPhysics.hh"
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsLHEP_GN.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics71.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
template<class T> TLHEP_GN<T>::TLHEP_GN(): T()
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsLHEP_EMV.hh"
template<class T> TLHEP_EMV<T>::TLHEP_EMV(G4int ver): T()
{
// default cut value (1.0mm)
// defaultCutValue = 1.0*mm;
G4DataQuestionaire it(photon);
G4cout << "You are using the simulation engine: LHEP_GN 2.5"<<G4endl;
G4cout <<G4endl<<G4endl;
G4cout << "<<< Geant4 Physics List simulation engine: LHEP_EMV 3.0"<<G4endl;
G4cout <<G4endl;
this->defaultCutValue = 0.7*mm;
this->SetVerboseLevel(1);
this->SetVerboseLevel(ver);
// General Physics
this->RegisterPhysics( new GeneralPhysics("general") );
// EM Physics - without multiple scattering limiting the step
this->RegisterPhysics( new G4EmStandardPhysics71("standard EM msc 7.1",ver));
// EM Physics
this->RegisterPhysics( new EM_GNPhysics("standard EM plus gamma nuclear"));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics("extra EM"));
// Muon Physics
this->RegisterPhysics( new MuonPhysics("muon"));
// Decays
this->RegisterPhysics( new G4DecayPhysics("general",ver) );
// Hadron Physics
this->RegisterPhysics( new HadronPhysicsLHEP_GN("hadron"));
this->RegisterPhysics( new HadronPhysicsLHEP_EMV("hadron"));
// Ion Physics
this->RegisterPhysics( new IonPhysics("ion"));
this->RegisterPhysics( new G4IonPhysics("ion"));
}
template<class T> TLHEP_GN<T>::~TLHEP_GN()
template<class T> TLHEP_EMV<T>::~TLHEP_EMV()
{
}
template<class T> void TLHEP_GN<T>::SetCuts()
template<class T> void TLHEP_EMV<T>::SetCuts()
{
if (this->verboseLevel >1){
G4cout << "LHEP_GN::SetCuts:";
G4cout << "LHEP_EMV::SetCuts:";
}
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
// the default cut value for all particle types
this->SetCutsWithDefault();
G4VUserPhysicsList::DumpCutValuesTable();
if (this->verboseLevel >0)
G4VUserPhysicsList::DumpCutValuesTable();
}
@@ -20,11 +20,51 @@
// * statement, and all its terms. *
// ********************************************************************
//
#include "HadronPhysicsQGSP.hh"
// $Id: HadronPhysicsLHEP_EMV.cc,v 1.1 2005/12/16 09:57:06 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_EMV
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 16.12.2005 G.Folger: create from HadronPhysicsLHEP_GN
//
//----------------------------------------------------------------------------
#include "HadronPhysicsLHEP_EMV.hh"
#include "globals.hh"
#include "G4ios.hh"
#include <iomanip>
HadronPhysicsLHEP_EMV::HadronPhysicsLHEP_EMV(const G4String& name)
: G4VPhysicsConstructor(name)
{}
void HadronPhysicsLHEP_EMV::CreateModels()
{
theNeutrons=new G4NeutronBuilder;
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
thePro=new G4ProtonBuilder;
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
thePiK=new G4PiKBuilder;
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
}
HadronPhysicsLHEP_EMV::~HadronPhysicsLHEP_EMV()
{
delete theLHEPNeutron;
delete theNeutrons;
delete theLHEPPro;
delete thePro;
delete theLHEPPiK;
delete thePiK;
}
#include "G4ParticleDefinition.hh"
#include "G4ParticleTable.hh"
@@ -32,25 +72,7 @@
#include "G4BaryonConstructor.hh"
#include "G4ShortLivedConstructor.hh"
HadronPhysicsQGSP::HadronPhysicsQGSP(const G4String& name)
: G4VPhysicsConstructor(name)
{
theNeutrons.RegisterMe(&theQGSPNeutron);
theNeutrons.RegisterMe(&theLEPNeutron);
theLEPNeutron.SetMaxInelasticEnergy(25*GeV);
thePro.RegisterMe(&theQGSPPro);
thePro.RegisterMe(&theLEPPro);
theLEPPro.SetMaxEnergy(25*GeV);
thePiK.RegisterMe(&theQGSPPiK);
thePiK.RegisterMe(&theLEPPiK);
theLEPPiK.SetMaxEnergy(25*GeV);
}
HadronPhysicsQGSP::~HadronPhysicsQGSP() {}
void HadronPhysicsQGSP::ConstructParticle()
void HadronPhysicsLHEP_EMV::ConstructParticle()
{
G4MesonConstructor pMesonConstructor;
pMesonConstructor.ConstructParticle();
@@ -60,16 +82,19 @@ void HadronPhysicsQGSP::ConstructParticle()
G4ShortLivedConstructor pShortLivedConstructor;
pShortLivedConstructor.ConstructParticle();
theMiscLHEP=new G4MiscLHEPBuilder;
theStoppingHadron=new G4StoppingHadronBuilder;
}
#include "G4ProcessManager.hh"
void HadronPhysicsQGSP::ConstructProcess()
void HadronPhysicsLHEP_EMV::ConstructProcess()
{
theNeutrons.Build();
thePro.Build();
thePiK.Build();
theMiscLHEP.Build();
theStoppingHadron.Build();
theHadronQED.Build();
CreateModels();
theNeutrons->Build();
thePro->Build();
thePiK->Build();
theMiscLHEP->Build();
theStoppingHadron->Build();
}
// 2002 by J.P. Wellisch
@@ -1,65 +0,0 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef HadronPhysicsLHEP_GN_h
#define HadronPhysicsLHEP_GN_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
#include "G4LHEPPiKBuilder.hh"
#include "G4PiKBuilder.hh"
#include "G4LHEPProtonBuilder.hh"
#include "G4ProtonBuilder.hh"
#include "G4LHEPNeutronBuilder.hh"
#include "G4NeutronBuilder.hh"
class HadronPhysicsLHEP_GN : public G4VPhysicsConstructor
{
public:
HadronPhysicsLHEP_GN(const G4String& name ="hadron");
virtual ~HadronPhysicsLHEP_GN();
public:
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LHEPNeutronBuilder theLHEPNeutron;
G4LHEPPiKBuilder theLHEPPiK;
G4PiKBuilder thePiK;
G4LHEPProtonBuilder theLHEPProton;
G4ProtonBuilder theProton;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
};
// 2002 by J.P. Wellisch
#endif
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_LEAD.hh,v 1.3 2005/12/02 18:24:30 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_LEAD
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#ifndef HadronPhysicsLHEP_LEAD_h
#define HadronPhysicsLHEP_LEAD_h 1
@@ -27,7 +41,6 @@
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
@@ -54,21 +67,21 @@ class HadronPhysicsLHEP_LEAD : public G4VPhysicsConstructor
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LHEPNeutronBuilder theLHEPNeutron;
G4LEADNeutronBuilder theLEADNeutron;
void CreateModels();
G4NeutronBuilder * theNeutrons;
G4LHEPNeutronBuilder * theLHEPNeutron;
G4LEADNeutronBuilder * theLEADNeutron;
G4PiKBuilder thePiK;
G4LHEPPiKBuilder theLHEPPiK;
G4LEADPiKBuilder theLEADPiK;
G4PiKBuilder * thePiK;
G4LHEPPiKBuilder * theLHEPPiK;
G4LEADPiKBuilder * theLEADPiK;
G4ProtonBuilder thePro;
G4LHEPProtonBuilder theLHEPPro;
G4LEADProtonBuilder theLEADPro;
G4ProtonBuilder * thePro;
G4LHEPProtonBuilder * theLHEPPro;
G4LEADProtonBuilder * theLEADPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
G4MiscLHEPBuilder * theMiscLHEP;
G4StoppingHadronBuilder * theStoppingHadron;
};
// 2002 by J.P. Wellisch
@@ -20,6 +20,19 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_LEAD.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_LEAD
//
// Author: 2002 J.P. Wellisch
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef TLHEP_LEAD_h
#define TLHEP_LEAD_h 1
@@ -31,7 +44,7 @@ template<class T>
class TLHEP_LEAD: public T
{
public:
TLHEP_LEAD();
TLHEP_LEAD(G4int ver = 1);
virtual ~TLHEP_LEAD();
public:
@@ -20,7 +20,21 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_LEAD.icc,v 1.7 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_LEAD
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.11.2005 G.Folger: migration to non static particles
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
#include "G4ParticleDefinition.hh"
#include "G4ParticleWithCuts.hh"
@@ -34,37 +48,38 @@
#include "G4ios.hh"
#include <iomanip>
#include "GeneralPhysics.hh"
#include "EMPhysics.hh"
#include "MuonPhysics.hh"
#include "IonPhysics.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsLHEP_LEAD.hh"
template<class T> TLHEP_LEAD<T>::TLHEP_LEAD(): T()
template<class T> TLHEP_LEAD<T>::TLHEP_LEAD(G4int ver): T()
{
// default cut value (1.0mm)
// defaultCutValue = 1.0*mm;
G4DataQuestionaire it(photon);
G4cout << "You are using the simulation engine: LHEP_LEAD 1.5"<<G4endl;
G4cout <<G4endl<<G4endl;
G4cout << "<<< Geant4 Physics List simulation engine: LHEP_LEAD 3.0"<<G4endl;
G4cout <<G4endl;
this->defaultCutValue = 0.7*mm;
this->SetVerboseLevel(1);
// General Physics
this->RegisterPhysics( new GeneralPhysics("general") );
this->SetVerboseLevel(ver);
// EM Physics
this->RegisterPhysics( new EMPhysics("standard EM"));
this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver));
// Muon Physics
this->RegisterPhysics( new MuonPhysics("muon"));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics("extra EM"));
// Decays
this->RegisterPhysics( new G4DecayPhysics("decay",ver) );
// Hadron Physics
this->RegisterPhysics( new HadronPhysicsLHEP_LEAD("hadron"));
// Ion Physics
this->RegisterPhysics( new IonPhysics("ion"));
this->RegisterPhysics( new G4IonPhysics("ion"));
}
@@ -83,9 +98,8 @@ template<class T> void TLHEP_LEAD<T>::SetCuts()
this->SetCutsWithDefault();
G4VUserPhysicsList::DumpCutValuesTable();
// if (this->verboseLevel >0)
// G4VUserPhysicsList::DumpCutValuesTable();
}
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_LEAD.cc,v 1.3 2005/12/02 18:24:30 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_LEAD
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#include "HadronPhysicsLHEP_LEAD.hh"
#include "globals.hh"
@@ -34,21 +48,46 @@
HadronPhysicsLHEP_LEAD::HadronPhysicsLHEP_LEAD(const G4String& name)
: G4VPhysicsConstructor(name)
{
theNeutrons.RegisterMe(&theLEADNeutron);
theNeutrons.RegisterMe(&theLHEPNeutron);
theLHEPNeutron.SetMinInelasticEnergy(4.99*GeV);
{}
thePro.RegisterMe(&theLEADPro);
thePro.RegisterMe(&theLHEPPro);
theLHEPPro.SetMinEnergy(4.99*GeV);
void HadronPhysicsLHEP_LEAD::CreateModels()
{
theNeutrons=new G4NeutronBuilder;
theNeutrons->RegisterMe(theLEADNeutron=new G4LEADNeutronBuilder);
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
theLHEPNeutron->SetMinInelasticEnergy(4.99*GeV);
thePro=new G4ProtonBuilder;
thePro->RegisterMe(theLEADPro=new G4LEADProtonBuilder);
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
theLHEPPro->SetMinEnergy(4.99*GeV);
thePiK.RegisterMe(&theLEADPiK);
thePiK.RegisterMe(&theLHEPPiK);
theLHEPPiK.SetMinEnergy(4.99*GeV);
thePiK=new G4PiKBuilder;
thePiK->RegisterMe(theLEADPiK=new G4LEADPiKBuilder);
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
theLHEPPiK->SetMinEnergy(4.99*GeV);
theMiscLHEP=new G4MiscLHEPBuilder;
theStoppingHadron=new G4StoppingHadronBuilder;
}
HadronPhysicsLHEP_LEAD::~HadronPhysicsLHEP_LEAD() {}
HadronPhysicsLHEP_LEAD::~HadronPhysicsLHEP_LEAD()
{
delete theNeutrons;
delete theLHEPNeutron;
delete theLEADNeutron;
delete thePiK;
delete theLHEPPiK;
delete theLEADPiK;
delete thePro;
delete theLHEPPro;
delete theLEADPro;
delete theMiscLHEP;
delete theStoppingHadron;
}
void HadronPhysicsLHEP_LEAD::ConstructParticle()
{
@@ -65,11 +104,11 @@ void HadronPhysicsLHEP_LEAD::ConstructParticle()
#include "G4ProcessManager.hh"
void HadronPhysicsLHEP_LEAD::ConstructProcess()
{
theNeutrons.Build();
thePro.Build();
thePiK.Build();
theMiscLHEP.Build();
theStoppingHadron.Build();
theHadronQED.Build();
CreateModels();
theNeutrons->Build();
thePro->Build();
thePiK->Build();
theMiscLHEP->Build();
theStoppingHadron->Build();
}
// 2002 by J.P. Wellisch
@@ -20,6 +20,21 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_LEAD_HP.hh,v 1.3 2005/12/02 18:29:46 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_LEAD_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.11.2005 G.Folger: migration to non static particles
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
//
//----------------------------------------------------------------------------
//
#ifndef HadronPhysicsLHEP_LEAD_HP_h
#define HadronPhysicsLHEP_LEAD_HP_h 1
@@ -27,7 +42,6 @@
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
@@ -55,22 +69,22 @@ class HadronPhysicsLHEP_LEAD_HP : public G4VPhysicsConstructor
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LHEPNeutronBuilder theLHEPNeutron;
G4LEADNeutronBuilder theLEADNeutron;
G4NeutronHPBuilder theHPNeutron;
void CreateModels();
G4NeutronBuilder * theNeutrons;
G4LHEPNeutronBuilder * theLHEPNeutron;
G4LEADNeutronBuilder * theLEADNeutron;
G4NeutronHPBuilder * theHPNeutron;
G4PiKBuilder thePiK;
G4LHEPPiKBuilder theLHEPPiK;
G4LEADPiKBuilder theLEADPiK;
G4PiKBuilder * thePiK;
G4LHEPPiKBuilder * theLHEPPiK;
G4LEADPiKBuilder * theLEADPiK;
G4ProtonBuilder thePro;
G4LHEPProtonBuilder theLHEPPro;
G4LEADProtonBuilder theLEADPro;
G4ProtonBuilder * thePro;
G4LHEPProtonBuilder * theLHEPPro;
G4LEADProtonBuilder * theLEADPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
G4MiscLHEPBuilder * theMiscLHEP;
G4StoppingHadronBuilder * theStoppingHadron;
};
// 2002 by J.P. Wellisch
@@ -20,6 +20,19 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_LEAD_HP.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_LEAD_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef TLHEP_LEAD_HP_h
#define TLHEP_LEAD_HP_h 1
@@ -31,7 +44,7 @@ template<class T>
class TLHEP_LEAD_HP: public T
{
public:
TLHEP_LEAD_HP();
TLHEP_LEAD_HP(G4int ver = 1);
virtual ~TLHEP_LEAD_HP();
public:
@@ -20,6 +20,21 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_LEAD_HP.icc,v 1.6 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_LEAD_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.11.2005 G.Folger: migration to non static particles
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
#include "G4ParticleDefinition.hh"
@@ -34,38 +49,38 @@
#include "G4ios.hh"
#include <iomanip>
#include "GeneralPhysics.hh"
#include "EMPhysics.hh"
#include "MuonPhysics.hh"
#include "IonPhysics.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsLHEP_LEAD_HP.hh"
template<class T> TLHEP_LEAD_HP<T>::TLHEP_LEAD_HP(): T()
template<class T> TLHEP_LEAD_HP<T>::TLHEP_LEAD_HP(G4int ver): T()
{
// default cut value (1.0mm)
// defaultCutValue = 1.0*mm;
G4DataQuestionaire it(photon, neutron);
G4cout << "You are using the simulation engine: LHEP_LEAD_HP 1.6"<<G4endl;
G4cout <<G4endl<<G4endl;
G4cout << "<<< Geant4 Physics List simulation engine: LHEP_LEAD_HP 3.0"<<G4endl;
G4cout <<G4endl;
this->defaultCutValue = 0.7*mm;
this->SetVerboseLevel(1);
// General Physics
this->RegisterPhysics( new GeneralPhysics("general") );
this->SetVerboseLevel(ver);
// EM Physics
this->RegisterPhysics( new EMPhysics("standard EM"));
this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver));
// Muon Physics
this->RegisterPhysics( new MuonPhysics("muon"));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics("extra EM"));
// Hadron Physics
// Decays
this->RegisterPhysics( new G4DecayPhysics("decay",ver) );
// Hadron Physics
this->RegisterPhysics( new HadronPhysicsLHEP_LEAD_HP("hadron"));
// Ion Physics
this->RegisterPhysics( new IonPhysics("ion"));
this->RegisterPhysics( new G4IonPhysics("ion"));
}
@@ -83,9 +98,8 @@ template<class T> void TLHEP_LEAD_HP<T>::SetCuts()
this->SetCutsWithDefault();
G4VUserPhysicsList::DumpCutValuesTable();
if (this->verboseLevel > 0)
G4VUserPhysicsList::DumpCutValuesTable();
}
@@ -20,6 +20,21 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_LEAD_HP.cc,v 1.3 2005/12/02 18:29:46 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_LEAD_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.11.2005 G.Folger: migration to non static particles
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
//
//----------------------------------------------------------------------------
//
#include "HadronPhysicsLHEP_LEAD_HP.hh"
#include "globals.hh"
@@ -34,24 +49,50 @@
HadronPhysicsLHEP_LEAD_HP::HadronPhysicsLHEP_LEAD_HP(const G4String& name)
: G4VPhysicsConstructor(name)
{
theNeutrons.RegisterMe(&theLHEPNeutron);
theLHEPNeutron.SetMinEnergy(19.9*MeV);
theLHEPNeutron.SetMinInelasticEnergy(4.99*GeV);
theNeutrons.RegisterMe(&theLEADNeutron);
theLEADNeutron.SetMinEnergy(19.9*MeV);
theNeutrons.RegisterMe(&theHPNeutron);
{}
thePro.RegisterMe(&theLHEPPro);
theLHEPPro.SetMinEnergy(4.99*GeV);
thePro.RegisterMe(&theLEADPro);
void HadronPhysicsLHEP_LEAD_HP::CreateModels()
{
theNeutrons=new G4NeutronBuilder;
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
theLHEPNeutron->SetMinEnergy(19.9*MeV);
theLHEPNeutron->SetMinInelasticEnergy(4.99*GeV);
theNeutrons->RegisterMe(theLEADNeutron=new G4LEADNeutronBuilder);
theLEADNeutron->SetMinEnergy(19.9*MeV);
theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder);
thePro=new G4ProtonBuilder;
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
theLHEPPro->SetMinEnergy(4.99*GeV);
thePro->RegisterMe(theLEADPro=new G4LEADProtonBuilder);
thePiK.RegisterMe(&theLHEPPiK);
theLHEPPiK.SetMinEnergy(4.99*GeV);
thePiK.RegisterMe(&theLEADPiK);
thePiK=new G4PiKBuilder;
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
theLHEPPiK->SetMinEnergy(4.99*GeV);
thePiK->RegisterMe(theLEADPiK=new G4LEADPiKBuilder);
theMiscLHEP=new G4MiscLHEPBuilder;
theStoppingHadron=new G4StoppingHadronBuilder;
}
HadronPhysicsLHEP_LEAD_HP::~HadronPhysicsLHEP_LEAD_HP() {}
HadronPhysicsLHEP_LEAD_HP::~HadronPhysicsLHEP_LEAD_HP()
{
delete theNeutrons;
delete theLHEPNeutron;
delete theLEADNeutron;
delete theHPNeutron;
delete thePiK;
delete theLHEPPiK;
delete theLEADPiK;
delete thePro;
delete theLHEPPro;
delete theLEADPro;
delete theMiscLHEP;
delete theStoppingHadron;
}
void HadronPhysicsLHEP_LEAD_HP::ConstructParticle()
{
@@ -68,11 +109,11 @@ void HadronPhysicsLHEP_LEAD_HP::ConstructParticle()
#include "G4ProcessManager.hh"
void HadronPhysicsLHEP_LEAD_HP::ConstructProcess()
{
theNeutrons.Build();
thePro.Build();
thePiK.Build();
theMiscLHEP.Build();
theStoppingHadron.Build();
theHadronQED.Build();
CreateModels();
theNeutrons->Build();
thePro->Build();
thePiK->Build();
theMiscLHEP->Build();
theStoppingHadron->Build();
}
// 2002 by J.P. Wellisch
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_PRECO.hh,v 1.3 2005/12/02 17:30:34 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_PRECO
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#ifndef HadronPhysicsLHEP_PRECO_h
#define HadronPhysicsLHEP_PRECO_h 1
@@ -27,7 +41,6 @@
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
@@ -53,20 +66,20 @@ class HadronPhysicsLHEP_PRECO : public G4VPhysicsConstructor
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LHEPNeutronBuilder theLHEPNeutron;
G4PrecoNeutronBuilder thePrecoNeutron;
void CreateModels();
G4NeutronBuilder * theNeutrons;
G4LHEPNeutronBuilder * theLHEPNeutron;
G4PrecoNeutronBuilder * thePrecoNeutron;
G4PiKBuilder thePiK;
G4LHEPPiKBuilder theLHEPPiK;
G4PiKBuilder * thePiK;
G4LHEPPiKBuilder * theLHEPPiK;
G4ProtonBuilder thePro;
G4LHEPProtonBuilder theLHEPPro;
G4PrecoProtonBuilder thePrecoPro;
G4ProtonBuilder * thePro;
G4LHEPProtonBuilder * theLHEPPro;
G4PrecoProtonBuilder * thePrecoPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
G4MiscLHEPBuilder * theMiscLHEP;
G4StoppingHadronBuilder * theStoppingHadron;
};
// 2002 by J.P. Wellisch
@@ -20,6 +20,19 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_PRECO.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_PRECO
//
// Author: 2002 J.P. Wellisch
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef TLHEP_PRECO_h
#define TLHEP_PRECO_h 1
@@ -31,7 +44,7 @@ template<class T>
class TLHEP_PRECO: public T
{
public:
TLHEP_PRECO();
TLHEP_PRECO(G4int ver = 1);
virtual ~TLHEP_PRECO();
public:
@@ -20,6 +20,21 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_PRECO.icc,v 1.7 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_PRECO
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 25.11.2005 G.Folger: migration to non static particles
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
#include "G4ParticleDefinition.hh"
@@ -34,38 +49,38 @@
#include "G4ios.hh"
#include <iomanip>
#include "GeneralPhysics.hh"
#include "EMPhysics.hh"
#include "MuonPhysics.hh"
#include "IonPhysics.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsLHEP_PRECO.hh"
template<class T> TLHEP_PRECO<T>::TLHEP_PRECO(): T()
template<class T> TLHEP_PRECO<T>::TLHEP_PRECO(G4int ver): T()
{
// default cut value (1.0mm)
// defaultCutValue = 1.0*mm;
G4DataQuestionaire it(photon);
G4cout << "You are using the simulation engine: LHEP_PRECO 2.7"<<G4endl;
G4cout <<G4endl<<G4endl;
G4cout << "<<< Geant4 Physics List simulation engine: LHEP_PRECO 3.0"<<G4endl;
G4cout <<G4endl;
this->defaultCutValue = 0.7*mm;
this->SetVerboseLevel(1);
// General Physics
this->RegisterPhysics( new GeneralPhysics("general") );
this->SetVerboseLevel(ver);
// EM Physics
this->RegisterPhysics( new EMPhysics("standard EM"));
this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver));
// Muon Physics
this->RegisterPhysics( new MuonPhysics("muon"));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics("extra EM"));
// Decays
this->RegisterPhysics( new G4DecayPhysics("decay",ver) );
// Hadron Physics
this->RegisterPhysics( new HadronPhysicsLHEP_PRECO("hadron"));
// Ion Physics
this->RegisterPhysics( new IonPhysics("ion"));
this->RegisterPhysics( new G4IonPhysics("ion"));
}
@@ -83,9 +98,8 @@ template<class T> void TLHEP_PRECO<T>::SetCuts()
this->SetCutsWithDefault();
G4VUserPhysicsList::DumpCutValuesTable();
// if (this->verboseLevel > 0)
// G4VUserPhysicsList::DumpCutValuesTable();
}
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_PRECO.cc,v 1.3 2005/12/02 17:30:34 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_PRECO
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#include "HadronPhysicsLHEP_PRECO.hh"
#include "globals.hh"
@@ -34,19 +48,43 @@
HadronPhysicsLHEP_PRECO::HadronPhysicsLHEP_PRECO(const G4String& name)
: G4VPhysicsConstructor(name)
{
theNeutrons.RegisterMe(&thePrecoNeutron);
theNeutrons.RegisterMe(&theLHEPNeutron);
theLHEPNeutron.SetMinInelasticEnergy(0.15*GeV);
{}
thePro.RegisterMe(&thePrecoPro);
thePro.RegisterMe(&theLHEPPro);
theLHEPPro.SetMinEnergy(0.15*GeV);
void HadronPhysicsLHEP_PRECO::CreateModels()
{
theNeutrons=new G4NeutronBuilder;
theNeutrons->RegisterMe(thePrecoNeutron=new G4PrecoNeutronBuilder);
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
theLHEPNeutron->SetMinInelasticEnergy(0.15*GeV);
thePro=new G4ProtonBuilder;
thePro->RegisterMe(thePrecoPro=new G4PrecoProtonBuilder);
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
theLHEPPro->SetMinEnergy(0.15*GeV);
thePiK.RegisterMe(&theLHEPPiK);
thePiK=new G4PiKBuilder;
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
theMiscLHEP=new G4MiscLHEPBuilder;
theStoppingHadron=new G4StoppingHadronBuilder;
}
HadronPhysicsLHEP_PRECO::~HadronPhysicsLHEP_PRECO() {}
HadronPhysicsLHEP_PRECO::~HadronPhysicsLHEP_PRECO()
{
delete theNeutrons;
delete theLHEPNeutron;
delete thePrecoNeutron;
delete thePiK;
delete theLHEPPiK;
delete thePro;
delete theLHEPPro;
delete thePrecoPro;
delete theMiscLHEP;
delete theStoppingHadron;
}
void HadronPhysicsLHEP_PRECO::ConstructParticle()
{
@@ -63,11 +101,11 @@ void HadronPhysicsLHEP_PRECO::ConstructParticle()
#include "G4ProcessManager.hh"
void HadronPhysicsLHEP_PRECO::ConstructProcess()
{
theNeutrons.Build();
thePro.Build();
thePiK.Build();
theMiscLHEP.Build();
theStoppingHadron.Build();
theHadronQED.Build();
CreateModels();
theNeutrons->Build();
thePro->Build();
thePiK->Build();
theMiscLHEP->Build();
theStoppingHadron->Build();
}
// 2002 by J.P. Wellisch
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_PRECO_HP.hh,v 1.3 2005/12/02 17:42:10 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_PRECO_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#ifndef HadronPhysicsLHEP_PRECO_HP_h
#define HadronPhysicsLHEP_PRECO_HP_h 1
@@ -27,10 +41,9 @@
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronQEDBuilder.hh"
#include "G4StoppingHadronBuilder.hh"
#include "G4MiscLHEPBuilder.hh"
#
#include "G4PiKBuilder.hh"
#include "G4LHEPPiKBuilder.hh"
@@ -54,21 +67,21 @@ class HadronPhysicsLHEP_PRECO_HP : public G4VPhysicsConstructor
virtual void ConstructProcess();
private:
G4NeutronBuilder theNeutrons;
G4LHEPNeutronBuilder theLHEPNeutron;
G4PrecoNeutronBuilder thePrecoNeutron;
G4NeutronHPBuilder theHPNeutron;
void CreateModels();
G4NeutronBuilder * theNeutrons;
G4LHEPNeutronBuilder * theLHEPNeutron;
G4PrecoNeutronBuilder * thePrecoNeutron;
G4NeutronHPBuilder * theHPNeutron;
G4PiKBuilder thePiK;
G4LHEPPiKBuilder theLHEPPiK;
G4PiKBuilder * thePiK;
G4LHEPPiKBuilder * theLHEPPiK;
G4ProtonBuilder thePro;
G4LHEPProtonBuilder theLHEPPro;
G4PrecoProtonBuilder thePrecoPro;
G4ProtonBuilder * thePro;
G4LHEPProtonBuilder * theLHEPPro;
G4PrecoProtonBuilder * thePrecoPro;
G4MiscLHEPBuilder theMiscLHEP;
G4StoppingHadronBuilder theStoppingHadron;
G4HadronQEDBuilder theHadronQED;
G4MiscLHEPBuilder * theMiscLHEP;
G4StoppingHadronBuilder * theStoppingHadron;
};
// 2002 by J.P. Wellisch
@@ -20,6 +20,19 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_PRECO_HP.hh,v 1.3 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_PRECO_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef TLHEP_PRECO_HP_h
#define TLHEP_PRECO_HP_h 1
@@ -31,7 +44,7 @@ template<class T>
class TLHEP_PRECO_HP: public T
{
public:
TLHEP_PRECO_HP();
TLHEP_PRECO_HP(G4int ver = 1);
virtual ~TLHEP_PRECO_HP();
public:
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: LHEP_PRECO_HP.icc,v 1.6 2005/12/05 18:25:06 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: LHEP_PRECO_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
#include "G4ParticleDefinition.hh"
@@ -34,39 +48,38 @@
#include "G4ios.hh"
#include <iomanip>
#include "GeneralPhysics.hh"
#include "EMPhysics.hh"
#include "MuonPhysics.hh"
#include "IonPhysics.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4DataQuestionaire.hh"
#include "HadronPhysicsLHEP_PRECO_HP.hh"
template<class T> TLHEP_PRECO_HP<T>::TLHEP_PRECO_HP(): T()
template<class T> TLHEP_PRECO_HP<T>::TLHEP_PRECO_HP(G4int ver): T()
{
// default cut value (1.0mm)
// defaultCutValue = 1.0*mm;
G4DataQuestionaire it(photon, neutron);
G4cout << "You are using the simulation engine: LHEP_PRECO_HP 2.5"<<G4endl;
G4cout <<G4endl<<G4endl;
G4cout << "<<< Geant4 Physics List simulation engine: LHEP_PRECO_HP 3.0"<<G4endl;
G4cout <<G4endl;
this->defaultCutValue = 0.7*mm;
this->SetVerboseLevel(1);
// General Physics
this->RegisterPhysics( new GeneralPhysics("general") );
this->SetVerboseLevel(ver);
// EM Physics
this->RegisterPhysics( new EMPhysics("standard EM"));
this->RegisterPhysics( new G4EmStandardPhysics("standard EM",ver));
// Muon Physics
this->RegisterPhysics( new MuonPhysics("muon"));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics("extra EM"));
// Decays
this->RegisterPhysics( new G4DecayPhysics("decay",ver) );
// Hadron Physics
this->RegisterPhysics( new HadronPhysicsLHEP_PRECO_HP("hadron"));
// Ion Physics
this->RegisterPhysics( new IonPhysics("ion"));
this->RegisterPhysics( new G4IonPhysics("ion"));
}
template<class T> TLHEP_PRECO_HP<T>::~TLHEP_PRECO_HP()
@@ -83,7 +96,8 @@ template<class T> void TLHEP_PRECO_HP<T>::SetCuts()
this->SetCutsWithDefault();
G4VUserPhysicsList::DumpCutValuesTable();
// if (this->verboseLevel >0)
// G4VUserPhysicsList::DumpCutValuesTable();
}
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsLHEP_PRECO_HP.cc,v 1.3 2005/12/02 17:42:10 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: HadronPhysicsLHEP_PRECO_HP
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 1.12.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#include "HadronPhysicsLHEP_PRECO_HP.hh"
#include "globals.hh"
@@ -34,22 +48,47 @@
HadronPhysicsLHEP_PRECO_HP::HadronPhysicsLHEP_PRECO_HP(const G4String& name)
: G4VPhysicsConstructor(name)
{}
void HadronPhysicsLHEP_PRECO_HP::CreateModels()
{
theNeutrons.RegisterMe(&theLHEPNeutron);
theLHEPNeutron.SetMinEnergy(19.9*MeV);
theLHEPNeutron.SetMinInelasticEnergy(0.15*GeV);
theNeutrons.RegisterMe(&thePrecoNeutron);
thePrecoNeutron.SetMinEnergy(19.9*MeV);
theNeutrons.RegisterMe(&theHPNeutron);
theNeutrons=new G4NeutronBuilder;
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
theLHEPNeutron->SetMinEnergy(19.9*MeV);
theLHEPNeutron->SetMinInelasticEnergy(0.15*GeV);
theNeutrons->RegisterMe(thePrecoNeutron=new G4PrecoNeutronBuilder);
thePrecoNeutron->SetMinEnergy(19.9*MeV);
theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder);
thePro.RegisterMe(&theLHEPPro);
theLHEPPro.SetMinEnergy(0.15*GeV);
thePro.RegisterMe(&thePrecoPro);
thePro=new G4ProtonBuilder;
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
theLHEPPro->SetMinEnergy(0.15*GeV);
thePro->RegisterMe(thePrecoPro=new G4PrecoProtonBuilder);
thePiK.RegisterMe(&theLHEPPiK);
thePiK=new G4PiKBuilder;
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
theMiscLHEP=new G4MiscLHEPBuilder;
theStoppingHadron=new G4StoppingHadronBuilder;
}
HadronPhysicsLHEP_PRECO_HP::~HadronPhysicsLHEP_PRECO_HP() {}
HadronPhysicsLHEP_PRECO_HP::~HadronPhysicsLHEP_PRECO_HP()
{
delete theNeutrons;
delete theLHEPNeutron;
delete thePrecoNeutron;
delete theHPNeutron;
delete thePiK;
delete theLHEPPiK;
delete thePro;
delete theLHEPPro;
delete thePrecoPro;
delete theMiscLHEP;
delete theStoppingHadron;
}
void HadronPhysicsLHEP_PRECO_HP::ConstructParticle()
{
@@ -66,11 +105,11 @@ void HadronPhysicsLHEP_PRECO_HP::ConstructParticle()
#include "G4ProcessManager.hh"
void HadronPhysicsLHEP_PRECO_HP::ConstructProcess()
{
theNeutrons.Build();
thePro.Build();
thePiK.Build();
theMiscLHEP.Build();
theStoppingHadron.Build();
theHadronQED.Build();
CreateModels();
theNeutrons->Build();
thePro->Build();
thePiK->Build();
theMiscLHEP->Build();
theStoppingHadron->Build();
}
// 2002 by J.P. Wellisch
@@ -41,10 +41,10 @@ class G4BertiniNeutronBuilder : public G4VNeutronBuilder
virtual ~G4BertiniNeutronBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4HadronFissionProcess & aP);
virtual void Build(G4HadronCaptureProcess & aP);
virtual void Build(G4NeutronInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4HadronFissionProcess * aP);
virtual void Build(G4HadronCaptureProcess * aP);
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
void SetMaxEnergy(G4double aM) {theMax = aM;}
@@ -41,13 +41,13 @@ class G4BertiniPiKBuilder : public G4VPiKBuilder
virtual ~G4BertiniPiKBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4PionPlusInelasticProcess & aP);
virtual void Build(G4PionMinusInelasticProcess & aP);
virtual void Build(G4KaonPlusInelasticProcess & aP);
virtual void Build(G4KaonMinusInelasticProcess & aP);
virtual void Build(G4KaonZeroLInelasticProcess & aP);
virtual void Build(G4KaonZeroSInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4PionPlusInelasticProcess * aP);
virtual void Build(G4PionMinusInelasticProcess * aP);
virtual void Build(G4KaonPlusInelasticProcess * aP);
virtual void Build(G4KaonMinusInelasticProcess * aP);
virtual void Build(G4KaonZeroLInelasticProcess * aP);
virtual void Build(G4KaonZeroSInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
void SetMaxEnergy(G4double aM) {theMax = aM;}
@@ -41,8 +41,8 @@ class G4BertiniProtonBuilder : public G4VProtonBuilder
virtual ~G4BertiniProtonBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4ProtonInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4ProtonInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
void SetMaxEnergy(G4double aM) {theMax = aM;}
@@ -41,10 +41,10 @@ class G4BinaryNeutronBuilder : public G4VNeutronBuilder
virtual ~G4BinaryNeutronBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4HadronFissionProcess & aP);
virtual void Build(G4HadronCaptureProcess & aP);
virtual void Build(G4NeutronInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4HadronFissionProcess * aP);
virtual void Build(G4HadronCaptureProcess * aP);
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
void SetMaxEnergy(G4double aM) {theMax = aM;}
@@ -41,13 +41,13 @@ class G4BinaryPiKBuilder : public G4VPiKBuilder
virtual ~G4BinaryPiKBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4PionPlusInelasticProcess & aP);
virtual void Build(G4PionMinusInelasticProcess & aP);
virtual void Build(G4KaonPlusInelasticProcess & aP);
virtual void Build(G4KaonMinusInelasticProcess & aP);
virtual void Build(G4KaonZeroLInelasticProcess & aP);
virtual void Build(G4KaonZeroSInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4PionPlusInelasticProcess * aP);
virtual void Build(G4PionMinusInelasticProcess * aP);
virtual void Build(G4KaonPlusInelasticProcess * aP);
virtual void Build(G4KaonMinusInelasticProcess * aP);
virtual void Build(G4KaonZeroLInelasticProcess * aP);
virtual void Build(G4KaonZeroSInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
void SetMaxEnergy(G4double aM) {theMax = aM;}
@@ -41,8 +41,8 @@ class G4BinaryProtonBuilder : public G4VProtonBuilder
virtual ~G4BinaryProtonBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4ProtonInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4ProtonInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
void SetMaxEnergy(G4double aM) {theMax = aM;}
@@ -35,9 +35,9 @@ class G4DataQuestionaire
public:
G4DataQuestionaire(G4DataType t1=no, G4DataType t2=no, G4DataType t3=no, G4DataType t4=no)
{
G4cout <<G4endl<<G4endl;
G4cout << "You are using the simulation engine reuse library: PACK 2.4"<<G4endl;
G4cout <<G4endl<<G4endl;
G4cout << G4endl;
G4cout << "<<< Geant4 Physics List engine packaging library: PACK 5.0"<<G4endl;
// G4cout <<G4endl<<G4endl;
// G4cout << "##### the input "<<t1<<" "<<t2<<" "<<t3<<" "<<t4<<G4endl;
for(G4int i=0; i<4; i++)
{
@@ -20,43 +20,52 @@
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef GeneralPhysics_h
#define GeneralPhysics_h 1
// $Id: G4DecayPhysics.hh,v 1.3 2005/12/05 12:55:27 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4DecayPhysics
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 10.11.2005 V.Ivanchenko edit to provide a standard
// 05.12.2005 V.Ivanchenko add controlled verbosity
//
//----------------------------------------------------------------------------
//
#ifndef G4DecayPhysics_h
#define G4DecayPhysics_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4Decay.hh"
class GeneralPhysics : public G4VPhysicsConstructor
class G4DecayPhysics : public G4VPhysicsConstructor
{
public:
GeneralPhysics(const G4String& name = "general");
virtual ~GeneralPhysics();
G4DecayPhysics(const G4String& name = "decay", G4int ver = 1);
virtual ~G4DecayPhysics();
public:
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
virtual void ConstructProcess();
protected:
G4bool wasActivated;
private:
G4Decay fDecayProcess;
private:
G4Decay* fDecayProcess;
G4int verbose;
G4bool wasActivated;
};
// 2002 by J.P. Wellisch
#endif
@@ -1,81 +0,0 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef G4EMBuilder_h
#define G4EMBuilder_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4PhotoElectricEffect.hh"
#include "G4ComptonScattering.hh"
#include "G4GammaConversion.hh"
#include "G4MultipleScattering.hh"
#include "G4eIonisation.hh"
#include "G4eBremsstrahlung.hh"
#include "G4eplusAnnihilation.hh"
#include "G4EMTailorer.hh"
#include "G4SynchrotronRadiation.hh"
#include "G4ElectroNuclearBuilder.hh"
class G4EMBuilder
{
public:
G4EMBuilder();
virtual ~G4EMBuilder();
public:
void Build();
void Synch(G4String & aState);
void GammaNuclear(G4String & aState);
protected:
G4PhotoElectricEffect thePhotoEffect;
G4ComptonScattering theComptonEffect;
G4GammaConversion thePairProduction;
G4MultipleScattering theElectronMultipleScattering;
G4eIonisation theElectronIonisation;
G4eBremsstrahlung theElectronBremsStrahlung;
G4MultipleScattering thePositronMultipleScattering;
G4eIonisation thePositronIonisation;
G4eBremsstrahlung thePositronBremsStrahlung;
G4eplusAnnihilation theAnnihilation;
G4bool wasActivated;
G4EMTailorer * theT;
G4SynchrotronRadiation theElectronSynch;
G4SynchrotronRadiation thePositronSynch;
G4bool synchOn;
G4ElectroNuclearBuilder theGNPhysics;
G4bool gammNucOn;
};
// 2002 by J.P. Wellisch
#endif
@@ -49,16 +49,16 @@ class G4ElectroNuclearBuilder
virtual void Build();
protected:
G4PhotoNuclearProcess thePhotoNuclearProcess;
G4ElectronNuclearProcess theElectronNuclearProcess;
G4PositronNuclearProcess thePositronNuclearProcess;
G4PhotoNuclearProcess * thePhotoNuclearProcess;
G4ElectronNuclearProcess * theElectronNuclearProcess;
G4PositronNuclearProcess * thePositronNuclearProcess;
G4ElectroNuclearReaction * theElectroReaction;
G4GammaNuclearReaction * theGammaReaction;
G4TheoFSGenerator * theModel;
G4GeneratorPrecompoundInterface * theCascade;
G4QGSModel< G4GammaParticipants > theStringModel;
G4QGSMFragmentation theFragmentation;
G4QGSModel< G4GammaParticipants > * theStringModel;
G4QGSMFragmentation * theFragmentation;
G4ExcitedStringDecay * theStringDecay;
G4bool wasActivated;
};
@@ -20,33 +20,56 @@
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef EM_GNPhysics_h
#define EM_GNPhysics_h 1
// $Id: G4EmExtraPhysics.hh,v 1.2 2005/12/01 18:19:45 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4EmExtraPhysics
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 10.11.2005 V.Ivanchenko edit to provide a standard
//
//----------------------------------------------------------------------------
//
#ifndef G4EmExtraPhysics_h
#define G4EmExtraPhysics_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4EMBuilder.hh"
#include "globals.hh"
#include "G4EmMessenger.hh"
#include "G4SynchrotronRadiation.hh"
#include "G4ElectroNuclearBuilder.hh"
class EM_GNPhysics : public G4VPhysicsConstructor
class G4EmExtraPhysics : public G4VPhysicsConstructor
{
public:
EM_GNPhysics(const G4String& name ="EM");
virtual ~EM_GNPhysics();
public:
G4EmExtraPhysics(const G4String& name = "EM extra");
virtual ~G4EmExtraPhysics();
public:
virtual void ConstructParticle();
virtual void ConstructProcess();
void ConstructParticle();
void ConstructProcess();
private:
G4EMBuilder theEMPhysics;
G4ElectroNuclearBuilder theGNPhysics;
void Synch(G4String & aState);
void GammaNuclear(G4String & aState);
private:
G4bool wasActivated;
G4bool synchOn;
G4bool gammNucOn;
G4EmMessenger* theMessenger;
G4SynchrotronRadiation* theElectronSynch;
G4SynchrotronRadiation* thePositronSynch;
G4ElectroNuclearBuilder* theGNPhysics;
};
// 2002 by J.P. Wellisch
#endif
@@ -20,33 +20,44 @@
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef G4EMTailorer_h
#define G4EMTailorer_h
// $Id: G4EmMessenger.hh,v 1.2 2005/11/30 18:28:52 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4EmMessenger
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 09.11.2005 V.Ivanchenko edit to provide a standard
//
//----------------------------------------------------------------------------
//
#ifndef G4EmMessenger_h
#define G4EmMessenger_h 1
class G4EmExtraPhysics;
class G4EMBuilder;
#include "G4UImessenger.hh"
#include "G4UIdirectory.hh"
#include "G4UIcmdWithAString.hh"
class G4EMTailorer: public G4UImessenger
class G4EmMessenger: public G4UImessenger
{
public:
G4EMTailorer(G4EMBuilder * af);
virtual ~G4EMTailorer()
{
delete theSynch;
delete theGN;
}
public:
G4EmMessenger(G4EmExtraPhysics* af);
virtual ~G4EmMessenger();
void SetNewValue(G4UIcommand* aComm, G4String aS);
private:
G4EMBuilder * theB;
G4UIcmdWithAString * theSynch;
G4UIcmdWithAString * theGN;
G4UIdirectory *aDir1;
G4UIdirectory *aDir2;
void SetNewValue(G4UIcommand* aComm, G4String aS);
private:
G4EmExtraPhysics* theB;
G4UIcmdWithAString* theSynch;
G4UIcmdWithAString* theGN;
G4UIdirectory* aDir1;
G4UIdirectory* aDir2;
};
#endif
@@ -20,30 +20,53 @@
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef EMPhysics_h
#define EMPhysics_h 1
//
// $Id: G4EmStandardPhysics.hh,v 1.3 2005/12/05 12:55:27 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4EmStandardPhysics
//
// Author: V.Ivanchenko 09.11.2005
//
// Modified:
// 05.12.2005 V.Ivanchenko add controlled verbosity
//
//----------------------------------------------------------------------------
//
#ifndef G4EmStandardPhysics_h
#define G4EmStandardPhysics_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4EMBuilder.hh"
#include "globals.hh"
// for lib list detection....
#include "G4MuBremsstrahlung.hh"
#include "G4MuPairProduction.hh"
class EMPhysics : public G4VPhysicsConstructor
#include "G4EmProcessOptions.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmStandardPhysics : public G4VPhysicsConstructor
{
public:
EMPhysics(const G4String& name ="EM");
virtual ~EMPhysics();
public:
G4EmStandardPhysics(const G4String& name = "EMstandard", G4int ver = 1,
G4bool msc=true);
virtual ~G4EmStandardPhysics();
public:
virtual void ConstructParticle();
virtual void ConstructProcess();
public:
virtual void ConstructParticle();
virtual void ConstructProcess();
private:
G4EMBuilder theEMPhysics;
private:
G4int verbose;
G4bool mscStepLimit;
};
// 2002 by J.P. Wellisch
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -51,3 +74,4 @@ class EMPhysics : public G4VPhysicsConstructor
@@ -20,57 +20,58 @@
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef MuonPhysics_h
#define MuonPhysics_h 1
//
// $Id: G4EmStandardPhysics71.hh,v 1.3 2005/12/05 12:55:27 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4EmStandardPhysics71
//
// Author: V.Ivanchenko 09.11.2005
//
// Modified:
// 05.12.2005 V.Ivanchenko add controlled verbosity
//
//----------------------------------------------------------------------------
//
#include "globals.hh"
#include "G4ios.hh"
#ifndef G4EmStandardPhysics71_h
#define G4EmStandardPhysics71_h 1
#include "G4VPhysicsConstructor.hh"
#include "G4MultipleScattering.hh"
#include "globals.hh"
// for lib list detection....
#include "G4MuBremsstrahlung.hh"
#include "G4MuPairProduction.hh"
#include "G4MuIonisation.hh"
#include "G4hIonisation.hh"
#include "G4MuonMinusCaptureAtRest.hh"
#include "G4EmProcessOptions.hh"
class MuonPhysics : public G4VPhysicsConstructor
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4EmStandardPhysics71 : public G4VPhysicsConstructor
{
public:
MuonPhysics(const G4String& name="muon");
virtual ~MuonPhysics();
public:
G4EmStandardPhysics71(const G4String& name = "EMstandard71", G4int ver = 1,
G4bool msc=true);
virtual ~G4EmStandardPhysics71();
public:
virtual void ConstructParticle();
virtual void ConstructProcess();
public:
virtual void ConstructParticle();
virtual void ConstructProcess();
protected:
// Muon physics
G4MultipleScattering fMuPlusMultipleScattering;
G4MuBremsstrahlung fMuPlusBremsstrahlung ;
G4MuPairProduction fMuPlusPairProduction;
G4MuIonisation fMuPlusIonisation;
G4MultipleScattering fMuMinusMultipleScattering;
G4MuBremsstrahlung fMuMinusBremsstrahlung ;
G4MuPairProduction fMuMinusPairProduction;
G4MuIonisation fMuMinusIonisation;
G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest;
// Tau physics
G4MultipleScattering fTauPlusMultipleScattering;
G4hIonisation fTauPlusIonisation;
G4MultipleScattering fTauMinusMultipleScattering;
G4hIonisation fTauMinusIonisation;
G4bool wasActivated;
private:
G4int verbose;
G4bool mscStepLimit;
};
// 2002 by J.P. Wellisch
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#endif
@@ -45,18 +45,17 @@ class G4FTFCNeutronBuilder : public G4VNeutronBuilder
virtual ~G4FTFCNeutronBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4HadronFissionProcess & aP);
virtual void Build(G4HadronCaptureProcess & aP);
virtual void Build(G4NeutronInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4HadronFissionProcess * aP);
virtual void Build(G4HadronCaptureProcess * aP);
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4TheoFSGenerator * theModel;
G4StringChipsParticleLevelInterface * theCascade;
G4FTFModel theStringModel;
G4LundStringFragmentation theFragmentation;
G4FTFModel * theStringModel;
G4ExcitedStringDecay * theStringDecay;
G4NeutronInelasticCrossSection theXSec;
@@ -46,13 +46,13 @@ class G4FTFCPiKBuilder : public G4VPiKBuilder
virtual ~G4FTFCPiKBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4PionPlusInelasticProcess & aP);
virtual void Build(G4PionMinusInelasticProcess & aP);
virtual void Build(G4KaonPlusInelasticProcess & aP);
virtual void Build(G4KaonMinusInelasticProcess & aP);
virtual void Build(G4KaonZeroLInelasticProcess & aP);
virtual void Build(G4KaonZeroSInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4PionPlusInelasticProcess * aP);
virtual void Build(G4PionMinusInelasticProcess * aP);
virtual void Build(G4KaonPlusInelasticProcess * aP);
virtual void Build(G4KaonMinusInelasticProcess * aP);
virtual void Build(G4KaonZeroLInelasticProcess * aP);
virtual void Build(G4KaonZeroSInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
@@ -60,8 +60,7 @@ class G4FTFCPiKBuilder : public G4VPiKBuilder
G4PiNuclearCrossSection thePiData;
G4TheoFSGenerator * theModel;
G4StringChipsParticleLevelInterface * theCascade;
G4FTFModel theStringModel;
G4LundStringFragmentation theFragmentation;
G4FTFModel * theStringModel;
G4ExcitedStringDecay * theStringDecay;
G4double theMin;
@@ -47,8 +47,8 @@ class G4FTFCProtonBuilder : public G4VProtonBuilder
virtual ~G4FTFCProtonBuilder(){};
public:
virtual void Build(G4HadronElasticProcess & ){};
virtual void Build(G4ProtonInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * ){};
virtual void Build(G4ProtonInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
@@ -47,20 +47,18 @@ class G4FTFPNeutronBuilder : public G4VNeutronBuilder
virtual ~G4FTFPNeutronBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4HadronFissionProcess & aP);
virtual void Build(G4HadronCaptureProcess & aP);
virtual void Build(G4NeutronInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4HadronFissionProcess * aP);
virtual void Build(G4HadronCaptureProcess * aP);
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4TheoFSGenerator * theModel;
G4ExcitationHandler theHandler;
G4PreCompoundModel * thePreEquilib;
G4GeneratorPrecompoundInterface * theCascade;
G4FTFModel theStringModel;
G4LundStringFragmentation theFragmentation;
G4FTFModel * theStringModel;
G4ExcitedStringDecay * theStringDecay;
G4NeutronInelasticCrossSection theXSec;
@@ -48,24 +48,22 @@ class G4FTFPPiKBuilder : public G4VPiKBuilder
virtual ~G4FTFPPiKBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4PionPlusInelasticProcess & aP);
virtual void Build(G4PionMinusInelasticProcess & aP);
virtual void Build(G4KaonPlusInelasticProcess & aP);
virtual void Build(G4KaonMinusInelasticProcess & aP);
virtual void Build(G4KaonZeroLInelasticProcess & aP);
virtual void Build(G4KaonZeroSInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4PionPlusInelasticProcess * aP);
virtual void Build(G4PionMinusInelasticProcess * aP);
virtual void Build(G4KaonPlusInelasticProcess * aP);
virtual void Build(G4KaonMinusInelasticProcess * aP);
virtual void Build(G4KaonZeroLInelasticProcess * aP);
virtual void Build(G4KaonZeroSInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4PiNuclearCrossSection thePiData;
G4TheoFSGenerator * theModel;
G4ExcitationHandler theHandler;
G4PreCompoundModel * thePreEquilib;
G4GeneratorPrecompoundInterface * theCascade;
G4FTFModel theStringModel;
G4LundStringFragmentation theFragmentation;
G4FTFModel * theStringModel;
G4ExcitedStringDecay * theStringDecay;
G4double theMin;
@@ -49,19 +49,17 @@ class G4FTFPProtonBuilder : public G4VProtonBuilder
virtual ~G4FTFPProtonBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4ProtonInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4ProtonInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4TheoFSGenerator * theModel;
G4ExcitationHandler theHandler;
G4PreCompoundModel * thePreEquilib;
G4GeneratorPrecompoundInterface * theCascade;
G4FTFModel theStringModel;
G4LundStringFragmentation theFragmentation;
G4FTFModel * theStringModel;
G4ExcitedStringDecay * theStringDecay;
G4double theMin;
@@ -1,115 +0,0 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
#ifndef G4HadronQEDBuilder_h
#define G4HadronQEDBuilder_h 1
#include "globals.hh"
#include "G4ios.hh"
#include "G4MultipleScattering.hh"
#include "G4hIonisation.hh"
#include "G4ProcessManager.hh"
#include "G4ParticleTable.hh"
#include "G4Proton.hh"
#include "G4AntiProton.hh"
#include "G4PionPlus.hh"
#include "G4PionMinus.hh"
#include "G4KaonPlus.hh"
#include "G4KaonMinus.hh"
#include "G4SigmaMinus.hh"
#include "G4AntiSigmaMinus.hh"
#include "G4SigmaPlus.hh"
#include "G4AntiSigmaPlus.hh"
#include "G4XiMinus.hh"
#include "G4AntiXiMinus.hh"
#include "G4OmegaMinus.hh"
#include "G4AntiOmegaMinus.hh"
#include "plist.tmp"
#include "ParticleCodeMap.hh"
class G4HadronQEDBuilder
{
public:
G4HadronQEDBuilder();
virtual ~G4HadronQEDBuilder();
public:
virtual void Build();
private:
void RegisterOne(G4ProcessManager* aP, G4MultipleScattering * aM, G4hIonisation* aI);
public: // to get gcc 2.95 satisfied...
typedef Plist<G4PionPlus, G4PionMinus, G4KaonPlus, G4KaonMinus, G4Proton, G4AntiProton, G4SigmaMinus,
G4AntiSigmaMinus, G4SigmaPlus, G4AntiSigmaPlus, G4XiMinus, G4AntiXiMinus, G4OmegaMinus,
G4AntiOmegaMinus> theParticles;
typedef std::pair<G4ParticleDefinition *, std::pair<G4MultipleScattering *, G4hIonisation *> > entryType;
static std::vector< entryType > & theCache()
{
static std::vector< entryType > cache;
return cache;
}
private:
G4bool wasActivated;
struct Clear
{ void operator () (entryType & aE)
{
G4ProcessManager * aP = aE.first->GetProcessManager();
if(aP) aP->RemoveProcess(aE.second.first);
if(aP) aP->RemoveProcess(aE.second.second);
}
};
struct Register
{
template <class T>
struct Fun // to get gcc 2.95 satisfied...
{
void operator()()
{
G4ParticleDefinition * aPart =
G4ParticleTable::GetParticleTable()->FindParticle(ParticleCodeMap<T>::PDG_CODE);
// G4cout << aPart<<G4endl;
// G4cout << "===== > Calling for "<<aPart->GetParticleName()<<G4endl;
G4ProcessManager * aP = aPart->GetProcessManager();
G4hIonisation * aI = new G4hIonisation;
G4MultipleScattering * aM = new G4MultipleScattering;
aP->AddProcess(aI, ordInActive,2, 2);
aP->AddProcess(aM);
aP->SetProcessOrdering(aM, idxAlongStep, 1);
aP->SetProcessOrdering(aM, idxPostStep, 1);
G4HadronQEDBuilder::theCache().push_back(std::make_pair(aPart, std::pair<G4MultipleScattering *, G4hIonisation *>(aM, aI) ) );
}
};
};
};
// 2002 by J.P. Wellisch
#endif
@@ -0,0 +1,99 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: G4IonPhysics.hh,v 1.2 2005/12/02 12:40:04 vnivanch Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4IonBuilder
//
// Author: V.Ivanchenko 09.11.2005
//
// Modified:
//
//----------------------------------------------------------------------------
//
#ifndef G4IonPhysics_h
#define G4IonPhysics_h 1
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
class G4LElastic;
class G4HadronElasticProcess;
class G4DeuteronInelasticProcess;
class G4LEDeuteronInelastic;
class G4TritonInelasticProcess;
class G4LETritonInelastic;
class G4AlphaInelasticProcess;
class G4LEAlphaInelastic;
class G4IonPhysics : public G4VPhysicsConstructor
{
public:
G4IonPhysics(const G4String& name="ions");
virtual ~G4IonPhysics();
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
private:
// Elastic Process
G4LElastic* theElasticModel;
// Generic Ion physics
G4HadronElasticProcess* theIonElasticProcess;
// Deuteron physics
G4HadronElasticProcess* theDElasticProcess;
G4DeuteronInelasticProcess* fDeuteronProcess;
G4LEDeuteronInelastic* fDeuteronModel;
// Triton physics
G4HadronElasticProcess* theTElasticProcess;
G4TritonInelasticProcess* fTritonProcess;
G4LETritonInelastic* fTritonModel;
// Alpha physics
G4HadronElasticProcess* theAElasticProcess;
G4AlphaInelasticProcess* fAlphaProcess;
G4LEAlphaInelastic* fAlphaModel;
// He3 physics
G4HadronElasticProcess* theHe3ElasticProcess;
G4bool wasActivated;
};
// 2002 by J.P. Wellisch
#endif
@@ -41,10 +41,10 @@ class G4LEADNeutronBuilder : public G4VNeutronBuilder
virtual ~G4LEADNeutronBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4HadronFissionProcess & aP);
virtual void Build(G4HadronCaptureProcess & aP);
virtual void Build(G4NeutronInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4HadronFissionProcess * aP);
virtual void Build(G4HadronCaptureProcess * aP);
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
@@ -41,13 +41,13 @@ class G4LEADPiKBuilder : public G4VPiKBuilder
virtual ~G4LEADPiKBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4PionPlusInelasticProcess & aP);
virtual void Build(G4PionMinusInelasticProcess & aP);
virtual void Build(G4KaonPlusInelasticProcess & aP);
virtual void Build(G4KaonMinusInelasticProcess & aP);
virtual void Build(G4KaonZeroLInelasticProcess & aP);
virtual void Build(G4KaonZeroSInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4PionPlusInelasticProcess * aP);
virtual void Build(G4PionMinusInelasticProcess * aP);
virtual void Build(G4KaonPlusInelasticProcess * aP);
virtual void Build(G4KaonMinusInelasticProcess * aP);
virtual void Build(G4KaonZeroLInelasticProcess * aP);
virtual void Build(G4KaonZeroSInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
@@ -41,8 +41,8 @@ class G4LEADProtonBuilder : public G4VProtonBuilder
virtual ~G4LEADProtonBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4ProtonInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4ProtonInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
@@ -43,10 +43,10 @@ class G4LEPNeutronBuilder : public G4VNeutronBuilder
virtual ~G4LEPNeutronBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4HadronFissionProcess & aP);
virtual void Build(G4HadronCaptureProcess & aP);
virtual void Build(G4NeutronInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4HadronFissionProcess * aP);
virtual void Build(G4HadronCaptureProcess * aP);
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM)
{
@@ -44,13 +44,13 @@ class G4LEPPiKBuilder : public G4VPiKBuilder
virtual ~G4LEPPiKBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4PionPlusInelasticProcess & aP);
virtual void Build(G4PionMinusInelasticProcess & aP);
virtual void Build(G4KaonPlusInelasticProcess & aP);
virtual void Build(G4KaonMinusInelasticProcess & aP);
virtual void Build(G4KaonZeroLInelasticProcess & aP);
virtual void Build(G4KaonZeroSInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4PionPlusInelasticProcess * aP);
virtual void Build(G4PionMinusInelasticProcess * aP);
virtual void Build(G4KaonPlusInelasticProcess * aP);
virtual void Build(G4KaonMinusInelasticProcess * aP);
virtual void Build(G4KaonZeroLInelasticProcess * aP);
virtual void Build(G4KaonZeroSInelasticProcess * aP);
void SetMinEnergy(G4double aM)
{
@@ -39,8 +39,8 @@ class G4LEPProtonBuilder : public G4VProtonBuilder
virtual ~G4LEPProtonBuilder();
public:
virtual void Build(G4ProtonInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4ProtonInelasticProcess * aP);
virtual void Build(G4HadronElasticProcess * aP);
void SetMinEnergy(G4double aM)
{
@@ -44,10 +44,10 @@ class G4LHEPNeutronBuilder : public G4VNeutronBuilder
virtual ~G4LHEPNeutronBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4HadronFissionProcess & aP);
virtual void Build(G4HadronCaptureProcess & aP);
virtual void Build(G4NeutronInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4HadronFissionProcess * aP);
virtual void Build(G4HadronCaptureProcess * aP);
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM)
{
@@ -50,13 +50,13 @@ class G4LHEPPiKBuilder : public G4VPiKBuilder
virtual ~G4LHEPPiKBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4PionPlusInelasticProcess & aP);
virtual void Build(G4PionMinusInelasticProcess & aP);
virtual void Build(G4KaonPlusInelasticProcess & aP);
virtual void Build(G4KaonMinusInelasticProcess & aP);
virtual void Build(G4KaonZeroLInelasticProcess & aP);
virtual void Build(G4KaonZeroSInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4PionPlusInelasticProcess * aP);
virtual void Build(G4PionMinusInelasticProcess * aP);
virtual void Build(G4KaonPlusInelasticProcess * aP);
virtual void Build(G4KaonMinusInelasticProcess * aP);
virtual void Build(G4KaonZeroLInelasticProcess * aP);
virtual void Build(G4KaonZeroSInelasticProcess * aP);
void SetMinEnergy(G4double aM)
{
@@ -40,8 +40,8 @@ class G4LHEPProtonBuilder : public G4VProtonBuilder
virtual ~G4LHEPProtonBuilder();
public:
virtual void Build(G4ProtonInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4ProtonInelasticProcess * aP);
virtual void Build(G4HadronElasticProcess * aP);
void SetMinEnergy(G4double aM)
{
@@ -44,10 +44,10 @@ class G4NeutronBuilder
void RegisterMe(G4VNeutronBuilder * aB) {theModelCollections.push_back(aB);}
private:
G4HadronElasticProcess theNeutronElasticProcess;
G4NeutronInelasticProcess theNeutronInelastic;
G4HadronFissionProcess theNeutronFission;
G4HadronCaptureProcess theNeutronCapture;
G4HadronElasticProcess * theNeutronElasticProcess;
G4NeutronInelasticProcess * theNeutronInelastic;
G4HadronFissionProcess * theNeutronFission;
G4HadronCaptureProcess * theNeutronCapture;
std::vector<G4VNeutronBuilder *> theModelCollections;
@@ -47,10 +47,10 @@ class G4NeutronHPBuilder : public G4VNeutronBuilder
virtual ~G4NeutronHPBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4HadronFissionProcess & aP);
virtual void Build(G4HadronCaptureProcess & aP);
virtual void Build(G4NeutronInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4HadronFissionProcess * aP);
virtual void Build(G4HadronCaptureProcess * aP);
virtual void Build(G4NeutronInelasticProcess * aP);
private:
G4NeutronHPElastic * theHPElastic;
@@ -20,6 +20,20 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: G4PiKBuilder.hh,v 1.2 2005/11/25 15:38:50 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName: G4PiKBuilder
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 16.11.2005 G.Folger: don't keep processes as data members, but new these
//
//----------------------------------------------------------------------------
//
#ifndef G4PiKBuilder_h
#define G4PiKBuilder_h 1
@@ -42,19 +56,19 @@ class G4PiKBuilder
void RegisterMe(G4VPiKBuilder * aB) {theModelCollections.push_back(aB);}
private:
G4HadronElasticProcess thePionPlusElasticProcess;
G4HadronElasticProcess thePionMinusElasticProcess;
G4HadronElasticProcess theKaonPlusElasticProcess;
G4HadronElasticProcess theKaonMinusElasticProcess;
G4HadronElasticProcess theKaonZeroLElasticProcess;
G4HadronElasticProcess theKaonZeroSElasticProcess;
G4HadronElasticProcess* thePionPlusElasticProcess;
G4HadronElasticProcess* thePionMinusElasticProcess;
G4HadronElasticProcess* theKaonPlusElasticProcess;
G4HadronElasticProcess* theKaonMinusElasticProcess;
G4HadronElasticProcess* theKaonZeroLElasticProcess;
G4HadronElasticProcess* theKaonZeroSElasticProcess;
G4PionPlusInelasticProcess thePionPlusInelastic;
G4PionMinusInelasticProcess thePionMinusInelastic;
G4KaonPlusInelasticProcess theKaonPlusInelastic;
G4KaonMinusInelasticProcess theKaonMinusInelastic;
G4KaonZeroLInelasticProcess theKaonZeroLInelastic;
G4KaonZeroSInelasticProcess theKaonZeroSInelastic;
G4PionPlusInelasticProcess* thePionPlusInelastic;
G4PionMinusInelasticProcess* thePionMinusInelastic;
G4KaonPlusInelasticProcess* theKaonPlusInelastic;
G4KaonMinusInelasticProcess* theKaonMinusInelastic;
G4KaonZeroLInelasticProcess* theKaonZeroLInelastic;
G4KaonZeroSInelasticProcess* theKaonZeroSInelastic;
std::vector<G4VPiKBuilder *> theModelCollections;
@@ -42,16 +42,15 @@ class G4PrecoNeutronBuilder : public G4VNeutronBuilder
virtual ~G4PrecoNeutronBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4HadronFissionProcess & aP);
virtual void Build(G4HadronCaptureProcess & aP);
virtual void Build(G4NeutronInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4HadronFissionProcess * aP);
virtual void Build(G4HadronCaptureProcess * aP);
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4PreCompoundModel * theModel;
G4ExcitationHandler theHandler;
G4NeutronInelasticCrossSection theXSec;
G4double theMin;
G4double theMax;
@@ -31,7 +31,6 @@
#include "G4ProtonInelasticProcess.hh"
#include "G4VProtonBuilder.hh"
#include "G4ExcitationHandler.hh"
#include "G4PreCompoundModel.hh"
#include "G4ProtonInelasticCrossSection.hh"
@@ -42,14 +41,13 @@ class G4PrecoProtonBuilder : public G4VProtonBuilder
virtual ~G4PrecoProtonBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4ProtonInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4ProtonInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4ExcitationHandler theHandler;
G4PreCompoundModel * theModel;
G4double theMin;
G4double theMax;
@@ -42,8 +42,8 @@ class G4ProtonBuilder
void RegisterMe(G4VProtonBuilder * aB) {theModelCollections.push_back(aB);}
private:
G4HadronElasticProcess theProtonElasticProcess;
G4ProtonInelasticProcess theProtonInelastic;
G4HadronElasticProcess * theProtonElasticProcess;
G4ProtonInelasticProcess * theProtonInelastic;
std::vector<G4VProtonBuilder *> theModelCollections;
@@ -46,18 +46,17 @@ class G4QGSCNeutronBuilder : public G4VNeutronBuilder
virtual ~G4QGSCNeutronBuilder();
public:
virtual void Build(G4HadronElasticProcess & ){}
virtual void Build(G4HadronFissionProcess & ){}
virtual void Build(G4HadronCaptureProcess & ){}
virtual void Build(G4NeutronInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * ){}
virtual void Build(G4HadronFissionProcess * ){}
virtual void Build(G4HadronCaptureProcess * ){}
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4QGSModel< G4QGSParticipants > theStringModel;
G4QGSModel< G4QGSParticipants > * theStringModel;
G4StringChipsParticleLevelInterface * theCascade;
G4TheoFSGenerator * theModel;
G4QGSMFragmentation theFragmentation;
G4ExcitedStringDecay * theStringDecay;
G4NeutronInelasticCrossSection theXSec;
@@ -47,13 +47,13 @@ class G4QGSCPiKBuilder : public G4VPiKBuilder
virtual ~G4QGSCPiKBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4PionPlusInelasticProcess & aP);
virtual void Build(G4PionMinusInelasticProcess & aP);
virtual void Build(G4KaonPlusInelasticProcess & aP);
virtual void Build(G4KaonMinusInelasticProcess & aP);
virtual void Build(G4KaonZeroLInelasticProcess & aP);
virtual void Build(G4KaonZeroSInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4PionPlusInelasticProcess * aP);
virtual void Build(G4PionMinusInelasticProcess * aP);
virtual void Build(G4KaonPlusInelasticProcess * aP);
virtual void Build(G4KaonMinusInelasticProcess * aP);
virtual void Build(G4KaonZeroLInelasticProcess * aP);
virtual void Build(G4KaonZeroSInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
@@ -62,7 +62,7 @@ class G4QGSCPiKBuilder : public G4VPiKBuilder
G4TheoFSGenerator * theModel;
G4StringChipsParticleLevelInterface * theCascade;
G4QGSModel< G4QGSParticipants > theStringModel;
G4QGSModel< G4QGSParticipants > * theStringModel;
G4QGSMFragmentation theFragmentation;
G4ExcitedStringDecay * theStringDecay;
G4double theMin;
@@ -48,8 +48,8 @@ class G4QGSCProtonBuilder : public G4VProtonBuilder
virtual ~G4QGSCProtonBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4ProtonInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4ProtonInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
@@ -57,8 +57,7 @@ class G4QGSCProtonBuilder : public G4VProtonBuilder
G4ProtonInelasticCrossSection theXSec;
G4TheoFSGenerator * theModel;
G4StringChipsParticleLevelInterface * theCascade;
G4QGSModel< G4QGSParticipants > theStringModel;
G4QGSMFragmentation theFragmentation;
G4QGSModel< G4QGSParticipants > * theStringModel;
G4ExcitedStringDecay * theStringDecay;
G4double theMin;
@@ -48,20 +48,18 @@ class G4QGSPNeutronBuilder : public G4VNeutronBuilder
virtual ~G4QGSPNeutronBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4HadronFissionProcess & aP);
virtual void Build(G4HadronCaptureProcess & aP);
virtual void Build(G4NeutronInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4HadronFissionProcess * aP);
virtual void Build(G4HadronCaptureProcess * aP);
virtual void Build(G4NeutronInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4TheoFSGenerator * theModel;
G4ExcitationHandler theHandler;
G4PreCompoundModel * thePreEquilib;
G4GeneratorPrecompoundInterface * theCascade;
G4QGSModel< G4QGSParticipants > theStringModel;
G4QGSMFragmentation theFragmentation;
G4QGSModel< G4QGSParticipants > * theStringModel;
G4ExcitedStringDecay * theStringDecay;
G4NeutronInelasticCrossSection theXSec;
@@ -49,24 +49,22 @@ class G4QGSPPiKBuilder : public G4VPiKBuilder
virtual ~G4QGSPPiKBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4PionPlusInelasticProcess & aP);
virtual void Build(G4PionMinusInelasticProcess & aP);
virtual void Build(G4KaonPlusInelasticProcess & aP);
virtual void Build(G4KaonMinusInelasticProcess & aP);
virtual void Build(G4KaonZeroLInelasticProcess & aP);
virtual void Build(G4KaonZeroSInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4PionPlusInelasticProcess * aP);
virtual void Build(G4PionMinusInelasticProcess * aP);
virtual void Build(G4KaonPlusInelasticProcess * aP);
virtual void Build(G4KaonMinusInelasticProcess * aP);
virtual void Build(G4KaonZeroLInelasticProcess * aP);
virtual void Build(G4KaonZeroSInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4PiNuclearCrossSection thePiData;
G4TheoFSGenerator * theModel;
G4ExcitationHandler theHandler;
G4PreCompoundModel * thePreEquilib;
G4GeneratorPrecompoundInterface * theCascade;
G4QGSModel< G4QGSParticipants > theStringModel;
G4QGSMFragmentation theFragmentation;
G4QGSModel< G4QGSParticipants > * theStringModel;
G4ExcitedStringDecay * theStringDecay;
G4double theMin;
@@ -50,19 +50,17 @@ class G4QGSPProtonBuilder : public G4VProtonBuilder
virtual ~G4QGSPProtonBuilder();
public:
virtual void Build(G4HadronElasticProcess & aP);
virtual void Build(G4ProtonInelasticProcess & aP);
virtual void Build(G4HadronElasticProcess * aP);
virtual void Build(G4ProtonInelasticProcess * aP);
void SetMinEnergy(G4double aM) {theMin = aM;}
private:
G4ProtonInelasticCrossSection theXSec;
G4TheoFSGenerator * theModel;
G4ExcitationHandler theHandler;
G4PreCompoundModel * thePreEquilib;
G4GeneratorPrecompoundInterface * theCascade;
G4QGSModel< G4QGSParticipants > theStringModel;
G4QGSMFragmentation theFragmentation;
G4QGSModel< G4QGSParticipants > * theStringModel;
G4ExcitedStringDecay * theStringDecay;
G4double theMin;

Some files were not shown because too many files have changed in this diff Show More