Import Geant4 9.3.0 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.75 2008/12/05 15:14:36 gcosmo Exp $
|
||||
q$Id: History,v 1.119 2009/12/04 13:09:12 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -15,14 +15,214 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
04-12-2009, K.Murakami (phys-lists-V09-02-46)
|
||||
- Fixed typo in FTFP_EMV.icc for wrong call to G4WarnPLStatus.
|
||||
|
||||
03-12-2009, P.Kaitaniemi (phys-lists-V09-02-45)
|
||||
- QGSP_INCL_ABLA, Fix: Use Bertini cascade for kaons in the energy range 0 - 10 GeV.
|
||||
|
||||
30-11-2009, M.Kosov (phys-lists-V09-02-44)
|
||||
- G4QNeutrinoPhysics - process is not created if neutrino is not simulated
|
||||
|
||||
28-11-2009, V.Ivanchenko (phys-lists-V09-02-43)
|
||||
- QBBC - fixed cross sections for hadron elastic
|
||||
|
||||
27-11-2009, G.Folger (phys-lists-V09-02-42)
|
||||
- QGSP_BERT_TRV, change transition energies in HadronPhysicsQGSP_BERT_TRV to
|
||||
use BERT ]0,9.9], LEP [9.5, 15], QGSP [10, inf[
|
||||
- QGSP_BERT_NOLEP, use G4HadronQElasticPhysics
|
||||
- explicitely mark experimental: QGSP_BERT_EMX, QGSP_BERT_TRV, QGSP_FTFP_BERT,
|
||||
QGSP_INCL_ABLA
|
||||
- mark as obsolete: FTFP, QGSP, QGSC, QGSC_CHIPS, QGSC_EMV, QGSC_QGSC
|
||||
- mark supported ( remove experimental) :FTFP_BERT, FTFP_BERT_EMV
|
||||
- Add initial version of G4IonQMDPhysics
|
||||
|
||||
25-11-2009, V.Ivanchenko (phys-lists-V09-02-41)
|
||||
- G4PhysListFactory - update list of supported referenced PhysicsLists
|
||||
- QBBC - updated for the release
|
||||
|
||||
24-11-2009, V.Ivanchenko (phys-lists-V09-02-40)
|
||||
- G4EmStandardPhysics_option3, G4EmLivermorePhysics, G4EmPenelopePhysics,
|
||||
G4EmLivermorePolarizedPhysics - set finalRange=10um for ions
|
||||
- G4EmStandardPhysics_option2 - use default StepFunction for ions
|
||||
|
||||
20-11-2009, M.Kosov (phys-lists-V09-02-39)
|
||||
- Something was wrong in CHIPS lis, but now it is working
|
||||
|
||||
20-11-2009, M.Kosov (phys-lists-V09-02-38)
|
||||
- G4QAtomicPhysics and xs_dependent is excluded from the GNUmakefile's
|
||||
|
||||
18-11-2009, M.Kosov (phys-lists-V09-02-37)
|
||||
- bug fix in CHIPS.icc (call for G4QCaptureAtRestPhysics)
|
||||
|
||||
17-11-2009, M.Kosov (phys-lists-V09-02-36)
|
||||
- improved dependencies on CHIPS
|
||||
|
||||
16-11-2009, M.Kosov (phys-lists-V09-02-35)
|
||||
- dependencies on split CHIPS-body and new class G4QCaptureAtRestPhysics
|
||||
|
||||
13-11-2009, M.Kosov (phys-lists-V09-02-34)
|
||||
- two builders G4QNeutrinoPhysics & G4QPhotoNuclearPhysics with
|
||||
the G4QMessenger are added to the CHIPS physics list
|
||||
|
||||
10-11-2009, V.Ivanchenko (phys-lists-V09-02-33)
|
||||
- G4EmStandardPhysics_option3, G4EmLivermorePhysics, G4EmPenelopePhysics,
|
||||
G4EmLivermorePolarizedPhysics - added G4NuclearStopping process for
|
||||
GenericIon, He3, alpha particles
|
||||
|
||||
4-11-2009, P.Gumplinger (phys-lists-V09-02-32)
|
||||
- add G4OpticalPhysics and G4OpticalPhysicsMessenger class
|
||||
|
||||
3-11-2009, M.Kosov (phys-lists-V09-02-31)
|
||||
- close the warning about not used quasiElastic
|
||||
|
||||
31-10-2009, V.Ivanchenko (phys-lists-V09-02-30)
|
||||
- G4EmDNAPhysics (S.Inserti) updated combined Physics List standard/DNA
|
||||
|
||||
30-10-2009, V.Ivanchenko (phys-lists-V09-02-29)
|
||||
- Review of all EM builders:
|
||||
- in all builders separate definition of processes for He3 and
|
||||
He4 ions; G4eMultipleScattering for e+, e-,
|
||||
G4MuMultipleScattering for muons;
|
||||
- G4UrbanMscModel93 for e+- for all builders except Opt0 and Opt1
|
||||
- G4WentzelVIModel for muons for all builders except Opt0 and Opt1
|
||||
- G4ParameterizedIonModel for Opt3 and all combined builders
|
||||
- StepFunction (0.1, 0.02*mm) for ions inside Opt2
|
||||
|
||||
30-10-2009, M.Kosov (phys-lists-V09-02-28)
|
||||
- first implementation of the one model CHIPS physics list
|
||||
|
||||
08-10-2009, V.Ivanchenko (phys-lists-V09-02-27)
|
||||
- fixed compillation problem in G4HadronPhysicsQBBC
|
||||
|
||||
04-10-2009, V.Ivanchenko (phys-lists-V09-02-26)
|
||||
- modified QBBC - remove template and move QBBC.icc to QBBC.cc;
|
||||
use a new G4VHadronPhysics interface
|
||||
- G4HadroHElasticPhysics uses G4WHadronElasticProcess (the result of
|
||||
redesign of elastic) instead of G4UHadronElasticProcess
|
||||
- QGSP_BERT_EMV uses G4HadroHElasticPhysics instead of G4HadroElasticPhysics
|
||||
|
||||
02-10-2009, V.Ivanchenko (phys-lists-V09-02-25)
|
||||
- modified EM standard Physics Lists
|
||||
G4EmStandardPhysics - return 9.2 configuration
|
||||
G4EmStandardPhysics_option1 - use ApplyCuts=true
|
||||
G4EmStandardPhysics_option2 - use G4eMultipleScattering for e+-
|
||||
|
||||
09-09-2009, S.Incerti (phys-lists-V09-02-24)
|
||||
- added high energy limit to e- models for better clarity in
|
||||
G4EmLivermorePhysics.cc
|
||||
G4EmLivermorePolarizedPhysics.cc
|
||||
|
||||
19-07-2009, P.Kaitaniemi (phys-lists-V09-02-23)
|
||||
- Added INCL/ABLA physics builders for protons, neutrons, pions and light ions
|
||||
- Added QGSP_INCL_ABLA physics list
|
||||
- Added QGSP_INCL_ABLA to the G4PhysListFactory
|
||||
|
||||
08-07-2009, S.Incerti (phys-lists-V09-02-22)
|
||||
- adapted G4EmLivermorePolarizedPhysics builder similarly to
|
||||
the non polarized case
|
||||
|
||||
03-06-2009, G.Folger (phys-lists-V09-02-21)
|
||||
- no code change
|
||||
- use versions of phys-lists-V09-02-18 for
|
||||
builders/include/G4QGSC_CHIPSNeutronBuilder.hh
|
||||
builders/*/G4QNeutronBuilder.{hh,cc}
|
||||
|
||||
|
||||
02-06-2009, G.Folger (phys-lists-V09-02-20)
|
||||
- Rename HadronPhysicsFB68.{hh,cc} to HadronPhysicsFTFP_BERT_TRV.{hh,cc};
|
||||
required changes in FTFP_BERT_TRV.icc as well.
|
||||
- correct typo in experimental/Unsupported names in FTF_BIC.icc and QGSP_EMX.icc
|
||||
|
||||
25-05-2009, M.Kosov (phys-lists-V09-02-19)
|
||||
- Two new low energy (<290 MeV) nA CHIPS reactions are implemented in the QGSC_CHIPS
|
||||
physics list (works together with the hadr-chips-inter-V09-02-07 CHIPS tag
|
||||
|
||||
18-05-2009, G.Folger (phys-lists-V09-02-18)
|
||||
- Declare several list obsolete, partially disabling use.
|
||||
Obsolete + disabled (= remove)
|
||||
FTF_EMV, replacment FTFP_BERT_EMV
|
||||
QGSC_EFLOW, replacment QGSC_CHIPS
|
||||
QGSP_EMX, replacment QGSP_BERT_EMX
|
||||
Obsolete:
|
||||
FTFC
|
||||
LHEP_BERT, LHEP_BERT_HP, LHEP_PRECO_HP
|
||||
QGSP_BERT_DIF, QGSP_BERT_NQE, QGSP_DIF, QGSP_EMV, QGSP_EMV_NQE,
|
||||
QGSP_NQE, QGSP_QEL
|
||||
|
||||
11-05-2009, V.Ivanchenko phys-lists-V09-02-17
|
||||
- Added new PhysLists with special EM options: FTFP_BERT_EMV,
|
||||
FTFP_BERT_EMX, QGSP_BERT_EMX, QGSP_BIC_EMY (opt3 EM physics)
|
||||
- Renamed FB68 to FTFP_BERT_TRV
|
||||
- G4PhysicsListFactory - updated list of supported PhysLists
|
||||
|
||||
10-05-2009, V.Ivanchenko phys-lists-V09-02-16
|
||||
G4EmStandardPhysics, G4EmStandardPhysics_option1 - use 9.2 msc
|
||||
model for e+-
|
||||
G4EmStandardPhysics_option2 - use G4WentzelVIModel for e+-
|
||||
G4EmStandardPhysics_option3 - use updated G4UrbanMscModel2 and
|
||||
use G4RayleighScattering
|
||||
G4EmLivermorePhysics - upper limit of Livermore models 1 GeV
|
||||
|
||||
23-04-2009, J.Apostolakis phys-lists-V09-02-15
|
||||
- Added MaxEnergy method in FTF builders.
|
||||
- Added QGSP_FTFP_BERT based on QGSP_BERT replacing the bridging LEP with FTFP,
|
||||
and transitioning from BERT to FTFP between 7 and 9 GeV;
|
||||
- Added FB68 as variant of FTFP_BERT with transition between 6 and 8 GeV.
|
||||
|
||||
20-04-2009, M.Kosov phys-lists-V09-02-14
|
||||
- Two new physics lists QGSC_QGSC and QGSC_CHIPS are added.
|
||||
- QGSC_QGSC physics list uses the QGS model with the MultySoft
|
||||
interface to CHIPS at all energies, starting from E=0. For neutrons
|
||||
it still uses LHEP models for the radiativ capture and fission.
|
||||
- QGSC_CHIPS physics list uses the QGS model with the EnergyFlow
|
||||
interface to CHIPS at all energies. For the pA interactions the
|
||||
native CHIPS process G4QCollision is used below 290 MeV. The QGSC and
|
||||
G4QCollision processes are joined in one process by the CHIPS
|
||||
G4QDiscProcessMixer interface.
|
||||
- The corresponding physics builders are added.
|
||||
|
||||
17-04-2009, V.Ivanchenko phys-lists-V09-02-12
|
||||
- Restore History after modification of CHIPS builders
|
||||
- Fixed G4EmLivermorePhysics, G4EmPenelopePhysics
|
||||
- Added new CHIPS PhysLists to the G4PhysListFactory
|
||||
- Fixed G4HadronInelasticQBBC - cross sections are created by new,
|
||||
not by value, fission only instantiated for HP
|
||||
|
||||
31-03-2009, V.Ivanchenko phys-lists-V09-02-05
|
||||
- To fix bug #1056 all cross section data sets are included not as a
|
||||
member of classes but created by new
|
||||
- inline constructor and destructors are moved to source for classes:
|
||||
G4VNeutronBuilder, G4VPiKBuilder, G4VProtonBuilder, G4WarnPLStatus
|
||||
|
||||
26-03-2009, S.Incerti phys-lists-V09-02-04
|
||||
- Added builders for Livermore and Penelope physics processes:
|
||||
G4EmLivermorePhysics, G4EmLivermorePolarizedPhysics, G4EmPenelopePhysics.
|
||||
|
||||
25-03-2009, S.Incerti phys-lists-V09-02-03
|
||||
- Added builder for DNA physics processes: G4EmDNAPhysics.
|
||||
|
||||
12-03-2009, V.Ivanchenko phys-lists-V09-02-02
|
||||
- HadronPhysicsQGSC: fixed crash at destruction.
|
||||
|
||||
16-02-2009, V.Ivanchenko phys-lists-V09-02-01
|
||||
- G4IonBinaryCascadePhysics: use Shen cross section only if Tripathi is
|
||||
not applicable (fixed order of x-sections).
|
||||
- G4HadronInelasticQBBC: use G4StringChipsParticleLevelInterface instead of
|
||||
obsolete G4StringChipsInterface.
|
||||
|
||||
05-02-2009, V.Ivanchenko phys-lists-V09-02-00
|
||||
- G4MiscLHEPBuilder: create processes by "new" in order to have proper
|
||||
deletion at the end of job.
|
||||
|
||||
05-12-2008, G.Cosmo phys-lists-V09-01-20
|
||||
- Added missing dependency to "run" category in GLOBLIBS for DLL parsing
|
||||
induced by G4PhysicsListFactory which now brings in dependency on
|
||||
G4VModularPhysicsList.
|
||||
|
||||
01-12-2008, V.Ivanchenko phys-lists-V09-01-19
|
||||
G4HadronElasticPhysics - fixed adding optional Barashenkov Xsection
|
||||
QBBC - added QBBBG option
|
||||
- G4HadronElasticPhysics: fixed adding optional Barashenkov Xsection
|
||||
QBBC - added QBBBG option
|
||||
|
||||
21-11-2008, V.Ivanchenko phys-lists-V09-01-18
|
||||
- Added sigma_c+, sigma_c++ in the list of stable hadrons
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.5 2008/10/15 18:24:11 vnivanch Exp $
|
||||
# $Id: GNUmakefile,v 1.11 2009/11/27 17:26:44 gunter Exp $
|
||||
# ---------------------------------------------------------------------------
|
||||
# GNUmakefile for physics_lists/builders library. Gunter Folger 25-Oct-2006.
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -13,6 +13,7 @@ include $(G4INSTALL)/config/architecture.gmk
|
||||
|
||||
CPPFLAGS += -I$(G4BASE)/global/management/include \
|
||||
-I$(G4BASE)/global/HEPRandom/include \
|
||||
-I$(G4BASE)/global/HEPNumerics/include \
|
||||
-I$(G4BASE)/global/HEPGeometry/include \
|
||||
-I$(G4BASE)/geometry/volumes/include \
|
||||
-I$(G4BASE)/geometry/management/include \
|
||||
@@ -48,7 +49,11 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/util/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/binary_cascade/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/cascade/cascade/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/qmd/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/body/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/cross_sections/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/processes/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/fragmentation/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/interface/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/coherent_elastic/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/de_excitation/evaporation/include \
|
||||
@@ -60,6 +65,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/high_energy/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/im_r_matrix/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/incl/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/leading_particle/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/low_energy/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/neutron_hp/include \
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BertiniNeutronBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4BertiniNeutronBuilder
|
||||
//
|
||||
// Author: 2002 H.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4BertiniNeutronBuilder_h
|
||||
#define G4BertiniNeutronBuilder_h 1
|
||||
|
||||
@@ -35,7 +49,6 @@
|
||||
#include "G4VNeutronBuilder.hh"
|
||||
|
||||
#include "G4CascadeInterface.hh"
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
|
||||
class G4BertiniNeutronBuilder : public G4VNeutronBuilder
|
||||
{
|
||||
@@ -54,7 +67,6 @@ class G4BertiniNeutronBuilder : public G4VNeutronBuilder
|
||||
|
||||
private:
|
||||
G4CascadeInterface * theModel;
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BertiniPiKBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4BertiniPiKBuilder
|
||||
//
|
||||
// Author: 2002 H.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4BertiniPiKBuilder_h
|
||||
#define G4BertiniPiKBuilder_h 1
|
||||
|
||||
@@ -56,7 +70,7 @@ class G4BertiniPiKBuilder : public G4VPiKBuilder
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
private:
|
||||
G4PiNuclearCrossSection thePiData;
|
||||
G4PiNuclearCrossSection* thePiData;
|
||||
G4CascadeInterface * theModel;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BertiniProtonBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4BertiniProtonBuilder
|
||||
//
|
||||
// Author: 2002 H.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4BertiniProtonBuilder_h
|
||||
#define G4BertiniProtonBuilder_h
|
||||
|
||||
@@ -35,7 +49,6 @@
|
||||
#include "G4VProtonBuilder.hh"
|
||||
|
||||
#include "G4CascadeInterface.hh"
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
class G4BertiniProtonBuilder : public G4VProtonBuilder
|
||||
{
|
||||
@@ -51,7 +64,7 @@ class G4BertiniProtonBuilder : public G4VProtonBuilder
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
|
||||
G4CascadeInterface * theModel;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BinaryNeutronBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4BinaryNeutronBuilder
|
||||
//
|
||||
// Author: 2002 H.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4BinaryNeutronBuilder_h
|
||||
#define G4BinaryNeutronBuilder_h 1
|
||||
|
||||
@@ -35,7 +49,6 @@
|
||||
#include "G4VNeutronBuilder.hh"
|
||||
|
||||
#include "G4BinaryCascade.hh"
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
|
||||
class G4BinaryNeutronBuilder : public G4VNeutronBuilder
|
||||
{
|
||||
@@ -54,7 +67,6 @@ class G4BinaryNeutronBuilder : public G4VNeutronBuilder
|
||||
|
||||
private:
|
||||
G4BinaryCascade * theModel;
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BinaryPiKBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4BinaryPiKBuilder
|
||||
//
|
||||
// Author: 2002 H.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4BinaryPiKBuilder_h
|
||||
#define G4BinaryPiKBuilder_h 1
|
||||
|
||||
@@ -56,7 +70,7 @@ class G4BinaryPiKBuilder : public G4VPiKBuilder
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
private:
|
||||
G4PiNuclearCrossSection thePiData;
|
||||
G4PiNuclearCrossSection* thePiData;
|
||||
G4BinaryCascade * theModel;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BinaryProtonBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4BinaryProtonBuilder
|
||||
//
|
||||
// Author: 2002 H.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4BinaryProtonBuilder_h
|
||||
#define G4BinaryProtonBuilder_h
|
||||
|
||||
@@ -35,7 +49,6 @@
|
||||
#include "G4VProtonBuilder.hh"
|
||||
|
||||
#include "G4BinaryCascade.hh"
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
class G4BinaryProtonBuilder : public G4VProtonBuilder
|
||||
{
|
||||
@@ -51,7 +64,7 @@ class G4BinaryProtonBuilder : public G4VProtonBuilder
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
|
||||
G4BinaryCascade * theModel;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
@@ -32,23 +32,24 @@
|
||||
#include "G4ProtonInelasticProcess.hh"
|
||||
#include "G4VPiKBuilder.hh"
|
||||
|
||||
enum G4DataType {no, photon, neutron, radioactive, lowenergy};
|
||||
enum G4DataType {no, photon, neutron, radioactive, lowenergy, optical};
|
||||
class G4DataQuestionaire
|
||||
{
|
||||
public:
|
||||
G4DataQuestionaire(G4DataType t1=no, G4DataType t2=no, G4DataType t3=no, G4DataType t4=no)
|
||||
G4DataQuestionaire(G4DataType t1=no, G4DataType t2=no, G4DataType t3=no, G4DataType t4=no, G4DataType t5=no)
|
||||
{
|
||||
G4cout << G4endl;
|
||||
G4cout << "<<< Geant4 Physics List engine packaging library: PACK 5.4"<<G4endl;
|
||||
G4cout << "<<< Geant4 Physics List engine packaging library: PACK 5.5"<<G4endl;
|
||||
// G4cout <<G4endl<<G4endl;
|
||||
// G4cout << "##### the input "<<t1<<" "<<t2<<" "<<t3<<" "<<t4<<G4endl;
|
||||
for(G4int i=0; i<4; i++)
|
||||
for(G4int i=0; i<5; i++)
|
||||
{
|
||||
G4DataType t(no);
|
||||
if(i==0) t=t1;
|
||||
if(i==1) t=t2;
|
||||
if(i==2) t=t3;
|
||||
if(i==3) t=t4;
|
||||
if(i==4) t=t5;
|
||||
switch(t)
|
||||
{
|
||||
case photon:
|
||||
@@ -95,6 +96,17 @@ class G4DataQuestionaire
|
||||
"Fatal error: Missing mandatory data for this simulation engine");
|
||||
}
|
||||
break;
|
||||
case optical:
|
||||
if(!getenv("G4LEDATA") )
|
||||
{
|
||||
G4cout << "Data describing surface propeties for optical photons are needed."<<G4endl;
|
||||
G4cout << "Please set the environmental variable G4REALSURFACEDATA"<<G4endl;
|
||||
G4cout << "to point to your RealSurface directory."<<G4endl;
|
||||
G4cout << "Data are available from the Geant4 download page."<<G4endl;
|
||||
G4Exception("G4DataQuestionaire", "007", FatalException,
|
||||
"Fatal error: Missing mandatory data for this simulation engine");
|
||||
}
|
||||
break;
|
||||
case no:
|
||||
// all ok
|
||||
break;
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DecayPhysics.hh,v 1.1 2006/10/31 11:35:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4DecayPhysics.hh,v 1.2 2009/11/05 01:24:47 gum Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -63,6 +63,8 @@ class G4DecayPhysics : public G4VPhysicsConstructor
|
||||
// registered to the process manager of each particle type
|
||||
virtual void ConstructProcess();
|
||||
|
||||
virtual G4Decay* GetDecayProcess() { return fDecayProcess; }
|
||||
|
||||
private:
|
||||
G4Decay* fDecayProcess;
|
||||
G4int verbose;
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmDNAPhysics.hh,v 1.1 2009/03/25 11:28:07 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
#ifndef G4EmDNAPhysics_h
|
||||
#define G4EmDNAPhysics_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmDNAPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4EmDNAPhysics(G4int ver = 1,
|
||||
const G4String& name = "G4EmDNAPhysics");
|
||||
|
||||
virtual ~G4EmDNAPhysics();
|
||||
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4int verbose;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmLivermorePhysics.hh,v 1.1 2009/03/25 20:54:32 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
#ifndef G4EmLivermorePhysics_h
|
||||
#define G4EmLivermorePhysics_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmLivermorePhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4EmLivermorePhysics(G4int ver = 1,
|
||||
const G4String& name = "G4EmLivermorePhysics");
|
||||
|
||||
virtual ~G4EmLivermorePhysics();
|
||||
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4int verbose;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmLivermorePolarizedPhysics.hh,v 1.1 2009/03/25 20:54:32 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
#ifndef G4EmLivermorePolarizedPhysics_h
|
||||
#define G4EmLivermorePolarizedPhysics_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmLivermorePolarizedPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4EmLivermorePolarizedPhysics(G4int ver = 1,
|
||||
const G4String& name = "G4EmLivermorePolarizedPhysics");
|
||||
|
||||
virtual ~G4EmLivermorePolarizedPhysics();
|
||||
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4int verbose;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EmPenelopePhysics.hh,v 1.1 2009/03/25 13:24:57 pandola Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
#ifndef G4EmPenelopePhysics_h
|
||||
#define G4EmPenelopePhysics_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4EmPenelopePhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4EmPenelopePhysics(G4int ver = 1,
|
||||
const G4String& name = "G4EmPenelopePhysics");
|
||||
|
||||
virtual ~G4EmPenelopePhysics();
|
||||
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4int verbose;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFBinaryNeutronBuilder.hh,v 1.3 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFBinaryNeutronBuilder
|
||||
//
|
||||
// Author: 2008 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4FTFBinaryNeutronBuilder_h
|
||||
#define G4FTFBinaryNeutronBuilder_h 1
|
||||
|
||||
@@ -34,7 +48,6 @@
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4VNeutronBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4ExcitationHandler.hh"
|
||||
#include "G4PreCompoundModel.hh"
|
||||
@@ -65,7 +78,6 @@ class G4FTFBinaryNeutronBuilder : public G4VNeutronBuilder
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFBinaryPiKBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFBinaryPiKBuilder
|
||||
//
|
||||
// Author: 2008 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4FTFBinaryPiKBuilder_h
|
||||
#define G4FTFBinaryPiKBuilder_h 1
|
||||
|
||||
@@ -70,7 +84,7 @@ class G4FTFBinaryPiKBuilder : public G4VPiKBuilder
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4PiNuclearCrossSection thePiData;
|
||||
G4PiNuclearCrossSection* thePiData;
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFBinaryProtonBuilder.hh,v 1.2 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFBinaryProtonBuilder
|
||||
//
|
||||
// Author: 2008 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4FTFBinaryProtonBuilder_h
|
||||
#define G4FTFBinaryProtonBuilder_h
|
||||
|
||||
@@ -34,7 +48,6 @@
|
||||
#include "G4ProtonInelasticProcess.hh"
|
||||
#include "G4VProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4ExcitationHandler.hh"
|
||||
#include "G4PreCompoundModel.hh"
|
||||
@@ -44,8 +57,6 @@
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
class G4FTFBinaryProtonBuilder : public G4VProtonBuilder
|
||||
{
|
||||
public:
|
||||
@@ -66,7 +77,6 @@ class G4FTFBinaryProtonBuilder : public G4VProtonBuilder
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFBuilder.hh,v 1.1 2009/10/04 16:29:54 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFBuilder
|
||||
//
|
||||
// Author: 28 June 2009 V.Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4FTFBuilder_h
|
||||
#define G4FTFBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VHadronModelBuilder.hh"
|
||||
|
||||
class G4FTFModel;
|
||||
class G4ExcitedStringDecay;
|
||||
|
||||
class G4FTFBuilder : public G4VHadronModelBuilder
|
||||
{
|
||||
public:
|
||||
|
||||
G4FTFBuilder(const G4String& name ="");
|
||||
|
||||
virtual ~G4FTFBuilder();
|
||||
|
||||
protected:
|
||||
|
||||
virtual G4HadronicInteraction* BuildModel();
|
||||
|
||||
private:
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4FTFBuilder(G4FTFBuilder &);
|
||||
G4FTFBuilder & operator=(const G4FTFBuilder &right);
|
||||
|
||||
G4FTFModel* theStringModel;
|
||||
G4ExcitedStringDecay* theStringDecay;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFCNeutronBuilder.hh,v 1.3 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFCNeutronBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4FTFCNeutronBuilder_h
|
||||
#define G4FTFCNeutronBuilder_h 1
|
||||
|
||||
@@ -34,7 +48,6 @@
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4VNeutronBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4StringChipsParticleLevelInterface.hh"
|
||||
#include "G4FTFModel.hh"
|
||||
@@ -63,7 +76,6 @@ class G4FTFCNeutronBuilder : public G4VNeutronBuilder
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFCPiKBuilder.hh,v 1.3 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFCPiKBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4FTFCPiKBuilder_h
|
||||
#define G4FTFCPiKBuilder_h 1
|
||||
|
||||
@@ -67,7 +81,7 @@ class G4FTFCPiKBuilder : public G4VPiKBuilder
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4PiNuclearCrossSection thePiData;
|
||||
G4PiNuclearCrossSection* thePiData;
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFCProtonBuilder.hh,v 1.4 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFCProtonBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4FTFCProtonBuilder_h
|
||||
#define G4FTFCProtonBuilder_h
|
||||
|
||||
@@ -34,7 +48,6 @@
|
||||
#include "G4ProtonInelasticProcess.hh"
|
||||
#include "G4VProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4StringChipsParticleLevelInterface.hh"
|
||||
#include "G4FTFModel.hh"
|
||||
@@ -42,23 +55,24 @@
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
class G4FTFCProtonBuilder : public G4VProtonBuilder
|
||||
{
|
||||
public:
|
||||
G4FTFCProtonBuilder(G4bool quasiElastic=false);
|
||||
virtual ~G4FTFCProtonBuilder(){};
|
||||
virtual ~G4FTFCProtonBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess * ){};
|
||||
virtual void Build(G4HadronElasticProcess * );
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4StringChipsParticleLevelInterface * theCascade;
|
||||
G4FTFModel * theStringModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4double theMin;
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFPNeutronBuilder.hh,v 1.4 2009/04/23 18:54:57 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFPNeutronBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4FTFPNeutronBuilder_h
|
||||
#define G4FTFPNeutronBuilder_h 1
|
||||
|
||||
@@ -34,7 +48,6 @@
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4VNeutronBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4ExcitationHandler.hh"
|
||||
#include "G4PreCompoundModel.hh"
|
||||
@@ -57,6 +70,7 @@ class G4FTFPNeutronBuilder : public G4VNeutronBuilder
|
||||
virtual void Build(G4NeutronInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
private:
|
||||
G4TheoFSGenerator * theModel;
|
||||
@@ -66,9 +80,8 @@ class G4FTFPNeutronBuilder : public G4VNeutronBuilder
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
|
||||
G4double theMax;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFPPiKBuilder.hh,v 1.4 2009/04/23 18:54:57 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFPPiKBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4FTFPPiKBuilder_h
|
||||
#define G4FTFPPiKBuilder_h 1
|
||||
|
||||
@@ -61,6 +75,7 @@ class G4FTFPPiKBuilder : public G4VPiKBuilder
|
||||
virtual void Build(G4KaonZeroSInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
private:
|
||||
G4TheoFSGenerator * theModel;
|
||||
@@ -70,8 +85,9 @@ class G4FTFPPiKBuilder : public G4VPiKBuilder
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4PiNuclearCrossSection thePiData;
|
||||
G4PiNuclearCrossSection* thePiData;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFPProtonBuilder.hh,v 1.4 2009/04/23 18:54:57 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFPProtonBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4FTFPProtonBuilder_h
|
||||
#define G4FTFPProtonBuilder_h
|
||||
|
||||
@@ -34,7 +48,6 @@
|
||||
#include "G4ProtonInelasticProcess.hh"
|
||||
#include "G4VProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4ExcitationHandler.hh"
|
||||
#include "G4PreCompoundModel.hh"
|
||||
@@ -44,8 +57,6 @@
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
class G4FTFPProtonBuilder : public G4VProtonBuilder
|
||||
{
|
||||
public:
|
||||
@@ -57,6 +68,7 @@ class G4FTFPProtonBuilder : public G4VProtonBuilder
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
private:
|
||||
G4TheoFSGenerator * theModel;
|
||||
@@ -66,8 +78,8 @@ class G4FTFPProtonBuilder : public G4VProtonBuilder
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronHElasticPhysics.hh,v 1.2 2007/11/15 18:08:11 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4HadronHElasticPhysics.hh,v 1.4 2009/11/28 17:35:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -50,7 +50,8 @@
|
||||
class G4HadronHElasticPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4HadronHElasticPhysics(G4int ver = 0, G4bool hp = false);
|
||||
G4HadronHElasticPhysics(G4int ver = 0, G4bool hp = false,
|
||||
const G4String& type = "");
|
||||
virtual ~G4HadronHElasticPhysics();
|
||||
|
||||
public:
|
||||
@@ -65,15 +66,10 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
G4HadronicInteraction* model;
|
||||
G4HadronicInteraction* neutronModel;
|
||||
G4HadronicInteraction* neutronHPModel;
|
||||
|
||||
G4String mname;
|
||||
|
||||
G4int verbose;
|
||||
G4bool hpFlag;
|
||||
G4bool wasActivated;
|
||||
G4String subtype;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4InclAblaNeutronBuilder_h
|
||||
#define G4InclAblaNeutronBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronFissionProcess.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4VNeutronBuilder.hh"
|
||||
|
||||
#include "G4InclAblaCascadeInterface.hh"
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
|
||||
/**
|
||||
* Builder for neutron processes using the INCL/ABLA intra-nuclear
|
||||
* cascade and de-excitation models.
|
||||
*
|
||||
* By default the INCL/ABLA models are used for projectile energies 0 - 3 GeV.
|
||||
*
|
||||
* The builder uses INCL cascade model with build-in ABLA
|
||||
* de-excitation. This is implemented in interface
|
||||
* G4InclAblaCascadeInterface.
|
||||
*
|
||||
* @see G4InclAblaCascadeInterface
|
||||
* @see G4InclAblaProtonBuilder
|
||||
* @see G4InclAblaPiKBuilder
|
||||
*/
|
||||
class G4InclAblaNeutronBuilder : public G4VNeutronBuilder
|
||||
{
|
||||
public:
|
||||
G4InclAblaNeutronBuilder();
|
||||
virtual ~G4InclAblaNeutronBuilder();
|
||||
|
||||
public:
|
||||
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;}
|
||||
|
||||
private:
|
||||
G4InclAblaCascadeInterface * theModel;
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4InclAblaPiKBuilder_h
|
||||
#define G4InclAblaPiKBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronFissionProcess.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4VPiKBuilder.hh"
|
||||
|
||||
#include "G4PiNuclearCrossSection.hh"
|
||||
#include "G4InclAblaCascadeInterface.hh"
|
||||
#include "G4CascadeInterface.hh"
|
||||
|
||||
/**
|
||||
* Builder for pion processes using the INCL/ABLA intra-nuclear
|
||||
* cascade and de-excitation models.
|
||||
*
|
||||
* By default the INCL/ABLA models are used for projectile energies 0 - 3 GeV.
|
||||
*
|
||||
* The builder uses INCL cascade model with build-in ABLA
|
||||
* de-excitation. This is implemented in interface
|
||||
* G4InclAblaCascadeInterface.
|
||||
*
|
||||
* @see G4InclAblaCascadeInterface
|
||||
* @see G4InclAblaProtonBuilder
|
||||
* @see G4InclAblaNeutronBuilder
|
||||
*/
|
||||
class G4InclAblaPiKBuilder : public G4VPiKBuilder
|
||||
{
|
||||
public:
|
||||
G4InclAblaPiKBuilder();
|
||||
virtual ~G4InclAblaPiKBuilder();
|
||||
|
||||
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);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
private:
|
||||
G4PiNuclearCrossSection thePiData;
|
||||
G4InclAblaCascadeInterface * theModel;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
G4CascadeInterface *theBertiniModel;
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4InclAblaProtonBuilder_h
|
||||
#define G4InclAblaProtonBuilder_h
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronFissionProcess.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4ProtonInelasticProcess.hh"
|
||||
#include "G4VProtonBuilder.hh"
|
||||
|
||||
#include "G4InclAblaCascadeInterface.hh"
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
/**
|
||||
* Builder for proton processes using the INCL/ABLA intra-nuclear
|
||||
* cascade and de-excitation models.
|
||||
*
|
||||
* By default the INCL/ABLA models are used for projectile energies 0 - 3 GeV.
|
||||
*
|
||||
* The builder uses INCL cascade model with build-in ABLA
|
||||
* de-excitation. This is implemented in interface
|
||||
* G4InclAblaCascadeInterface.
|
||||
*
|
||||
* @see G4InclAblaCascadeInterface
|
||||
* @see G4InclAblaNeutronBuilder
|
||||
* @see G4InclAblaPiKBuilder
|
||||
*/
|
||||
class G4InclAblaProtonBuilder : public G4VProtonBuilder
|
||||
{
|
||||
public:
|
||||
G4InclAblaProtonBuilder();
|
||||
virtual ~G4InclAblaProtonBuilder();
|
||||
|
||||
public:
|
||||
/**
|
||||
* Build elastic process.
|
||||
*
|
||||
* No elastic process is built.
|
||||
*/
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
|
||||
/**
|
||||
* Build inelastic process.
|
||||
*/
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
|
||||
/**
|
||||
* Set the minimum energy limit for the model.
|
||||
*/
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
/**
|
||||
* Set the maximum energy limit for the model.
|
||||
*/
|
||||
void SetMaxEnergy(G4double aM) {theMax = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
G4InclAblaCascadeInterface * theModel;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4IonInclAblaPhysics.hh,v 1.1 2009/07/19 18:24:03 kaitanie Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4IonInclAblaBuilder
|
||||
//
|
||||
// Author: P. Kaitaniemi 18.05.2009
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4IonInclAblaPhysics_h
|
||||
#define G4IonInclAblaPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
#include "G4LEDeuteronInelastic.hh"
|
||||
#include "G4LETritonInelastic.hh"
|
||||
#include "G4LEAlphaInelastic.hh"
|
||||
|
||||
#include <vector>
|
||||
|
||||
class G4HadronInelasticProcess;
|
||||
class G4HadronicInteraction;
|
||||
class G4TripathiLightCrossSection;
|
||||
class G4TripathiCrossSection;
|
||||
class G4IonsShenCrossSection;
|
||||
|
||||
|
||||
class G4IonInclAblaPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4IonInclAblaPhysics(const G4String& name="ions", G4int verb = 0);
|
||||
virtual ~G4IonInclAblaPhysics();
|
||||
|
||||
// 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:
|
||||
|
||||
void AddProcess(const G4String&,
|
||||
G4ParticleDefinition*,
|
||||
G4HadronicInteraction*,
|
||||
G4HadronicInteraction*,
|
||||
const G4double);
|
||||
std::vector<G4HadronInelasticProcess*> p_list;
|
||||
std::vector<G4HadronicInteraction*> model_list;
|
||||
|
||||
G4TripathiCrossSection* fTripathi;
|
||||
G4TripathiLightCrossSection* fTripathiLight;
|
||||
G4IonsShenCrossSection* fShen;
|
||||
|
||||
G4LEDeuteronInelastic* fLEDModel;
|
||||
G4LETritonInelastic* fLETModel;
|
||||
G4LEAlphaInelastic* fLEAModel;
|
||||
|
||||
G4double emin;
|
||||
G4double emax_d, emax_t, emax_he3, emax_alpha;
|
||||
G4double emaxLHEP;
|
||||
|
||||
G4int verbose;
|
||||
G4bool wasActivated;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4IonQMDPhysics.hh,v 1.1 2009/11/27 17:25:15 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4IonBinaryCascadeBuilder
|
||||
// Created from G4IonBinaryCascadePhysics
|
||||
//
|
||||
// Author: G.Folger
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4IonQMDPhysics_h
|
||||
#define G4IonQMDPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
#include "G4LEDeuteronInelastic.hh"
|
||||
#include "G4LETritonInelastic.hh"
|
||||
#include "G4LEAlphaInelastic.hh"
|
||||
|
||||
#include <vector>
|
||||
|
||||
class G4HadronInelasticProcess;
|
||||
class G4HadronicInteraction;
|
||||
class G4BinaryLightIonReaction;
|
||||
class G4QMDReaction;
|
||||
class G4TripathiLightCrossSection;
|
||||
class G4TripathiCrossSection;
|
||||
class G4IonsShenCrossSection;
|
||||
|
||||
|
||||
class G4IonQMDPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4IonQMDPhysics(const G4String& name="ions", G4int verb = 0);
|
||||
virtual ~G4IonQMDPhysics();
|
||||
|
||||
// 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:
|
||||
|
||||
void AddProcess(const G4String&,
|
||||
G4ParticleDefinition*,
|
||||
G4BinaryLightIonReaction*,
|
||||
G4QMDReaction*,
|
||||
G4HadronicInteraction*);
|
||||
|
||||
std::vector<G4HadronInelasticProcess*> p_list;
|
||||
std::vector<G4HadronicInteraction*> model_list;
|
||||
|
||||
G4TripathiCrossSection* fTripathi;
|
||||
G4TripathiLightCrossSection* fTripathiLight;
|
||||
G4IonsShenCrossSection* fShen;
|
||||
|
||||
G4LEDeuteronInelastic* fLEDModel;
|
||||
G4LETritonInelastic* fLETModel;
|
||||
G4LEAlphaInelastic* fLEAModel;
|
||||
|
||||
G4double eminBIC;
|
||||
|
||||
G4double eminQMD;
|
||||
G4double emaxQMD;
|
||||
|
||||
G4double emaxLHEP;
|
||||
|
||||
G4double overlap;
|
||||
|
||||
G4int verbose;
|
||||
G4bool wasActivated;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -101,72 +101,72 @@ class G4MiscLHEPBuilder
|
||||
private:
|
||||
|
||||
// anti-proton
|
||||
G4AntiProtonInelasticProcess theAntiProtonInelastic;
|
||||
G4AntiProtonInelasticProcess* theAntiProtonInelastic;
|
||||
G4LEAntiProtonInelastic* theLEAntiProtonModel;
|
||||
G4HEAntiProtonInelastic* theHEAntiProtonModel;
|
||||
|
||||
// anti-neutron
|
||||
G4AntiNeutronInelasticProcess theAntiNeutronInelastic;
|
||||
G4AntiNeutronInelasticProcess* theAntiNeutronInelastic;
|
||||
G4LEAntiNeutronInelastic* theLEAntiNeutronModel;
|
||||
G4HEAntiNeutronInelastic* theHEAntiNeutronModel;
|
||||
|
||||
// Lambda
|
||||
G4LambdaInelasticProcess theLambdaInelastic;
|
||||
G4LambdaInelasticProcess* theLambdaInelastic;
|
||||
G4LELambdaInelastic* theLELambdaModel;
|
||||
G4HELambdaInelastic* theHELambdaModel;
|
||||
|
||||
// AntiLambda
|
||||
G4AntiLambdaInelasticProcess theAntiLambdaInelastic;
|
||||
G4AntiLambdaInelasticProcess* theAntiLambdaInelastic;
|
||||
G4LEAntiLambdaInelastic* theLEAntiLambdaModel;
|
||||
G4HEAntiLambdaInelastic* theHEAntiLambdaModel;
|
||||
|
||||
// SigmaMinus
|
||||
G4SigmaMinusInelasticProcess theSigmaMinusInelastic;
|
||||
G4SigmaMinusInelasticProcess* theSigmaMinusInelastic;
|
||||
G4LESigmaMinusInelastic* theLESigmaMinusModel;
|
||||
G4HESigmaMinusInelastic* theHESigmaMinusModel;
|
||||
|
||||
// AntiSigmaMinus
|
||||
G4AntiSigmaMinusInelasticProcess theAntiSigmaMinusInelastic;
|
||||
G4AntiSigmaMinusInelasticProcess* theAntiSigmaMinusInelastic;
|
||||
G4LEAntiSigmaMinusInelastic* theLEAntiSigmaMinusModel;
|
||||
G4HEAntiSigmaMinusInelastic* theHEAntiSigmaMinusModel;
|
||||
|
||||
// SigmaPlus
|
||||
G4SigmaPlusInelasticProcess theSigmaPlusInelastic;
|
||||
G4SigmaPlusInelasticProcess* theSigmaPlusInelastic;
|
||||
G4LESigmaPlusInelastic* theLESigmaPlusModel;
|
||||
G4HESigmaPlusInelastic* theHESigmaPlusModel;
|
||||
|
||||
// AntiSigmaPlus
|
||||
G4AntiSigmaPlusInelasticProcess theAntiSigmaPlusInelastic;
|
||||
G4AntiSigmaPlusInelasticProcess* theAntiSigmaPlusInelastic;
|
||||
G4LEAntiSigmaPlusInelastic* theLEAntiSigmaPlusModel;
|
||||
G4HEAntiSigmaPlusInelastic* theHEAntiSigmaPlusModel;
|
||||
|
||||
// XiZero
|
||||
G4XiZeroInelasticProcess theXiZeroInelastic;
|
||||
G4XiZeroInelasticProcess* theXiZeroInelastic;
|
||||
G4LEXiZeroInelastic* theLEXiZeroModel;
|
||||
G4HEXiZeroInelastic* theHEXiZeroModel;
|
||||
|
||||
// AntiXiZero
|
||||
G4AntiXiZeroInelasticProcess theAntiXiZeroInelastic;
|
||||
G4AntiXiZeroInelasticProcess* theAntiXiZeroInelastic;
|
||||
G4LEAntiXiZeroInelastic* theLEAntiXiZeroModel;
|
||||
G4HEAntiXiZeroInelastic* theHEAntiXiZeroModel;
|
||||
|
||||
// XiMinus
|
||||
G4XiMinusInelasticProcess theXiMinusInelastic;
|
||||
G4XiMinusInelasticProcess* theXiMinusInelastic;
|
||||
G4LEXiMinusInelastic* theLEXiMinusModel;
|
||||
G4HEXiMinusInelastic* theHEXiMinusModel;
|
||||
|
||||
// AntiXiMinus
|
||||
G4AntiXiMinusInelasticProcess theAntiXiMinusInelastic;
|
||||
G4AntiXiMinusInelasticProcess* theAntiXiMinusInelastic;
|
||||
G4LEAntiXiMinusInelastic* theLEAntiXiMinusModel;
|
||||
G4HEAntiXiMinusInelastic* theHEAntiXiMinusModel;
|
||||
|
||||
// OmegaMinus
|
||||
G4OmegaMinusInelasticProcess theOmegaMinusInelastic;
|
||||
G4OmegaMinusInelasticProcess* theOmegaMinusInelastic;
|
||||
G4LEOmegaMinusInelastic* theLEOmegaMinusModel;
|
||||
G4HEOmegaMinusInelastic* theHEOmegaMinusModel;
|
||||
|
||||
// AntiOmegaMinus
|
||||
G4AntiOmegaMinusInelasticProcess theAntiOmegaMinusInelastic;
|
||||
G4AntiOmegaMinusInelasticProcess* theAntiOmegaMinusInelastic;
|
||||
G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusModel;
|
||||
G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusModel;
|
||||
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4MiscQGSCBuilder
|
||||
//
|
||||
// Author: 2009 M. Kossov (on the basis of the G4MiscLHEPBuilder)
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4MiscQGSCBuilder_h
|
||||
#define G4MiscQGSCBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4HadronInelasticProcess.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4StringChipsParticleLevelInterface.hh"
|
||||
#include "G4QGSModel.hh"
|
||||
#include "G4QGSParticipants.hh"
|
||||
#include "G4QGSMFragmentation.hh"
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
//class G4HadronicProcess;
|
||||
//class G4TheoFSGenerator;
|
||||
//class G4StringChipsParticleLevelInterface;
|
||||
//class G4ExcitedStringDecay;
|
||||
//class G4HadronProcessStore;
|
||||
//class G4QuasiElasticChannel;
|
||||
|
||||
class G4MiscQGSCBuilder
|
||||
//class G4MiscQGSCBuilder : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4MiscQGSCBuilder(G4int verbose);
|
||||
virtual ~G4MiscQGSCBuilder();
|
||||
|
||||
public:
|
||||
void Build();
|
||||
|
||||
protected:
|
||||
// the particle table has the complete List of existing particle types
|
||||
G4ParticleTable* theParticleTable;
|
||||
G4ParticleTable::G4PTblDicIterator* theParticleIterator;
|
||||
|
||||
private:
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4StringChipsParticleLevelInterface * theCascade;
|
||||
G4QGSModel< G4QGSParticipants > * theQGSCModel;
|
||||
G4ExcitedStringDecay * theQGSCDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4int verbose;
|
||||
G4bool wasActivated;
|
||||
};
|
||||
// 2009 by M. Kossov
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,151 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4OpticalPhysics
|
||||
//
|
||||
// Author: P.Gumplinger 30.09.2009
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// This class provides construction of default optical physics
|
||||
//
|
||||
|
||||
#ifndef G4OpticalPhysics_h
|
||||
#define G4OpticalPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
#include "G4OpticalPhysicsMessenger.hh"
|
||||
|
||||
#include "G4OpWLS.hh"
|
||||
#include "G4Scintillation.hh"
|
||||
#include "G4Cerenkov.hh"
|
||||
|
||||
#include "G4OpAbsorption.hh"
|
||||
#include "G4OpRayleigh.hh"
|
||||
#include "G4OpBoundaryProcess.hh"
|
||||
|
||||
#include "G4OpticalSurface.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4OpticalPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
|
||||
G4OpticalPhysics(G4int verbose = 0, const G4String& name = "Optical");
|
||||
virtual ~G4OpticalPhysics();
|
||||
|
||||
protected:
|
||||
|
||||
// construct particle and physics
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
|
||||
/// Not implemented
|
||||
G4OpticalPhysics(const G4OpticalPhysics& right);
|
||||
/// Not implemented
|
||||
G4OpticalPhysics& operator=(const G4OpticalPhysics& right);
|
||||
|
||||
public:
|
||||
|
||||
// get methods
|
||||
virtual G4Scintillation* GetScintillationProcess()
|
||||
{ return fScintillationProcess; }
|
||||
virtual G4Cerenkov* GetCerenkovProcess() { return fCerenkovProcess; }
|
||||
virtual G4OpWLS* GetOpWLSProcess() { return fOpWLSProcess; }
|
||||
|
||||
virtual G4OpAbsorption* GetOpAbsorptionProcess()
|
||||
{ return fOpAbsorptionProcess; }
|
||||
virtual G4OpRayleigh* GetOpRayleighProcess()
|
||||
{ return fOpRayleighScatteringProcess; }
|
||||
virtual G4OpBoundaryProcess* GetOpBoundaryProcess()
|
||||
{ return fOpBoundaryProcess; }
|
||||
|
||||
// set methods
|
||||
|
||||
void SetMaxNumPhotonsPerStep(G4int );
|
||||
void SetMaxBetaChangePerStep(G4double );
|
||||
void SetScintillationYieldFactor(G4double );
|
||||
void SetScintillationExcitationRatio(G4double );
|
||||
void SetOpticalSurfaceModel(G4OpticalSurfaceModel );
|
||||
|
||||
void SetWLSTimeProfile(G4String );
|
||||
void AddScintillationSaturation(G4EmSaturation* );
|
||||
|
||||
void SetTrackSecondariesFirst(G4bool );
|
||||
|
||||
private:
|
||||
|
||||
// data members
|
||||
|
||||
G4bool wasActivated;
|
||||
|
||||
G4OpticalPhysicsMessenger* fMessenger;
|
||||
|
||||
G4Scintillation* fScintillationProcess;
|
||||
G4Cerenkov* fCerenkovProcess;
|
||||
G4OpWLS* fOpWLSProcess;
|
||||
|
||||
G4OpAbsorption* fOpAbsorptionProcess;
|
||||
G4OpRayleigh* fOpRayleighScatteringProcess;
|
||||
G4OpBoundaryProcess* fOpBoundaryProcess;
|
||||
|
||||
/// max number of Cerenkov photons per step
|
||||
G4int fMaxNumPhotons;
|
||||
|
||||
/// max change of beta per step
|
||||
G4double fMaxBetaChange;
|
||||
|
||||
/// scintillation yield factor
|
||||
G4double fYieldFactor;
|
||||
|
||||
/// scintillation excitation ratio
|
||||
G4double fExcitationRatio;
|
||||
|
||||
/// the optical surface model (glisur or unified)
|
||||
G4OpticalSurfaceModel fSurfaceModel;
|
||||
|
||||
/// the WLS process time profile
|
||||
G4String fProfile;
|
||||
|
||||
/// option to track secondaries before finishing their parent track
|
||||
G4bool fTrackSecondariesFirst;
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,103 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
|
||||
#ifndef G4OpticalPhysicsMessenger_h
|
||||
#define G4OpticalPhysicsMessenger_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class G4VProcess;
|
||||
class G4OpticalPhysics;
|
||||
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithABool;
|
||||
class G4UIcmdWithADouble;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithAnInteger;
|
||||
|
||||
class G4OpticalPhysicsMessenger: public G4UImessenger
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4OpticalPhysicsMessenger(G4OpticalPhysics*);
|
||||
~G4OpticalPhysicsMessenger();
|
||||
|
||||
// methods
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
|
||||
/// Not implemented
|
||||
G4OpticalPhysicsMessenger();
|
||||
/// Not implemented
|
||||
G4OpticalPhysicsMessenger(const G4OpticalPhysicsMessenger& right);
|
||||
/// Not implemented
|
||||
G4OpticalPhysicsMessenger& operator=(const G4OpticalPhysicsMessenger& right);
|
||||
|
||||
// data members
|
||||
|
||||
/// associated clas
|
||||
G4OpticalPhysics* fOpticalPhysics;
|
||||
|
||||
/// command directory
|
||||
G4UIdirectory* fDir;
|
||||
|
||||
/// selected optical process
|
||||
G4VProcess* fSelectedProcess;
|
||||
|
||||
/// selectOpProcess command
|
||||
G4UIcmdWithAString* fSelectOpProcessCmd;
|
||||
|
||||
/// setCerenkovActivation command
|
||||
G4UIcmdWithABool* fSetOpProcessActivationCmd;
|
||||
|
||||
/// setCerenkovVerbose command
|
||||
G4UIcmdWithAnInteger* fSetOpProcessVerboseCmd;
|
||||
|
||||
/// setCerenkovMaxPhotons command
|
||||
G4UIcmdWithAnInteger* fSetCerenkovMaxPhotonsCmd;
|
||||
|
||||
/// setCerenkovMaxBetaChange command
|
||||
G4UIcmdWithADouble* fSetCerenkovMaxBetaChangeCmd;
|
||||
|
||||
/// setScintillationYieldFactor command
|
||||
G4UIcmdWithADouble* fSetScintillationYieldFactorCmd;
|
||||
|
||||
/// setOpticalSurfaceModel command
|
||||
G4UIcmdWithAString* fSetOpticalSurfaceModelCmd;
|
||||
|
||||
/// setWLSTimeProfile command
|
||||
G4UIcmdWithAString* fSetWLSTimeProfileCmd;
|
||||
|
||||
/// setTrackSecondariesFirst command
|
||||
G4UIcmdWithABool* fSetTrackSecondariesFirstCmd;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PrecoNeutronBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4PrecoNeutronBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4PrecoNeutronBuilder_h
|
||||
#define G4PrecoNeutronBuilder_h 1
|
||||
|
||||
@@ -54,7 +68,6 @@ class G4PrecoNeutronBuilder : public G4VNeutronBuilder
|
||||
|
||||
private:
|
||||
G4PreCompoundModel * theModel;
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PrecoProtonBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4PrecoProtonBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4PrecoProtonBuilder_h
|
||||
#define G4PrecoProtonBuilder_h
|
||||
|
||||
@@ -35,7 +49,6 @@
|
||||
#include "G4VProtonBuilder.hh"
|
||||
|
||||
#include "G4PreCompoundModel.hh"
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
class G4PrecoProtonBuilder : public G4VProtonBuilder
|
||||
{
|
||||
@@ -50,7 +63,7 @@ class G4PrecoProtonBuilder : public G4VProtonBuilder
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
|
||||
G4PreCompoundModel * theModel;
|
||||
G4double theMin;
|
||||
G4double theMax;
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4QAtomicPhysics.hh,v 1.1 2009/11/20 10:24:28 mkossov Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QAtomicPhysics
|
||||
//
|
||||
// Author: M. Kosov 20.11.2009 (similar to G4EmStandardPhysics)
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// This class provides construction of CHIPS-modified Electromagnetic physics
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
#ifndef G4QAtomicPhysics_h
|
||||
#define G4QAtomicPhysics_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4QAtomicPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4QAtomicPhysics(G4int ver = 0, const G4String& name = "G4QAtomic");
|
||||
virtual ~G4QAtomicPhysics();
|
||||
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
private:
|
||||
G4int verbose;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QCaptureAtRestPhysics.hh,v 1.1 2009/11/16 19:12:10 mkossov Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QCaptureAtRestPhysics
|
||||
//
|
||||
// Author: 16 Nov 2009 M. Kosov
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4QCaptureAtRestPhysics_h
|
||||
#define G4QCaptureAtRestPhysics_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4LeptonConstructor.hh"
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4QCaptureAtRest.hh"
|
||||
|
||||
class G4QCaptureAtRest;
|
||||
|
||||
class G4QCaptureAtRestPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4QCaptureAtRestPhysics(const G4String& name = "nuclear_capture", G4int ver = 1);
|
||||
virtual ~G4QCaptureAtRestPhysics();
|
||||
|
||||
public:
|
||||
// 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:
|
||||
|
||||
G4QCaptureAtRest* captureProcess;
|
||||
|
||||
G4int verbose;
|
||||
G4bool wasActivated;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QEmExtraPhysics.hh,v 1.1 2007/05/23 17:38:35 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4QEmExtraPhysics.hh,v 1.2 2009/11/16 19:12:10 mkossov Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -32,7 +32,7 @@
|
||||
//
|
||||
// Author: 11 April 2006 V. Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
// Modified: 19 Nov 2009 M.Kosov: G4QInelastic instead of G4QCollision
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -43,7 +43,7 @@
|
||||
#include "globals.hh"
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
|
||||
class G4QCollision;
|
||||
class G4QInelastic;
|
||||
|
||||
class G4QEmExtraPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
G4QCollision* hProcess;
|
||||
G4QInelastic* hProcess;
|
||||
|
||||
G4int verbose;
|
||||
G4bool wasActivated;
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSBinaryNeutronBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSBinaryNeutronBuilder
|
||||
//
|
||||
// Author: 2006 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QGSBinaryNeutronBuilder_h
|
||||
#define G4QGSBinaryNeutronBuilder_h 1
|
||||
|
||||
@@ -34,7 +48,6 @@
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4VNeutronBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4ExcitationHandler.hh"
|
||||
#include "G4PreCompoundModel.hh"
|
||||
@@ -67,7 +80,6 @@ class G4QGSBinaryNeutronBuilder : public G4VNeutronBuilder
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSBinaryPiKBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSBinaryPiKBuilder
|
||||
//
|
||||
// Author: 2006 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QGSBinaryPiKBuilder_h
|
||||
#define G4QGSBinaryPiKBuilder_h 1
|
||||
|
||||
@@ -64,7 +78,7 @@ class G4QGSBinaryPiKBuilder : public G4VPiKBuilder
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4PiNuclearCrossSection thePiData;
|
||||
G4PiNuclearCrossSection* thePiData;
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4PreCompoundModel * thePreEquilib;
|
||||
G4BinaryCascade * theCascade;
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSBinaryProtonBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSBinaryProtonBuilder
|
||||
//
|
||||
// Author: 2006 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QGSBinaryProtonBuilder_h
|
||||
#define G4QGSBinaryProtonBuilder_h
|
||||
|
||||
@@ -34,7 +48,6 @@
|
||||
#include "G4ProtonInelasticProcess.hh"
|
||||
#include "G4VProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4ExcitationHandler.hh"
|
||||
#include "G4PreCompoundModel.hh"
|
||||
@@ -45,8 +58,6 @@
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
class G4QGSBinaryProtonBuilder : public G4VProtonBuilder
|
||||
{
|
||||
public:
|
||||
@@ -60,7 +71,7 @@ class G4QGSBinaryProtonBuilder : public G4VProtonBuilder
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4PreCompoundModel * thePreEquilib;
|
||||
G4BinaryCascade * theCascade;
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSBuilder.hh,v 1.1 2009/10/04 16:29:54 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSBuilder
|
||||
//
|
||||
// Author: 28 June 2009 V.Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QGSBuilder_h
|
||||
#define G4QGSBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VHadronModelBuilder.hh"
|
||||
#include "G4QGSModel.hh"
|
||||
#include "G4QGSParticipants.hh"
|
||||
|
||||
class G4ExcitedStringDecay;
|
||||
class G4QuasiElasticChannel;
|
||||
class G4ProjectileDiffractiveChannel;
|
||||
|
||||
class G4QGSBuilder : public G4VHadronModelBuilder
|
||||
{
|
||||
public:
|
||||
|
||||
G4QGSBuilder(const G4String& name ="",
|
||||
G4bool quasiElastic=true,
|
||||
G4bool projectileDiffraction=false);
|
||||
|
||||
virtual ~G4QGSBuilder();
|
||||
|
||||
protected:
|
||||
|
||||
virtual G4HadronicInteraction* BuildModel();
|
||||
|
||||
private:
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4QGSBuilder(G4QGSBuilder &);
|
||||
G4QGSBuilder & operator=(const G4QGSBuilder &right);
|
||||
|
||||
G4QGSModel< G4QGSParticipants > * theQGStringModel;
|
||||
|
||||
G4ExcitedStringDecay* theQGStringDecay;
|
||||
G4QuasiElasticChannel* theQuasiElastic;
|
||||
|
||||
G4ProjectileDiffractiveChannel* theProjectileDiffraction;
|
||||
|
||||
G4bool quasielFlag;
|
||||
G4bool diffFlag;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSCEflowNeutronBuilder.hh,v 1.3 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSCEflowNeutronBuilder
|
||||
//
|
||||
// Author: 2006 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QGSCEflowNeutronBuilder_h
|
||||
#define G4QGSCEflowNeutronBuilder_h 1
|
||||
|
||||
@@ -34,7 +48,6 @@
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4VNeutronBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4StringChipsParticleLevelInterface.hh"
|
||||
#include "G4QGSModel.hh"
|
||||
@@ -64,7 +77,6 @@ class G4QGSCEflowNeutronBuilder : public G4VNeutronBuilder
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSCEflowPiKBuilder.hh,v 1.3 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSCEflowPiKBuilder
|
||||
//
|
||||
// Author: 2006 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QGSCEflowPiKBuilder_h
|
||||
#define G4QGSCEflowPiKBuilder_h 1
|
||||
|
||||
@@ -62,7 +76,7 @@ class G4QGSCEflowPiKBuilder : public G4VPiKBuilder
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4PiNuclearCrossSection thePiCross;
|
||||
G4PiNuclearCrossSection* thePiCross;
|
||||
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4StringChipsParticleLevelInterface * theCascade;
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSCEflowProtonBuilder.hh,v 1.3 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSCEflowProtonBuilder
|
||||
//
|
||||
// Author: 2006 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QGSCEflowProtonBuilder_h
|
||||
#define G4QGSCEflowProtonBuilder_h
|
||||
|
||||
@@ -43,8 +57,6 @@
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
class G4QGSCEflowProtonBuilder : public G4VProtonBuilder
|
||||
{
|
||||
public:
|
||||
@@ -58,7 +70,7 @@ class G4QGSCEflowProtonBuilder : public G4VProtonBuilder
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4StringChipsParticleLevelInterface * theCascade;
|
||||
G4QGSModel< G4QGSParticipants > * theStringModel;
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSCNeutronBuilder.hh,v 1.4 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSCNeutronBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QGSCNeutronBuilder_h
|
||||
#define G4QGSCNeutronBuilder_h 1
|
||||
|
||||
@@ -34,7 +48,6 @@
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4VNeutronBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4QStringChipsParticleLevelInterface.hh"
|
||||
#include "G4QGSModel.hh"
|
||||
@@ -64,9 +77,7 @@ class G4QGSCNeutronBuilder : public G4VNeutronBuilder
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSCPiKBuilder.hh,v 1.4 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSCPiKBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QGSCPiKBuilder_h
|
||||
#define G4QGSCPiKBuilder_h 1
|
||||
|
||||
@@ -62,7 +76,7 @@ class G4QGSCPiKBuilder : public G4VPiKBuilder
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4PiNuclearCrossSection thePiCross;
|
||||
G4PiNuclearCrossSection* thePiCross;
|
||||
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4QStringChipsParticleLevelInterface * theCascade;
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSCProtonBuilder.hh,v 1.4 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSCProtonBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QGSCProtonBuilder_h
|
||||
#define G4QGSCProtonBuilder_h
|
||||
|
||||
@@ -43,8 +57,6 @@
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
class G4QGSCProtonBuilder : public G4VProtonBuilder
|
||||
{
|
||||
public:
|
||||
@@ -58,7 +70,7 @@ class G4QGSCProtonBuilder : public G4VProtonBuilder
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4QStringChipsParticleLevelInterface * theCascade;
|
||||
G4QGSModel< G4QGSParticipants > * theStringModel;
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4QGSC_CHIPSNeutronBuilder_h
|
||||
#define G4QGSC_CHIPSNeutronBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronFissionProcess.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4VNeutronBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4StringChipsParticleLevelInterface.hh"
|
||||
#include "G4QGSModel.hh"
|
||||
#include "G4QGSParticipants.hh"
|
||||
#include "G4QGSMFragmentation.hh"
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
|
||||
class G4QGSC_CHIPSNeutronBuilder : public G4VNeutronBuilder
|
||||
{
|
||||
public:
|
||||
G4QGSC_CHIPSNeutronBuilder(G4bool quasiElastic=false);
|
||||
virtual ~G4QGSC_CHIPSNeutronBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess * ){}
|
||||
virtual void Build(G4HadronFissionProcess * ){}
|
||||
virtual void Build(G4HadronCaptureProcess * ){}
|
||||
virtual void Build(G4NeutronInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4StringChipsParticleLevelInterface * theCascade;
|
||||
G4QGSModel< G4QGSParticipants > * theStringModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
// 2009 by M. Kosov
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4QGSC_CHIPSPiKBuilder_h
|
||||
#define G4QGSC_CHIPSPiKBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronFissionProcess.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4VPiKBuilder.hh"
|
||||
|
||||
#include "G4PiNuclearCrossSection.hh"
|
||||
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4StringChipsParticleLevelInterface.hh"
|
||||
#include "G4QGSModel.hh"
|
||||
#include "G4QGSParticipants.hh"
|
||||
#include "G4QGSMFragmentation.hh"
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
|
||||
class G4QGSC_CHIPSPiKBuilder : public G4VPiKBuilder
|
||||
{
|
||||
public:
|
||||
G4QGSC_CHIPSPiKBuilder(G4bool quasiElastic=false);
|
||||
virtual ~G4QGSC_CHIPSPiKBuilder();
|
||||
|
||||
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);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4PiNuclearCrossSection thePiCross;
|
||||
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4StringChipsParticleLevelInterface * theCascade;
|
||||
G4QGSModel< G4QGSParticipants > * theStringModel;
|
||||
G4QGSMFragmentation theFragmentation;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
// 2009 by M. Kosov
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4QGSC_CHIPSProtonBuilder_h
|
||||
#define G4QGSC_CHIPSProtonBuilder_h
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronFissionProcess.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4ProtonInelasticProcess.hh"
|
||||
#include "G4VProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4StringChipsParticleLevelInterface.hh"
|
||||
#include "G4QGSModel.hh"
|
||||
#include "G4QGSParticipants.hh"
|
||||
#include "G4QGSMFragmentation.hh"
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
class G4QGSC_CHIPSProtonBuilder : public G4VProtonBuilder
|
||||
{
|
||||
public:
|
||||
G4QGSC_CHIPSProtonBuilder(G4bool quasiElastic=false);
|
||||
virtual ~G4QGSC_CHIPSProtonBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4StringChipsParticleLevelInterface * theCascade;
|
||||
G4QGSModel< G4QGSParticipants > * theStringModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
// 2009 by M. Kosov
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4QGSC_QGSCNeutronBuilder_h
|
||||
#define G4QGSC_QGSCNeutronBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronFissionProcess.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4VNeutronBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4QStringChipsParticleLevelInterface.hh"
|
||||
#include "G4QGSModel.hh"
|
||||
#include "G4QGSParticipants.hh"
|
||||
#include "G4QGSMFragmentation.hh"
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
|
||||
class G4QGSC_QGSCNeutronBuilder : public G4VNeutronBuilder
|
||||
{
|
||||
public:
|
||||
G4QGSC_QGSCNeutronBuilder(G4bool quasiElastic=false);
|
||||
virtual ~G4QGSC_QGSCNeutronBuilder();
|
||||
|
||||
public:
|
||||
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;
|
||||
G4QStringChipsParticleLevelInterface * theCascade;
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
// 2009 by M. Kosov
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4QGSC_QGSCPiKBuilder_h
|
||||
#define G4QGSC_QGSCPiKBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronFissionProcess.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4VPiKBuilder.hh"
|
||||
|
||||
#include "G4PiNuclearCrossSection.hh"
|
||||
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4QStringChipsParticleLevelInterface.hh"
|
||||
#include "G4QGSModel.hh"
|
||||
#include "G4QGSParticipants.hh"
|
||||
#include "G4QGSMFragmentation.hh"
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
|
||||
class G4QGSC_QGSCPiKBuilder : public G4VPiKBuilder
|
||||
{
|
||||
public:
|
||||
G4QGSC_QGSCPiKBuilder(G4bool quasiElastic=false);
|
||||
virtual ~G4QGSC_QGSCPiKBuilder();
|
||||
|
||||
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);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4PiNuclearCrossSection thePiCross;
|
||||
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4QStringChipsParticleLevelInterface * theCascade;
|
||||
G4QGSModel< G4QGSParticipants > * theStringModel;
|
||||
G4QGSMFragmentation theFragmentation;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
// 2009 by M. Kosov
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4QGSC_QGSCProtonBuilder_h
|
||||
#define G4QGSC_QGSCProtonBuilder_h
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronFissionProcess.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4ProtonInelasticProcess.hh"
|
||||
#include "G4VProtonBuilder.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4QStringChipsParticleLevelInterface.hh"
|
||||
#include "G4QGSModel.hh"
|
||||
#include "G4QGSParticipants.hh"
|
||||
#include "G4QGSMFragmentation.hh"
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
class G4QGSC_QGSCProtonBuilder : public G4VProtonBuilder
|
||||
{
|
||||
public:
|
||||
G4QGSC_QGSCProtonBuilder(G4bool quasiElastic=false);
|
||||
virtual ~G4QGSC_QGSCProtonBuilder();
|
||||
|
||||
public:
|
||||
virtual void Build(G4HadronElasticProcess * aP);
|
||||
virtual void Build(G4ProtonInelasticProcess * aP);
|
||||
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4QStringChipsParticleLevelInterface * theCascade;
|
||||
G4QGSModel< G4QGSParticipants > * theStringModel;
|
||||
G4ExcitedStringDecay * theStringDecay;
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
// 2009 by M. Kosov
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSPNeutronBuilder.hh,v 1.4 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSPNeutronBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QGSPNeutronBuilder_h
|
||||
#define G4QGSPNeutronBuilder_h 1
|
||||
|
||||
@@ -45,8 +59,6 @@
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
#include "G4ProjectileDiffractiveChannel.hh"
|
||||
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
|
||||
class G4QGSPNeutronBuilder : public G4VNeutronBuilder
|
||||
{
|
||||
public:
|
||||
@@ -71,7 +83,6 @@ class G4QGSPNeutronBuilder : public G4VNeutronBuilder
|
||||
G4QuasiElasticChannel * theQuasiElastic;
|
||||
G4ProjectileDiffractiveChannel * theProjectileDiffraction;
|
||||
|
||||
G4NeutronInelasticCrossSection theXSec;
|
||||
G4double theMin;
|
||||
|
||||
};
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSPPiKBuilder.hh,v 1.4 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSPPiKBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QGSPPiKBuilder_h
|
||||
#define G4QGSPPiKBuilder_h 1
|
||||
|
||||
@@ -44,8 +58,7 @@
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4QuasiElasticChannel.hh"
|
||||
#include "G4ProjectileDiffractiveChannel.hh"
|
||||
|
||||
#include "G4PiNuclearCrossSection.hh"
|
||||
#include "G4VCrossSectionDataSet.hh"
|
||||
|
||||
class G4QGSPPiKBuilder : public G4VPiKBuilder
|
||||
{
|
||||
@@ -66,7 +79,7 @@ class G4QGSPPiKBuilder : public G4VPiKBuilder
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4PiNuclearCrossSection thePiData;
|
||||
G4VCrossSectionDataSet* thePiData;
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4PreCompoundModel * thePreEquilib;
|
||||
G4GeneratorPrecompoundInterface * theCascade;
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSPProtonBuilder.hh,v 1.5 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSPProtonBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QGSPProtonBuilder_h
|
||||
#define G4QGSPProtonBuilder_h
|
||||
|
||||
@@ -62,7 +76,7 @@ class G4QGSPProtonBuilder : public G4VProtonBuilder
|
||||
void SetMinEnergy(G4double aM) {theMin = aM;}
|
||||
|
||||
private:
|
||||
G4ProtonInelasticCrossSection theXSec;
|
||||
|
||||
G4TheoFSGenerator * theModel;
|
||||
G4PreCompoundModel * thePreEquilib;
|
||||
G4GeneratorPrecompoundInterface * theCascade;
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QInelasticCHIPSBuilder
|
||||
//
|
||||
// Author: 2009 M. Kossov
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Short comment: This is a physics list of only one model G4QInelastic for
|
||||
// all hadron-nuclear interactions at all energies. There is no model- or
|
||||
// process-mixing, while it is possible to merge (G4QProcessMixer) the G4_HP
|
||||
// processes at low energies if the G4QInelastic, which includes all necessary
|
||||
// nA inelastic processes, is found to be not saficient for some applications.
|
||||
// In this particular builder the G4QInelastic process is attached to all
|
||||
// hadrons other than nucleons or pi and K-mesons. Previously it could be done
|
||||
// only using the LHEP parameterized package or in a temporary form by the
|
||||
// QGSC model conditionally extended (just not crashing) to low energies.
|
||||
// *** Important *** As the CHIPS treatment of all hadrons is very simple,
|
||||
// this builder with time can be not used in the CHIPS physics list.
|
||||
//
|
||||
// -----------------------------------------------------------------------------
|
||||
#ifndef G4QInelasticCHIPSBuilder_h
|
||||
#define G4QInelasticCHIPSBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4QInelastic.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
class G4QInelasticCHIPSBuilder
|
||||
{
|
||||
public:
|
||||
G4QInelasticCHIPSBuilder(G4int verbose);
|
||||
virtual ~G4QInelasticCHIPSBuilder();
|
||||
|
||||
public:
|
||||
void Build();
|
||||
|
||||
protected:
|
||||
// the particle table has the complete List of existing particle types
|
||||
G4ParticleTable* theParticleTable;
|
||||
G4ParticleTable::G4PTblDicIterator* theParticleIterator;
|
||||
|
||||
private:
|
||||
G4int verbose;
|
||||
G4bool wasActivated;
|
||||
G4QInelastic* inelastic;
|
||||
};
|
||||
// 2009 by M. Kossov
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,93 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QMessenger.hh,v 1.1 2009/11/13 18:50:14 mkossov Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QMessenger
|
||||
//
|
||||
// Author: 2009 M. V. Kossov
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4QMessenger_h
|
||||
#define G4QMessenger_h 1
|
||||
|
||||
class G4EmExtraPhysics;
|
||||
|
||||
#include "G4UImessenger.hh"
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
#include "G4UIcmdWithABool.hh"
|
||||
#include "G4UIcmdWithADouble.hh"
|
||||
#include "G4UIcmdWithAnInteger.hh"
|
||||
#include "G4UIcmdWithADoubleAndUnit.hh"
|
||||
|
||||
class G4QNeutrinoPhysics;
|
||||
class G4QPhotoNuclearPhysics;
|
||||
|
||||
class G4QMessenger: public G4UImessenger
|
||||
{
|
||||
G4QMessenger();
|
||||
|
||||
public:
|
||||
~G4QMessenger();
|
||||
|
||||
static G4QMessenger* GetPointer(); // Gives a pointer to this singletone
|
||||
|
||||
void Add(G4QNeutrinoPhysics* weak);
|
||||
void Add(G4QPhotoNuclearPhysics* photo);
|
||||
|
||||
void SetNewValue(G4UIcommand* aComm, G4String aS);
|
||||
G4String GetCurrentValue(G4UIcommand* aComm);
|
||||
|
||||
private:
|
||||
G4UIdirectory* rootDir;
|
||||
|
||||
G4UIdirectory* weakDir;
|
||||
G4QNeutrinoPhysics* theWeak;
|
||||
G4UIcmdWithAString* theNuElN;
|
||||
G4UIcmdWithAString* theNuMuN;
|
||||
G4UIcmdWithAString* theNuTaN;
|
||||
G4UIcmdWithADouble* biasNuNuc;
|
||||
|
||||
G4UIdirectory* photoDir;
|
||||
G4QPhotoNuclearPhysics* thePhoto;
|
||||
G4UIcmdWithAString* theSynchR;
|
||||
G4UIcmdWithADouble* minGamSR;
|
||||
G4UIcmdWithAString* theGamN;
|
||||
G4UIcmdWithAString* theEleN;
|
||||
G4UIcmdWithAString* theMuoN;
|
||||
G4UIcmdWithAString* theTauN;
|
||||
G4UIcmdWithADouble* biasPhotoN;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,96 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QNeutrinoPhysics.hh,v 1.2 2009/11/16 19:12:10 mkossov Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QNeutrinoPhysics
|
||||
//
|
||||
// Author: 2009 M. V. Kosov
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4QNeutrinoPhysics_h
|
||||
#define G4QNeutrinoPhysics_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4QMessenger.hh"
|
||||
|
||||
#include "G4QInelastic.hh"
|
||||
|
||||
#include "G4NeutrinoE.hh"
|
||||
#include "G4AntiNeutrinoE.hh"
|
||||
#include "G4NeutrinoMu.hh"
|
||||
#include "G4AntiNeutrinoMu.hh"
|
||||
#include "G4NeutrinoTau.hh"
|
||||
#include "G4AntiNeutrinoTau.hh"
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
class G4QNeutrinoPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4QNeutrinoPhysics(const G4String& name = "CHIPS neutrino-nuclear");
|
||||
virtual ~G4QNeutrinoPhysics();
|
||||
|
||||
void ConstructParticle();
|
||||
void ConstructProcess();
|
||||
|
||||
G4String GetNuElNuclearOnOff() {return nuEleOn ? "on" : "off";}
|
||||
G4String GetNuMuNuclearOnOff() {return nuMuoOn ? "on" : "off";}
|
||||
G4String GetNuTauNuclearOnOff() {return nuTauOn ? "on" : "off";}
|
||||
|
||||
void SetNuElNuclearOnOff(G4String& aState);
|
||||
void SetNuMuNuclearOnOff(G4String& aState);
|
||||
void SetNuTauNuclearOnOff(G4String& aState);
|
||||
void SetNuNuclearBias(G4double newValue);
|
||||
|
||||
private:
|
||||
|
||||
void BuildNuEleNuclear();
|
||||
void BuildNuMuoNuclear();
|
||||
void BuildNuTauNuclear();
|
||||
|
||||
G4bool wasBuilt;
|
||||
G4bool nuEleActivated;
|
||||
G4bool nuMuoActivated;
|
||||
G4bool nuTauActivated;
|
||||
G4bool nuEleOn;
|
||||
G4bool nuMuoOn;
|
||||
G4bool nuTauOn;
|
||||
G4double nuNucBias; // Biasing factor for neutrino-nuclear processes
|
||||
|
||||
G4QInelastic* inelastic;
|
||||
G4QMessenger* theMessenger;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,78 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QNeutronBuilder
|
||||
//
|
||||
// Author: 2009 M. Kosov
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
// Short description: for possible use in QGSC_QGSC (not needed for QGSC_CHIPS)
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QNeutronBuilder_h
|
||||
#define G4QNeutronBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4NeutronInelasticProcess.hh"
|
||||
#include "G4QInelastic.hh"
|
||||
#include "G4QDiscProcessMixer.hh"
|
||||
#include "G4VNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include <vector>
|
||||
|
||||
class G4QNeutronBuilder
|
||||
{
|
||||
public:
|
||||
G4QNeutronBuilder();
|
||||
virtual ~G4QNeutronBuilder();
|
||||
|
||||
public:
|
||||
void Build();
|
||||
void RegisterMe(G4VNeutronBuilder * aB) {theModelCollections.push_back(aB);}
|
||||
|
||||
private:
|
||||
G4QDiscProcessMixer* theProcessMixer;
|
||||
std::vector<G4VNeutronBuilder *> theModelCollections;
|
||||
G4NeutronInelasticProcess* theNeutronInelastic;
|
||||
G4QInelastic* theCHIPSInelastic;
|
||||
|
||||
G4bool wasActivated;
|
||||
|
||||
};
|
||||
|
||||
// 2009 by M. Kosov
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QPhotoNuclearPhysics.hh,v 1.2 2009/11/16 19:12:10 mkossov Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QPhotoNuclearPhysics
|
||||
//
|
||||
// Author: 2009 M. V. Kosov
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4QPhotoNuclearPhysics_h
|
||||
#define G4QPhotoNuclearPhysics_h 1
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4QMessenger.hh"
|
||||
|
||||
#include "G4QSynchRad.hh"
|
||||
#include "G4QInelastic.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
#include "G4TauPlus.hh"
|
||||
#include "G4TauMinus.hh"
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
|
||||
class G4QPhotoNuclearPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
public:
|
||||
G4QPhotoNuclearPhysics(const G4String& name = "CHIPS photo-nuclear");
|
||||
virtual ~G4QPhotoNuclearPhysics();
|
||||
|
||||
void ConstructParticle();
|
||||
void ConstructProcess();
|
||||
|
||||
G4String GetSynchRadOnOff() {return synchrOn ? "on" : "off";}
|
||||
G4String GetGammaNuclearOnOff() {return gamNucOn ? "on" : "off";}
|
||||
G4String GetElPosNuclearOnOff() {return eleNucOn ? "on" : "off";}
|
||||
G4String GetMuonNuclearOnOff() {return muoNucOn ? "on" : "off";}
|
||||
G4String GetTauNuclearOnOff() {return tauNucOn ? "on" : "off";}
|
||||
|
||||
void SetSynchRadOnOff(G4String& aSwitch);
|
||||
void SetGammaNuclearOnOff(G4String& aSwitch);
|
||||
void SetElPosNuclearOnOff(G4String& aSwitch);
|
||||
void SetMuonNuclearOnOff(G4String& aSwitch);
|
||||
void SetTauNuclearOnOff(G4String& aSwitch);
|
||||
void SetMinGammaSR(G4double newValue);
|
||||
void SetPhotoNucBias(G4double newValue);
|
||||
|
||||
private:
|
||||
|
||||
void BuildSynchRad();
|
||||
void BuildGammaNuclear();
|
||||
void BuildElectroNuclear();
|
||||
void BuildMuonNuclear();
|
||||
void BuildTauNuclear();
|
||||
|
||||
G4bool wasBuilt; // Flag of forbidden reactivation of processes
|
||||
G4bool SynchRActivated; // Flag of finished activation of SynchroRadiation
|
||||
G4bool GamNucActivated; // Flag of finished activation of gamma-nuclear
|
||||
G4bool EleNucActivated; // Flag of finished activation of electron-nuclear
|
||||
G4bool MuoNucActivated; // Flag of finished activation of muon-nuclear
|
||||
G4bool TauNucActivated; // Flag of finished activation of tau-nuclear
|
||||
G4bool synchrOn; // Switch flag for Synchrotron Radiation process
|
||||
G4double synchrMinGam; // MinimumGamma for SynchrotronRadiation activation
|
||||
G4bool gamNucOn; // Switch flag for the gamma-nuclear process
|
||||
G4bool eleNucOn; // Switch flag for the electron-nuclear process
|
||||
G4bool muoNucOn; // Switch flag for the electron-nuclear process
|
||||
G4bool tauNucOn; // Switch flag for the electron-nuclear process
|
||||
G4double photoNucBias; // Biasing factor for photo-nuclear processes
|
||||
|
||||
G4QInelastic* inelastic;
|
||||
G4QSynchRad* synchrad;
|
||||
G4QMessenger* theMessenger;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,76 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QProtonBuilder
|
||||
//
|
||||
// Author: 2009 M. Kosov
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
// Short description: for G4QDiscProcessMixer use in the QGSC_CHIPS physics list
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4QProtonBuilder_h
|
||||
#define G4QProtonBuilder_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4ProtonInelasticProcess.hh"
|
||||
#include "G4QInelastic.hh"
|
||||
#include "G4QDiscProcessMixer.hh"
|
||||
#include "G4VProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include <vector>
|
||||
|
||||
class G4QProtonBuilder
|
||||
{
|
||||
public:
|
||||
G4QProtonBuilder();
|
||||
virtual ~G4QProtonBuilder();
|
||||
|
||||
public:
|
||||
void Build();
|
||||
void RegisterMe(G4VProtonBuilder * aB) {theModelCollections.push_back(aB);}
|
||||
|
||||
private:
|
||||
G4QDiscProcessMixer* theProcessMixer;
|
||||
std::vector<G4VProtonBuilder *> theModelCollections;
|
||||
G4ProtonInelasticProcess* theProtonInelastic;
|
||||
G4QInelastic* theCHIPSInelastic;
|
||||
|
||||
G4bool wasActivated;
|
||||
};
|
||||
|
||||
// 2009 by M. Kosov
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,77 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VHadronModelBuilder.hh,v 1.1 2009/10/04 16:29:54 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4VHadronModelBuilder
|
||||
//
|
||||
// Author: 28 June 2009 V.Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4VHadronModelBuilder_h
|
||||
#define G4VHadronModelBuilder_h 1
|
||||
|
||||
#include "G4HadronicInteraction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4VHadronModelBuilder
|
||||
{
|
||||
public:
|
||||
|
||||
G4VHadronModelBuilder(const G4String& name ="");
|
||||
|
||||
virtual ~G4VHadronModelBuilder();
|
||||
|
||||
G4HadronicInteraction* GetModel();
|
||||
|
||||
inline const G4String& GetName() const;
|
||||
|
||||
protected:
|
||||
|
||||
virtual G4HadronicInteraction* BuildModel() = 0;
|
||||
|
||||
private:
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
G4VHadronModelBuilder(G4VHadronModelBuilder &);
|
||||
G4VHadronModelBuilder & operator=(const G4VHadronModelBuilder &right);
|
||||
|
||||
G4HadronicInteraction* model;
|
||||
G4String name;
|
||||
};
|
||||
|
||||
inline const G4String& G4VHadronModelBuilder::GetName() const
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,6 +23,21 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VNeutronBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4VNeutronBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 21.11.2005 G.Folger: don't keep processes as data members, but new these
|
||||
// 30.03.2009 V.Ivanchenko move constructor and destructor to source
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4VNeutronBuilder_h
|
||||
#define G4VNeutronBuilder_h
|
||||
|
||||
@@ -33,13 +48,13 @@ class G4NeutronInelasticProcess;
|
||||
|
||||
class G4VNeutronBuilder
|
||||
{
|
||||
public:
|
||||
G4VNeutronBuilder() {}
|
||||
virtual ~G4VNeutronBuilder() {}
|
||||
virtual void Build(G4HadronElasticProcess * aP) = 0;
|
||||
virtual void Build(G4HadronFissionProcess * aP) = 0;
|
||||
virtual void Build(G4HadronCaptureProcess * aP) = 0;
|
||||
virtual void Build(G4NeutronInelasticProcess * aP) = 0;
|
||||
public:
|
||||
G4VNeutronBuilder();
|
||||
virtual ~G4VNeutronBuilder();
|
||||
virtual void Build(G4HadronElasticProcess * aP) = 0;
|
||||
virtual void Build(G4HadronFissionProcess * aP) = 0;
|
||||
virtual void Build(G4HadronCaptureProcess * aP) = 0;
|
||||
virtual void Build(G4NeutronInelasticProcess * aP) = 0;
|
||||
};
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VPiKBuilder.hh,v 1.1 2006/10/31 11:35:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4VPiKBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -34,6 +34,7 @@
|
||||
//
|
||||
// Modified:
|
||||
// 16.11.2005 G.Folger: don't keep processes as data members, but new these
|
||||
// 30.03.2009 V.Ivanchenko move constructor and destructor to source
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -50,16 +51,16 @@
|
||||
|
||||
class G4VPiKBuilder
|
||||
{
|
||||
public:
|
||||
G4VPiKBuilder() {}
|
||||
virtual ~G4VPiKBuilder() {}
|
||||
virtual void Build(G4HadronElasticProcess * aP) = 0;
|
||||
virtual void Build(G4PionPlusInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4PionMinusInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4KaonPlusInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4KaonMinusInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4KaonZeroLInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4KaonZeroSInelasticProcess * aP) = 0;
|
||||
public:
|
||||
G4VPiKBuilder();
|
||||
virtual ~G4VPiKBuilder();
|
||||
virtual void Build(G4HadronElasticProcess * aP) = 0;
|
||||
virtual void Build(G4PionPlusInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4PionMinusInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4KaonPlusInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4KaonMinusInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4KaonZeroLInelasticProcess * aP) = 0;
|
||||
virtual void Build(G4KaonZeroSInelasticProcess * aP) = 0;
|
||||
};
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VProtonBuilder.hh,v 1.1 2006/10/31 11:35:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4VProtonBuilder.hh,v 1.2 2009/03/31 11:04:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -34,6 +34,7 @@
|
||||
//
|
||||
// Modified:
|
||||
// 21.11.2005 G.Folger: don't keep processes as data members, but new these
|
||||
// 30.03.2009 V.Ivanchenko move constructor and destructor to source
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -45,11 +46,11 @@ class G4HadronElasticProcess;
|
||||
|
||||
class G4VProtonBuilder
|
||||
{
|
||||
public:
|
||||
G4VProtonBuilder() {}
|
||||
virtual ~G4VProtonBuilder() {}
|
||||
virtual void Build(G4HadronElasticProcess * aP) = 0;
|
||||
virtual void Build(G4ProtonInelasticProcess * aP) = 0;
|
||||
public:
|
||||
G4VProtonBuilder();
|
||||
virtual ~G4VProtonBuilder();
|
||||
virtual void Build(G4HadronElasticProcess * aP) = 0;
|
||||
virtual void Build(G4ProtonInelasticProcess * aP) = 0;
|
||||
};
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
|
||||
@@ -26,60 +26,17 @@
|
||||
#ifndef G4WarnPLStatus_hh
|
||||
#define G4WarnPLStatus_hh
|
||||
|
||||
#include "G4String.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4WarnPLStatus
|
||||
{
|
||||
public:
|
||||
G4WarnPLStatus();
|
||||
~G4WarnPLStatus();
|
||||
|
||||
void Replaced(const G4String aPL, const G4String Replacement) const ;
|
||||
void Unsupported(const G4String aPL, const G4String Replacement ="") const ;
|
||||
void Experimental(const G4String aPL) const ;
|
||||
};
|
||||
|
||||
inline
|
||||
G4WarnPLStatus::G4WarnPLStatus()
|
||||
{}
|
||||
|
||||
inline
|
||||
void G4WarnPLStatus::Unsupported(const G4String aPL, const G4String Replacement) const
|
||||
{
|
||||
G4cout <<
|
||||
"*=====================================================================" <<G4endl <<
|
||||
"* " <<G4endl <<
|
||||
"* The Physics list "<<aPL<<" is NO LONGER SUPPORTED ! " <<G4endl <<
|
||||
"* and is likely to be deleted in a future release of Geant4 " <<G4endl <<
|
||||
"* " <<G4endl;
|
||||
if (Replacement.size() > 0)
|
||||
{
|
||||
G4cout <<
|
||||
"* We recommend you try the physics lists "<<Replacement<< "," <<G4endl <<
|
||||
"* this offers similar functionality for most use cases " <<G4endl <<
|
||||
"* " <<G4endl;
|
||||
|
||||
}
|
||||
G4cout <<
|
||||
"* " <<G4endl <<
|
||||
"* We invite you to report your use case for, and your experience with" <<G4endl <<
|
||||
"* this physics list on the Geant4 User Forum dedicated to physics " <<G4endl <<
|
||||
"* lists: " <<G4endl <<
|
||||
"* http://geant4-hn.slac.stanford.edu:5090/HyperNews/public/get/phys-list.html"<<G4endl <<
|
||||
"* " <<G4endl <<
|
||||
"*=====================================================================*" <<G4endl<<
|
||||
G4endl;
|
||||
}
|
||||
void G4WarnPLStatus::Experimental(const G4String aPL) const
|
||||
{
|
||||
G4cout <<
|
||||
"*=====================================================================" <<G4endl <<
|
||||
"* " <<G4endl <<
|
||||
"* The Physics list "<<aPL<<" is an experimental physics list ! " <<G4endl <<
|
||||
"* " <<G4endl <<
|
||||
"* Please report your use case for, and your experience with this " <<G4endl <<
|
||||
"* physics list on the Geant4 User Forum dedicated to physics lists: " <<G4endl <<
|
||||
"* http://geant4-hn.slac.stanford.edu:5090/HyperNews/public/get/phys-list.html"<<G4endl <<
|
||||
"* " <<G4endl <<
|
||||
"*=====================================================================*" <<G4endl<<
|
||||
G4endl;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BertiniNeutronBuilder.cc,v 1.4 2009/04/02 08:11:32 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4BertiniNeutronBuilder
|
||||
//
|
||||
// Author: 2002 H.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 02.04.2009 V.Ivanchenko remove add cross section, string builderis reponsible
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4BertiniNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
@@ -42,13 +56,11 @@ Build(G4NeutronInelasticProcess * aP)
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
G4BertiniNeutronBuilder::
|
||||
~G4BertiniNeutronBuilder()
|
||||
{
|
||||
delete theModel;
|
||||
}
|
||||
|
||||
void G4BertiniNeutronBuilder::
|
||||
|
||||
@@ -23,14 +23,29 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4BertiniPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
// $Id: G4BertiniPiKBuilder.cc,v 1.3 2009/04/02 08:11:32 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4BertiniPiKBuilder
|
||||
//
|
||||
// Author: 2002 H.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 02.04.2009 V.Ivanchenko remove add cross section, string builderis reponsible
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4BertiniPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4BertiniPiKBuilder::
|
||||
G4BertiniPiKBuilder()
|
||||
G4BertiniPiKBuilder::
|
||||
G4BertiniPiKBuilder()
|
||||
{
|
||||
thePiData = new G4PiNuclearCrossSection;
|
||||
theMin = 0*GeV;
|
||||
theMax = 9.9*GeV;
|
||||
theModel = new G4CascadeInterface;
|
||||
@@ -38,58 +53,55 @@
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
G4BertiniPiKBuilder::
|
||||
~G4BertiniPiKBuilder()
|
||||
G4BertiniPiKBuilder::~G4BertiniPiKBuilder()
|
||||
{
|
||||
delete theModel;
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BertiniProtonBuilder.cc,v 1.3 2009/04/02 08:11:32 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4BertiniProtonBuilder
|
||||
//
|
||||
// Author: 2002 H.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 02.04.2009 V.Ivanchenko remove add cross section, string builderis reponsible
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4BertiniProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
@@ -39,7 +53,6 @@ G4BertiniProtonBuilder()
|
||||
G4BertiniProtonBuilder::
|
||||
~G4BertiniProtonBuilder()
|
||||
{
|
||||
delete theModel;
|
||||
}
|
||||
|
||||
void G4BertiniProtonBuilder::
|
||||
@@ -53,7 +66,6 @@ Build(G4ProtonInelasticProcess * aP)
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -23,13 +23,27 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4BinaryNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
// $Id: G4BinaryNeutronBuilder.cc,v 1.3 2009/04/02 08:11:32 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4BinaryNeutronBuilder
|
||||
//
|
||||
// Author: 2002 H.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 02.04.2009 V.Ivanchenko remove add cross section, string builderis reponsible
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4BinaryNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4BinaryNeutronBuilder::
|
||||
G4BinaryNeutronBuilder()
|
||||
G4BinaryNeutronBuilder::
|
||||
G4BinaryNeutronBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theMax = 9.9*GeV;
|
||||
@@ -42,27 +56,24 @@
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
G4BinaryNeutronBuilder::
|
||||
~G4BinaryNeutronBuilder()
|
||||
G4BinaryNeutronBuilder::~G4BinaryNeutronBuilder()
|
||||
{
|
||||
delete theModel;
|
||||
}
|
||||
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4HadronElasticProcess * )
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4HadronFissionProcess * )
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4HadronFissionProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess * )
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BinaryPiKBuilder.cc,v 1.3 2009/04/02 08:11:32 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4BinaryPiKBuilder
|
||||
//
|
||||
// Author: 2002 H.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 02.04.2009 V.Ivanchenko remove add cross section, string builderis reponsible
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4BinaryPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
@@ -31,6 +45,7 @@
|
||||
G4BinaryPiKBuilder::
|
||||
G4BinaryPiKBuilder()
|
||||
{
|
||||
thePiData = new G4PiNuclearCrossSection;
|
||||
theMin = 0*GeV;
|
||||
theMax = 1.3*GeV;
|
||||
theModel = new G4BinaryCascade;
|
||||
@@ -41,7 +56,6 @@ G4BinaryPiKBuilder()
|
||||
G4BinaryPiKBuilder::
|
||||
~G4BinaryPiKBuilder()
|
||||
{
|
||||
delete theModel;
|
||||
}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
@@ -53,7 +67,6 @@ Build(G4PionPlusInelasticProcess * aP)
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiData);
|
||||
}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
@@ -62,7 +75,6 @@ Build(G4PionMinusInelasticProcess * aP)
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiData);
|
||||
}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BinaryProtonBuilder.cc,v 1.3 2009/04/02 08:11:32 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4BinaryProtonBuilder
|
||||
//
|
||||
// Author: 2002 H.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 02.04.2009 V.Ivanchenko remove add cross section, string builderis reponsible
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4BinaryProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
@@ -39,14 +53,15 @@ G4BinaryProtonBuilder()
|
||||
void G4BinaryProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
aP->AddDataSet(&theXSec);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
G4BinaryProtonBuilder::
|
||||
~G4BinaryProtonBuilder() {}
|
||||
~G4BinaryProtonBuilder()
|
||||
{
|
||||
}
|
||||
|
||||
void G4BinaryProtonBuilder::
|
||||
Build(G4HadronElasticProcess * )
|
||||
|
||||
@@ -0,0 +1,233 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmDNAPhysics.cc,v 1.2 2009/11/01 13:21:13 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
#include "G4EmDNAPhysics.hh"
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
|
||||
// *** Processes and models for Geant4-DNA
|
||||
|
||||
#include "G4DNAElastic.hh"
|
||||
#include "G4DNAChampionElasticModel.hh"
|
||||
#include "G4DNAScreenedRutherfordElasticModel.hh"
|
||||
|
||||
#include "G4DNAExcitation.hh"
|
||||
#include "G4DNAEmfietzoglouExcitationModel.hh"
|
||||
#include "G4DNAMillerGreenExcitationModel.hh"
|
||||
#include "G4DNABornExcitationModel.hh"
|
||||
|
||||
#include "G4DNAIonisation.hh"
|
||||
#include "G4DNABornIonisationModel.hh"
|
||||
#include "G4DNARuddIonisationModel.hh"
|
||||
|
||||
#include "G4DNAChargeDecrease.hh"
|
||||
#include "G4DNADingfelderChargeDecreaseModel.hh"
|
||||
|
||||
#include "G4DNAChargeIncrease.hh"
|
||||
#include "G4DNADingfelderChargeIncreaseModel.hh"
|
||||
|
||||
// particles
|
||||
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
|
||||
// Warning : the following is needed in order to use EM Physics builders
|
||||
// e+
|
||||
#include "G4Positron.hh"
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
// gamma
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
#include "G4LivermorePhotoElectricModel.hh"
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4LivermoreComptonModel.hh"
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4LivermoreGammaConversionModel.hh"
|
||||
#include "G4RayleighScattering.hh"
|
||||
#include "G4LivermoreRayleighModel.hh"
|
||||
// end of warning
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics::G4EmDNAPhysics(
|
||||
G4int ver, const G4String& name)
|
||||
: G4VPhysicsConstructor(name), verbose(ver)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics::~G4EmDNAPhysics()
|
||||
{}
|
||||
|
||||
#include "G4GenericIon.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmDNAPhysics::ConstructParticle()
|
||||
{
|
||||
// bosons
|
||||
G4Gamma::Gamma();
|
||||
|
||||
// leptons
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
|
||||
// baryons
|
||||
G4Proton::Proton();
|
||||
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
|
||||
G4DNAGenericIonsManager * genericIonsManager;
|
||||
genericIonsManager=G4DNAGenericIonsManager::Instance();
|
||||
genericIonsManager->GetIon("alpha++");
|
||||
genericIonsManager->GetIon("alpha+");
|
||||
genericIonsManager->GetIon("helium");
|
||||
genericIonsManager->GetIon("hydrogen");
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmDNAPhysics::ConstructProcess()
|
||||
{
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if (particleName == "e-") {
|
||||
|
||||
// *** Elastic scattering (two alternative models available) ***
|
||||
|
||||
G4DNAElastic* theDNAElasticProcess = new G4DNAElastic();
|
||||
theDNAElasticProcess->SetModel(new G4DNAScreenedRutherfordElasticModel());
|
||||
|
||||
// or alternative model
|
||||
// theDNAElasticProcess->SetModel(new G4DNAChampionElasticModel());
|
||||
|
||||
pmanager->AddDiscreteProcess(theDNAElasticProcess);
|
||||
|
||||
// *** Excitation ***
|
||||
pmanager->AddDiscreteProcess(new G4DNAExcitation());
|
||||
|
||||
// *** Ionisation ***
|
||||
pmanager->AddDiscreteProcess(new G4DNAIonisation());
|
||||
|
||||
|
||||
} else if ( particleName == "proton" ) {
|
||||
pmanager->AddDiscreteProcess(new G4DNAExcitation());
|
||||
pmanager->AddDiscreteProcess(new G4DNAIonisation());
|
||||
pmanager->AddDiscreteProcess(new G4DNAChargeDecrease());
|
||||
|
||||
} else if ( particleName == "hydrogen" ) {
|
||||
pmanager->AddDiscreteProcess(new G4DNAIonisation());
|
||||
pmanager->AddDiscreteProcess(new G4DNAChargeIncrease());
|
||||
|
||||
} else if ( particleName == "alpha" ) {
|
||||
pmanager->AddDiscreteProcess(new G4DNAExcitation());
|
||||
pmanager->AddDiscreteProcess(new G4DNAIonisation());
|
||||
pmanager->AddDiscreteProcess(new G4DNAChargeDecrease());
|
||||
|
||||
} else if ( particleName == "alpha+" ) {
|
||||
pmanager->AddDiscreteProcess(new G4DNAExcitation());
|
||||
pmanager->AddDiscreteProcess(new G4DNAIonisation());
|
||||
pmanager->AddDiscreteProcess(new G4DNAChargeDecrease());
|
||||
pmanager->AddDiscreteProcess(new G4DNAChargeIncrease());
|
||||
|
||||
} else if ( particleName == "helium" ) {
|
||||
pmanager->AddDiscreteProcess(new G4DNAExcitation());
|
||||
pmanager->AddDiscreteProcess(new G4DNAIonisation());
|
||||
pmanager->AddDiscreteProcess(new G4DNAChargeIncrease());
|
||||
|
||||
}
|
||||
|
||||
// Warning : the following particles and processes are needed by EM Physics builders
|
||||
// They are taken from the default Livermore Physics list
|
||||
// These particles are currently not handled by Geant4-DNA
|
||||
|
||||
// e+
|
||||
|
||||
else if (particleName == "e+") {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
eIoni->SetStepFunction(0.2, 100*um);
|
||||
|
||||
pmanager->AddProcess(eIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4eplusAnnihilation,0,-1, 4);
|
||||
|
||||
} else if (particleName == "gamma") {
|
||||
|
||||
G4double LivermoreHighEnergyLimit = GeV;
|
||||
|
||||
G4PhotoElectricEffect* thePhotoElectricEffect = new G4PhotoElectricEffect();
|
||||
G4LivermorePhotoElectricModel* theLivermorePhotoElectricModel =
|
||||
new G4LivermorePhotoElectricModel();
|
||||
theLivermorePhotoElectricModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
thePhotoElectricEffect->AddEmModel(0, theLivermorePhotoElectricModel);
|
||||
pmanager->AddDiscreteProcess(thePhotoElectricEffect);
|
||||
|
||||
G4ComptonScattering* theComptonScattering = new G4ComptonScattering();
|
||||
G4LivermoreComptonModel* theLivermoreComptonModel =
|
||||
new G4LivermoreComptonModel();
|
||||
theLivermoreComptonModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
theComptonScattering->AddEmModel(0, theLivermoreComptonModel);
|
||||
pmanager->AddDiscreteProcess(theComptonScattering);
|
||||
|
||||
G4GammaConversion* theGammaConversion = new G4GammaConversion();
|
||||
G4LivermoreGammaConversionModel* theLivermoreGammaConversionModel =
|
||||
new G4LivermoreGammaConversionModel();
|
||||
theLivermoreGammaConversionModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
theGammaConversion->AddEmModel(0, theLivermoreGammaConversionModel);
|
||||
pmanager->AddDiscreteProcess(theGammaConversion);
|
||||
|
||||
G4RayleighScattering* theRayleigh = new G4RayleighScattering();
|
||||
G4LivermoreRayleighModel* theRayleighModel = new G4LivermoreRayleighModel();
|
||||
theRayleighModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
theRayleigh->AddEmModel(0, theRayleighModel);
|
||||
pmanager->AddDiscreteProcess(theRayleigh);
|
||||
}
|
||||
|
||||
// Warning : end of particles and processes are needed by EM Physics builders
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -0,0 +1,368 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmLivermorePhysics.cc,v 1.7 2009/11/24 12:53:22 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
#include "G4EmLivermorePhysics.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
// *** Processes and models
|
||||
|
||||
// gamma
|
||||
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
#include "G4LivermorePhotoElectricModel.hh"
|
||||
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4LivermoreComptonModel.hh"
|
||||
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4LivermoreGammaConversionModel.hh"
|
||||
|
||||
#include "G4RayleighScattering.hh"
|
||||
#include "G4LivermoreRayleighModel.hh"
|
||||
|
||||
// e-
|
||||
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4UniversalFluctuation.hh"
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4LivermoreIonisationModel.hh"
|
||||
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4LivermoreBremsstrahlungModel.hh"
|
||||
|
||||
// e+
|
||||
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
|
||||
// mu
|
||||
|
||||
#include "G4MuMultipleScattering.hh"
|
||||
#include "G4MuIonisation.hh"
|
||||
#include "G4MuBremsstrahlung.hh"
|
||||
#include "G4MuPairProduction.hh"
|
||||
|
||||
// hadrons
|
||||
|
||||
#include "G4hMultipleScattering.hh"
|
||||
#include "G4MscStepLimitType.hh"
|
||||
|
||||
#include "G4hBremsstrahlung.hh"
|
||||
#include "G4hPairProduction.hh"
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4IonParametrisedLossModel.hh"
|
||||
#include "G4NuclearStopping.hh"
|
||||
|
||||
// msc models
|
||||
#include "G4UrbanMscModel93.hh"
|
||||
#include "G4WentzelVIModel.hh"
|
||||
#include "G4CoulombScattering.hh"
|
||||
|
||||
//
|
||||
|
||||
#include "G4LossTableManager.hh"
|
||||
#include "G4EmProcessOptions.hh"
|
||||
|
||||
// particles
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
#include "G4PionPlus.hh"
|
||||
#include "G4PionMinus.hh"
|
||||
#include "G4KaonPlus.hh"
|
||||
#include "G4KaonMinus.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4AntiProton.hh"
|
||||
#include "G4Deuteron.hh"
|
||||
#include "G4Triton.hh"
|
||||
#include "G4He3.hh"
|
||||
#include "G4Alpha.hh"
|
||||
#include "G4GenericIon.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLivermorePhysics::G4EmLivermorePhysics(
|
||||
G4int ver, const G4String& name)
|
||||
: G4VPhysicsConstructor(name), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLivermorePhysics::~G4EmLivermorePhysics()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmLivermorePhysics::ConstructParticle()
|
||||
{
|
||||
// gamma
|
||||
G4Gamma::Gamma();
|
||||
|
||||
// leptons
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
G4MuonPlus::MuonPlus();
|
||||
G4MuonMinus::MuonMinus();
|
||||
|
||||
// mesons
|
||||
G4PionPlus::PionPlusDefinition();
|
||||
G4PionMinus::PionMinusDefinition();
|
||||
G4KaonPlus::KaonPlusDefinition();
|
||||
G4KaonMinus::KaonMinusDefinition();
|
||||
|
||||
// baryons
|
||||
G4Proton::Proton();
|
||||
G4AntiProton::AntiProton();
|
||||
|
||||
// ions
|
||||
G4Deuteron::Deuteron();
|
||||
G4Triton::Triton();
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmLivermorePhysics::ConstructProcess()
|
||||
{
|
||||
// Add Livermore EM Processes
|
||||
|
||||
theParticleIterator->reset();
|
||||
|
||||
while( (*theParticleIterator)() ){
|
||||
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### " << GetPhysicsName() << " instantiates for "
|
||||
<< particleName << G4endl;
|
||||
|
||||
//Applicability range for Livermore models
|
||||
//for higher energies, the Standard models are used
|
||||
G4double LivermoreHighEnergyLimit = GeV;
|
||||
|
||||
if (particleName == "gamma") {
|
||||
|
||||
G4PhotoElectricEffect* thePhotoElectricEffect = new G4PhotoElectricEffect();
|
||||
G4LivermorePhotoElectricModel* theLivermorePhotoElectricModel =
|
||||
new G4LivermorePhotoElectricModel();
|
||||
theLivermorePhotoElectricModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
thePhotoElectricEffect->AddEmModel(0, theLivermorePhotoElectricModel);
|
||||
pmanager->AddDiscreteProcess(thePhotoElectricEffect);
|
||||
|
||||
G4ComptonScattering* theComptonScattering = new G4ComptonScattering();
|
||||
G4LivermoreComptonModel* theLivermoreComptonModel =
|
||||
new G4LivermoreComptonModel();
|
||||
theLivermoreComptonModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
theComptonScattering->AddEmModel(0, theLivermoreComptonModel);
|
||||
pmanager->AddDiscreteProcess(theComptonScattering);
|
||||
|
||||
G4GammaConversion* theGammaConversion = new G4GammaConversion();
|
||||
G4LivermoreGammaConversionModel* theLivermoreGammaConversionModel =
|
||||
new G4LivermoreGammaConversionModel();
|
||||
theLivermoreGammaConversionModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
theGammaConversion->AddEmModel(0, theLivermoreGammaConversionModel);
|
||||
pmanager->AddDiscreteProcess(theGammaConversion);
|
||||
|
||||
G4RayleighScattering* theRayleigh = new G4RayleighScattering();
|
||||
G4LivermoreRayleighModel* theRayleighModel = new G4LivermoreRayleighModel();
|
||||
theRayleighModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
theRayleigh->AddEmModel(0, theRayleighModel);
|
||||
pmanager->AddDiscreteProcess(theRayleigh);
|
||||
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
// Ionisation
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
G4LivermoreIonisationModel* theIoniLivermore = new
|
||||
G4LivermoreIonisationModel();
|
||||
theIoniLivermore->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
eIoni->AddEmModel(0, theIoniLivermore, new G4UniversalFluctuation() );
|
||||
eIoni->SetStepFunction(0.2, 100*um); //
|
||||
pmanager->AddProcess(eIoni, -1, 2, 2);
|
||||
|
||||
// Bremsstrahlung
|
||||
G4eBremsstrahlung* eBrem = new G4eBremsstrahlung();
|
||||
G4LivermoreBremsstrahlungModel* theBremLivermore = new
|
||||
G4LivermoreBremsstrahlungModel();
|
||||
theBremLivermore->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
eBrem->AddEmModel(0, theBremLivermore);
|
||||
pmanager->AddProcess(eBrem, -1,-3, 3);
|
||||
|
||||
} else if (particleName == "e+") {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
eIoni->SetStepFunction(0.2, 100*um);
|
||||
|
||||
pmanager->AddProcess(eIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4eplusAnnihilation,0,-1, 4);
|
||||
|
||||
} else if (particleName == "mu+" ||
|
||||
particleName == "mu-" ) {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
G4MuMultipleScattering* msc = new G4MuMultipleScattering();
|
||||
msc->AddEmModel(0, new G4WentzelVIModel());
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
G4MuIonisation* muIoni = new G4MuIonisation();
|
||||
muIoni->SetStepFunction(0.2, 50*um);
|
||||
|
||||
pmanager->AddProcess(muIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4);
|
||||
pmanager->AddDiscreteProcess(new G4CoulombScattering());
|
||||
|
||||
} else if (particleName == "GenericIon") {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
|
||||
G4ionIonisation* ionIoni = new G4ionIonisation();
|
||||
ionIoni->SetEmModel(new G4IonParametrisedLossModel());
|
||||
ionIoni->SetStepFunction(0.1, 10*um);
|
||||
pmanager->AddProcess(ionIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4NuclearStopping(), -1, 3,-1);
|
||||
|
||||
} else if (particleName == "alpha" ||
|
||||
particleName == "He3" ) {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
|
||||
G4ionIonisation* ionIoni = new G4ionIonisation();
|
||||
ionIoni->SetStepFunction(0.1, 20*um);
|
||||
pmanager->AddProcess(ionIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4NuclearStopping(), -1, 3,-1);
|
||||
|
||||
} else if (particleName == "pi+" ||
|
||||
particleName == "pi-" ||
|
||||
particleName == "kaon+" ||
|
||||
particleName == "kaon-" ||
|
||||
particleName == "proton" ) {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
|
||||
G4hIonisation* hIoni = new G4hIonisation();
|
||||
hIoni->SetStepFunction(0.2, 50*um);
|
||||
|
||||
pmanager->AddProcess(hIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4hBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4hPairProduction, -1,-4, 4);
|
||||
|
||||
} else if (particleName == "B+" ||
|
||||
particleName == "B-" ||
|
||||
particleName == "D+" ||
|
||||
particleName == "D-" ||
|
||||
particleName == "Ds+" ||
|
||||
particleName == "Ds-" ||
|
||||
particleName == "anti_lambda_c+" ||
|
||||
particleName == "anti_omega-" ||
|
||||
particleName == "anti_proton" ||
|
||||
particleName == "anti_sigma_c+" ||
|
||||
particleName == "anti_sigma_c++" ||
|
||||
particleName == "anti_sigma+" ||
|
||||
particleName == "anti_sigma-" ||
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
particleName == "lambda_c+" ||
|
||||
particleName == "omega-" ||
|
||||
particleName == "sigma_c+" ||
|
||||
particleName == "sigma_c++" ||
|
||||
particleName == "sigma+" ||
|
||||
particleName == "sigma-" ||
|
||||
particleName == "tau+" ||
|
||||
particleName == "tau-" ||
|
||||
particleName == "triton" ||
|
||||
particleName == "xi_c+" ||
|
||||
particleName == "xi-" ) {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4hIonisation, -1, 2, 2);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Em options
|
||||
//
|
||||
G4EmProcessOptions opt;
|
||||
opt.SetVerbose(verbose);
|
||||
|
||||
// Multiple Coulomb scattering
|
||||
//
|
||||
//opt.SetMscStepLimitation(fUseDistanceToBoundary);
|
||||
//opt.SetMscRangeFactor(0.02);
|
||||
|
||||
// Physics tables
|
||||
//
|
||||
|
||||
opt.SetMinEnergy(100*eV);
|
||||
opt.SetMaxEnergy(10*TeV);
|
||||
opt.SetDEDXBinning(220);
|
||||
opt.SetLambdaBinning(220);
|
||||
|
||||
//opt.SetSplineFlag(true);
|
||||
opt.SetPolarAngleLimit(0.2);
|
||||
|
||||
// Ionization
|
||||
//
|
||||
//opt.SetSubCutoff(true);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -0,0 +1,368 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmLivermorePolarizedPhysics.cc,v 1.6 2009/11/24 12:53:22 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
#include "G4EmLivermorePolarizedPhysics.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
// *** Processes and models
|
||||
|
||||
// gamma
|
||||
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
#include "G4LivermorePhotoElectricModel.hh"
|
||||
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4LivermorePolarizedComptonModel.hh"
|
||||
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4LivermoreGammaConversionModel.hh"
|
||||
|
||||
#include "G4RayleighScattering.hh"
|
||||
#include "G4LivermorePolarizedRayleighModel.hh"
|
||||
|
||||
// e-
|
||||
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4UniversalFluctuation.hh"
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4LivermoreIonisationModel.hh"
|
||||
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4LivermoreBremsstrahlungModel.hh"
|
||||
|
||||
// e+
|
||||
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
|
||||
// mu
|
||||
|
||||
#include "G4MuMultipleScattering.hh"
|
||||
#include "G4MuIonisation.hh"
|
||||
#include "G4MuBremsstrahlung.hh"
|
||||
#include "G4MuPairProduction.hh"
|
||||
|
||||
// hadrons
|
||||
|
||||
#include "G4hMultipleScattering.hh"
|
||||
#include "G4MscStepLimitType.hh"
|
||||
|
||||
#include "G4hBremsstrahlung.hh"
|
||||
#include "G4hPairProduction.hh"
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4IonParametrisedLossModel.hh"
|
||||
#include "G4NuclearStopping.hh"
|
||||
|
||||
// msc models
|
||||
#include "G4UrbanMscModel93.hh"
|
||||
#include "G4WentzelVIModel.hh"
|
||||
#include "G4CoulombScattering.hh"
|
||||
|
||||
//
|
||||
|
||||
#include "G4LossTableManager.hh"
|
||||
#include "G4EmProcessOptions.hh"
|
||||
|
||||
// particles
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
#include "G4PionPlus.hh"
|
||||
#include "G4PionMinus.hh"
|
||||
#include "G4KaonPlus.hh"
|
||||
#include "G4KaonMinus.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4AntiProton.hh"
|
||||
#include "G4Deuteron.hh"
|
||||
#include "G4Triton.hh"
|
||||
#include "G4He3.hh"
|
||||
#include "G4Alpha.hh"
|
||||
#include "G4GenericIon.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLivermorePolarizedPhysics::G4EmLivermorePolarizedPhysics(
|
||||
G4int ver, const G4String& name)
|
||||
: G4VPhysicsConstructor(name), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLivermorePolarizedPhysics::~G4EmLivermorePolarizedPhysics()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmLivermorePolarizedPhysics::ConstructParticle()
|
||||
{
|
||||
// gamma
|
||||
G4Gamma::Gamma();
|
||||
|
||||
// leptons
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
G4MuonPlus::MuonPlus();
|
||||
G4MuonMinus::MuonMinus();
|
||||
|
||||
// mesons
|
||||
G4PionPlus::PionPlusDefinition();
|
||||
G4PionMinus::PionMinusDefinition();
|
||||
G4KaonPlus::KaonPlusDefinition();
|
||||
G4KaonMinus::KaonMinusDefinition();
|
||||
|
||||
// baryons
|
||||
G4Proton::Proton();
|
||||
G4AntiProton::AntiProton();
|
||||
|
||||
// ions
|
||||
G4Deuteron::Deuteron();
|
||||
G4Triton::Triton();
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmLivermorePolarizedPhysics::ConstructProcess()
|
||||
{
|
||||
// Add Livermore EM Processes
|
||||
|
||||
theParticleIterator->reset();
|
||||
|
||||
while( (*theParticleIterator)() ){
|
||||
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### " << GetPhysicsName() << " instantiates for "
|
||||
<< particleName << G4endl;
|
||||
|
||||
//Applicability range for Livermore models
|
||||
//for higher energies, the Standard models are used
|
||||
G4double LivermoreHighEnergyLimit = GeV;
|
||||
|
||||
if (particleName == "gamma") {
|
||||
|
||||
G4PhotoElectricEffect* thePhotoElectricEffect = new G4PhotoElectricEffect();
|
||||
G4LivermorePhotoElectricModel* theLivermorePhotoElectricModel = new G4LivermorePhotoElectricModel();
|
||||
theLivermorePhotoElectricModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
thePhotoElectricEffect->AddEmModel(0, theLivermorePhotoElectricModel);
|
||||
pmanager->AddDiscreteProcess(thePhotoElectricEffect);
|
||||
|
||||
G4ComptonScattering* theComptonScattering = new G4ComptonScattering();
|
||||
G4LivermorePolarizedComptonModel* theLivermoreComptonModel = new G4LivermorePolarizedComptonModel();
|
||||
theLivermoreComptonModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
theComptonScattering->AddEmModel(0, theLivermoreComptonModel);
|
||||
pmanager->AddDiscreteProcess(theComptonScattering);
|
||||
|
||||
G4GammaConversion* theGammaConversion = new G4GammaConversion();
|
||||
G4LivermoreGammaConversionModel* theLivermoreGammaConversionModel = new G4LivermoreGammaConversionModel();
|
||||
theLivermoreGammaConversionModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
theGammaConversion->AddEmModel(0, theLivermoreGammaConversionModel);
|
||||
pmanager->AddDiscreteProcess(theGammaConversion);
|
||||
|
||||
G4RayleighScattering* theRayleigh = new G4RayleighScattering();
|
||||
G4LivermorePolarizedRayleighModel* theRayleighModel = new G4LivermorePolarizedRayleighModel();
|
||||
theRayleighModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
theRayleigh->AddEmModel(0, theRayleighModel);
|
||||
pmanager->AddDiscreteProcess(theRayleigh);
|
||||
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
// Ionisation
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
G4LivermoreIonisationModel* theIoniLivermore = new
|
||||
G4LivermoreIonisationModel();
|
||||
theIoniLivermore->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
eIoni->AddEmModel(0, theIoniLivermore, new G4UniversalFluctuation() );
|
||||
eIoni->SetStepFunction(0.2, 100*um); //
|
||||
pmanager->AddProcess(eIoni, -1, 2, 2);
|
||||
|
||||
// Bremsstrahlung
|
||||
G4eBremsstrahlung* eBrem = new G4eBremsstrahlung();
|
||||
G4LivermoreBremsstrahlungModel* theBremLivermore = new
|
||||
G4LivermoreBremsstrahlungModel();
|
||||
theBremLivermore->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
eBrem->AddEmModel(0, theBremLivermore);
|
||||
pmanager->AddProcess(eBrem, -1,-3, 3);
|
||||
|
||||
} else if (particleName == "e+") {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
eIoni->SetStepFunction(0.2, 100*um);
|
||||
pmanager->AddProcess(eIoni, -1, 2, 2);
|
||||
|
||||
pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3);
|
||||
|
||||
pmanager->AddProcess(new G4eplusAnnihilation,0,-1, 4);
|
||||
|
||||
} else if (particleName == "mu+" ||
|
||||
particleName == "mu-" ) {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
G4MuMultipleScattering* msc = new G4MuMultipleScattering();
|
||||
msc->AddEmModel(0, new G4WentzelVIModel());
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
G4MuIonisation* muIoni = new G4MuIonisation();
|
||||
muIoni->SetStepFunction(0.2, 50*um);
|
||||
pmanager->AddProcess(muIoni, -1, 2, 2);
|
||||
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4);
|
||||
pmanager->AddDiscreteProcess(new G4CoulombScattering());
|
||||
|
||||
} else if (particleName == "GenericIon") {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
|
||||
G4ionIonisation* ionIoni = new G4ionIonisation();
|
||||
ionIoni->SetEmModel(new G4IonParametrisedLossModel());
|
||||
ionIoni->SetStepFunction(0.1, 10*um);
|
||||
pmanager->AddProcess(ionIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4NuclearStopping(), -1, 3,-1);
|
||||
|
||||
} else if (particleName == "alpha" ||
|
||||
particleName == "He3" ) {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
|
||||
G4ionIonisation* ionIoni = new G4ionIonisation();
|
||||
ionIoni->SetStepFunction(0.1, 20*um);
|
||||
pmanager->AddProcess(ionIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4NuclearStopping(), -1, 3,-1);
|
||||
|
||||
} else if (particleName == "pi+" ||
|
||||
particleName == "pi-" ||
|
||||
particleName == "proton" ) {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
|
||||
G4hIonisation* hIoni = new G4hIonisation();
|
||||
hIoni->SetStepFunction(0.2, 50*um);
|
||||
pmanager->AddProcess(hIoni, -1, 2, 2);
|
||||
|
||||
pmanager->AddProcess(new G4hBremsstrahlung, -1,-3, 3);
|
||||
|
||||
pmanager->AddProcess(new G4hPairProduction, -1,-4, 4);
|
||||
|
||||
} else if (particleName == "B+" ||
|
||||
particleName == "B-" ||
|
||||
particleName == "D+" ||
|
||||
particleName == "D-" ||
|
||||
particleName == "Ds+" ||
|
||||
particleName == "Ds-" ||
|
||||
particleName == "anti_lambda_c+" ||
|
||||
particleName == "anti_omega-" ||
|
||||
particleName == "anti_proton" ||
|
||||
particleName == "anti_sigma_c+" ||
|
||||
particleName == "anti_sigma_c++" ||
|
||||
particleName == "anti_sigma+" ||
|
||||
particleName == "anti_sigma-" ||
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
particleName == "kaon+" ||
|
||||
particleName == "kaon-" ||
|
||||
particleName == "lambda_c+" ||
|
||||
particleName == "omega-" ||
|
||||
particleName == "sigma_c+" ||
|
||||
particleName == "sigma_c++" ||
|
||||
particleName == "sigma+" ||
|
||||
particleName == "sigma-" ||
|
||||
particleName == "tau+" ||
|
||||
particleName == "tau-" ||
|
||||
particleName == "triton" ||
|
||||
particleName == "xi_c+" ||
|
||||
particleName == "xi-" ) {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
|
||||
pmanager->AddProcess(new G4hIonisation, -1, 2, 2);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Em options
|
||||
//
|
||||
G4EmProcessOptions opt;
|
||||
opt.SetVerbose(verbose);
|
||||
|
||||
// Multiple Coulomb scattering
|
||||
//
|
||||
//opt.SetMscStepLimitation(fUseDistanceToBoundary);
|
||||
//opt.SetMscRangeFactor(0.02);
|
||||
|
||||
// Physics tables
|
||||
//
|
||||
|
||||
opt.SetMinEnergy(100*eV);
|
||||
opt.SetMaxEnergy(10*TeV);
|
||||
opt.SetDEDXBinning(220);
|
||||
opt.SetLambdaBinning(220);
|
||||
|
||||
//opt.SetSplineFlag(true);
|
||||
opt.SetPolarAngleLimit(0.2);
|
||||
|
||||
// Ionization
|
||||
//
|
||||
//opt.SetSubCutoff(true);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -0,0 +1,389 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmPenelopePhysics.cc,v 1.7 2009/11/24 12:53:22 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
#include "G4EmPenelopePhysics.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
// *** Processes and models
|
||||
|
||||
// gamma
|
||||
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
#include "G4PenelopePhotoElectricModel.hh"
|
||||
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4PenelopeComptonModel.hh"
|
||||
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4PenelopeGammaConversionModel.hh"
|
||||
|
||||
#include "G4RayleighScattering.hh"
|
||||
#include "G4PenelopeRayleighModel.hh"
|
||||
|
||||
// e- and e+
|
||||
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4UniversalFluctuation.hh"
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4PenelopeIonisationModel.hh"
|
||||
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4PenelopeBremsstrahlungModel.hh"
|
||||
|
||||
// e+ only
|
||||
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
#include "G4PenelopeAnnihilationModel.hh"
|
||||
|
||||
// mu
|
||||
|
||||
#include "G4MuMultipleScattering.hh"
|
||||
#include "G4MuIonisation.hh"
|
||||
#include "G4MuBremsstrahlung.hh"
|
||||
#include "G4MuPairProduction.hh"
|
||||
|
||||
// hadrons
|
||||
|
||||
#include "G4hMultipleScattering.hh"
|
||||
#include "G4MscStepLimitType.hh"
|
||||
|
||||
#include "G4hBremsstrahlung.hh"
|
||||
#include "G4hPairProduction.hh"
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4IonParametrisedLossModel.hh"
|
||||
#include "G4NuclearStopping.hh"
|
||||
|
||||
// msc models
|
||||
#include "G4UrbanMscModel93.hh"
|
||||
#include "G4WentzelVIModel.hh"
|
||||
#include "G4CoulombScattering.hh"
|
||||
|
||||
//
|
||||
|
||||
#include "G4LossTableManager.hh"
|
||||
#include "G4EmProcessOptions.hh"
|
||||
|
||||
// particles
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
#include "G4PionPlus.hh"
|
||||
#include "G4PionMinus.hh"
|
||||
#include "G4KaonPlus.hh"
|
||||
#include "G4KaonMinus.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4AntiProton.hh"
|
||||
#include "G4Deuteron.hh"
|
||||
#include "G4Triton.hh"
|
||||
#include "G4He3.hh"
|
||||
#include "G4Alpha.hh"
|
||||
#include "G4GenericIon.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmPenelopePhysics::G4EmPenelopePhysics(
|
||||
G4int ver, const G4String& name)
|
||||
: G4VPhysicsConstructor(name), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmPenelopePhysics::~G4EmPenelopePhysics()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmPenelopePhysics::ConstructParticle()
|
||||
{
|
||||
// gamma
|
||||
G4Gamma::Gamma();
|
||||
|
||||
// leptons
|
||||
G4Electron::Electron();
|
||||
G4Positron::Positron();
|
||||
G4MuonPlus::MuonPlus();
|
||||
G4MuonMinus::MuonMinus();
|
||||
|
||||
// mesons
|
||||
G4PionPlus::PionPlusDefinition();
|
||||
G4PionMinus::PionMinusDefinition();
|
||||
G4KaonPlus::KaonPlusDefinition();
|
||||
G4KaonMinus::KaonMinusDefinition();
|
||||
|
||||
// baryons
|
||||
G4Proton::Proton();
|
||||
G4AntiProton::AntiProton();
|
||||
|
||||
// ions
|
||||
G4Deuteron::Deuteron();
|
||||
G4Triton::Triton();
|
||||
G4He3::He3();
|
||||
G4Alpha::Alpha();
|
||||
G4GenericIon::GenericIonDefinition();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void G4EmPenelopePhysics::ConstructProcess()
|
||||
{
|
||||
// Add Penelope EM Processes
|
||||
|
||||
theParticleIterator->reset();
|
||||
|
||||
while( (*theParticleIterator)() ){
|
||||
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String particleName = particle->GetParticleName();
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### " << GetPhysicsName() << " instantiates for "
|
||||
<< particleName << G4endl;
|
||||
|
||||
//Applicability range for Penelope models
|
||||
//for higher energies, the Standard models are used
|
||||
G4double PenelopeHighEnergyLimit = 1.0*GeV;
|
||||
|
||||
if (particleName == "gamma") {
|
||||
|
||||
//Photo-electric effect
|
||||
G4PhotoElectricEffect* thePhotoElectricEffect = new G4PhotoElectricEffect();
|
||||
G4PenelopePhotoElectricModel* thePEPenelopeModel = new
|
||||
G4PenelopePhotoElectricModel();
|
||||
thePEPenelopeModel->SetHighEnergyLimit(PenelopeHighEnergyLimit);
|
||||
thePhotoElectricEffect->AddEmModel(0,thePEPenelopeModel);
|
||||
pmanager->AddDiscreteProcess(thePhotoElectricEffect);
|
||||
|
||||
//Compton scattering
|
||||
G4ComptonScattering* theComptonScattering = new G4ComptonScattering();
|
||||
G4PenelopeComptonModel* theComptonPenelopeModel =
|
||||
new G4PenelopeComptonModel();
|
||||
theComptonPenelopeModel->SetHighEnergyLimit(PenelopeHighEnergyLimit);
|
||||
theComptonScattering->AddEmModel(0,theComptonPenelopeModel);
|
||||
pmanager->AddDiscreteProcess(theComptonScattering);
|
||||
|
||||
//Gamma conversion
|
||||
G4GammaConversion* theGammaConversion = new G4GammaConversion();
|
||||
G4PenelopeGammaConversionModel* theGCPenelopeModel =
|
||||
new G4PenelopeGammaConversionModel();
|
||||
theGammaConversion->AddEmModel(0,theGCPenelopeModel);
|
||||
pmanager->AddDiscreteProcess(theGammaConversion);
|
||||
|
||||
//Rayleigh scattering
|
||||
G4RayleighScattering* theRayleigh = new G4RayleighScattering();
|
||||
G4PenelopeRayleighModel* theRayleighPenelopeModel =
|
||||
new G4PenelopeRayleighModel();
|
||||
theRayleighPenelopeModel->SetHighEnergyLimit(PenelopeHighEnergyLimit);
|
||||
theRayleigh->AddEmModel(0,theRayleighPenelopeModel);
|
||||
pmanager->AddDiscreteProcess(theRayleigh);
|
||||
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
//Ionisation
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
G4PenelopeIonisationModel* theIoniPenelope =
|
||||
new G4PenelopeIonisationModel();
|
||||
theIoniPenelope->SetHighEnergyLimit(PenelopeHighEnergyLimit);
|
||||
eIoni->AddEmModel(0,theIoniPenelope,new G4UniversalFluctuation());
|
||||
eIoni->SetStepFunction(0.2, 100*um); //
|
||||
pmanager->AddProcess(eIoni, -1, 2, 2);
|
||||
|
||||
//Bremsstrahlung
|
||||
G4eBremsstrahlung* eBrem = new G4eBremsstrahlung();
|
||||
G4PenelopeBremsstrahlungModel* theBremPenelope = new
|
||||
G4PenelopeBremsstrahlungModel();
|
||||
theBremPenelope->SetHighEnergyLimit(PenelopeHighEnergyLimit);
|
||||
eBrem->AddEmModel(0,theBremPenelope);
|
||||
pmanager->AddProcess(eBrem, -1,-3, 3);
|
||||
|
||||
} else if (particleName == "e+") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
//Ionisation
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
G4PenelopeIonisationModel* theIoniPenelope =
|
||||
new G4PenelopeIonisationModel();
|
||||
theIoniPenelope->SetHighEnergyLimit(PenelopeHighEnergyLimit);
|
||||
eIoni->AddEmModel(0,theIoniPenelope,new G4UniversalFluctuation());
|
||||
eIoni->SetStepFunction(0.2, 100*um); //
|
||||
pmanager->AddProcess(eIoni, -1, 2, 2);
|
||||
|
||||
//Bremsstrahlung
|
||||
G4eBremsstrahlung* eBrem = new G4eBremsstrahlung();
|
||||
G4PenelopeBremsstrahlungModel* theBremPenelope = new
|
||||
G4PenelopeBremsstrahlungModel();
|
||||
theBremPenelope->SetHighEnergyLimit(PenelopeHighEnergyLimit);
|
||||
eBrem->AddEmModel(0,theBremPenelope);
|
||||
pmanager->AddProcess(eBrem, -1,-3, 3);
|
||||
|
||||
//Annihilation
|
||||
G4eplusAnnihilation* eAnni = new G4eplusAnnihilation();
|
||||
G4PenelopeAnnihilationModel* theAnnPenelope = new
|
||||
G4PenelopeAnnihilationModel();
|
||||
theAnnPenelope->SetHighEnergyLimit(PenelopeHighEnergyLimit);
|
||||
eAnni->AddEmModel(0,theAnnPenelope);
|
||||
pmanager->AddProcess(eAnni,0,-1, 4);
|
||||
|
||||
} else if (particleName == "mu+" ||
|
||||
particleName == "mu-" ) {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
G4MuMultipleScattering* msc = new G4MuMultipleScattering();
|
||||
msc->AddEmModel(0, new G4WentzelVIModel());
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
G4MuIonisation* muIoni = new G4MuIonisation();
|
||||
muIoni->SetStepFunction(0.2, 50*um);
|
||||
|
||||
pmanager->AddProcess(muIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4);
|
||||
pmanager->AddDiscreteProcess(new G4CoulombScattering());
|
||||
|
||||
} else if (particleName == "GenericIon") {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
|
||||
G4ionIonisation* ionIoni = new G4ionIonisation();
|
||||
ionIoni->SetEmModel(new G4IonParametrisedLossModel());
|
||||
ionIoni->SetStepFunction(0.1, 10*um);
|
||||
pmanager->AddProcess(ionIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4NuclearStopping(), -1, 3,-1);
|
||||
|
||||
} else if (particleName == "alpha" ||
|
||||
particleName == "He3" ) {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
|
||||
G4ionIonisation* ionIoni = new G4ionIonisation();
|
||||
ionIoni->SetStepFunction(0.1, 20*um);
|
||||
pmanager->AddProcess(ionIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4NuclearStopping(), -1, 3,-1);
|
||||
|
||||
} else if (particleName == "pi+" ||
|
||||
particleName == "pi-" ||
|
||||
particleName == "kaon+" ||
|
||||
particleName == "kaon-" ||
|
||||
particleName == "proton" ) {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
|
||||
G4hIonisation* hIoni = new G4hIonisation();
|
||||
hIoni->SetStepFunction(0.2, 50*um);
|
||||
|
||||
pmanager->AddProcess(hIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4hBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4hPairProduction, -1,-4, 4);
|
||||
|
||||
} else if (particleName == "B+" ||
|
||||
particleName == "B-" ||
|
||||
particleName == "D+" ||
|
||||
particleName == "D-" ||
|
||||
particleName == "Ds+" ||
|
||||
particleName == "Ds-" ||
|
||||
particleName == "anti_lambda_c+" ||
|
||||
particleName == "anti_omega-" ||
|
||||
particleName == "anti_proton" ||
|
||||
particleName == "anti_sigma_c+" ||
|
||||
particleName == "anti_sigma_c++" ||
|
||||
particleName == "anti_sigma+" ||
|
||||
particleName == "anti_sigma-" ||
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
particleName == "lambda_c+" ||
|
||||
particleName == "omega-" ||
|
||||
particleName == "sigma_c+" ||
|
||||
particleName == "sigma_c++" ||
|
||||
particleName == "sigma+" ||
|
||||
particleName == "sigma-" ||
|
||||
particleName == "tau+" ||
|
||||
particleName == "tau-" ||
|
||||
particleName == "triton" ||
|
||||
particleName == "xi_c+" ||
|
||||
particleName == "xi-" ) {
|
||||
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4hIonisation, -1, 2, 2);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Em options
|
||||
//
|
||||
G4EmProcessOptions opt;
|
||||
opt.SetVerbose(verbose);
|
||||
|
||||
// Multiple Coulomb scattering
|
||||
//
|
||||
//opt.SetMscStepLimitation(fUseDistanceToBoundary);
|
||||
//opt.SetMscRangeFactor(0.02);
|
||||
|
||||
// Physics tables
|
||||
//
|
||||
|
||||
opt.SetMinEnergy(100*eV);
|
||||
opt.SetMaxEnergy(10*TeV);
|
||||
opt.SetDEDXBinning(220);
|
||||
opt.SetLambdaBinning(220);
|
||||
|
||||
//opt.SetSplineFlag(true);
|
||||
opt.SetPolarAngleLimit(0.2);
|
||||
|
||||
// Ionization
|
||||
//
|
||||
//opt.SetSubCutoff(true);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics.cc,v 1.16 2008/11/21 16:50:30 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4EmStandardPhysics.cc,v 1.20 2009/10/30 18:36:15 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -53,9 +53,9 @@
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
|
||||
#include "G4MultipleScattering.hh"
|
||||
#include "G4hMultipleScattering.hh"
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4MuMultipleScattering.hh"
|
||||
#include "G4hMultipleScattering.hh"
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
@@ -154,34 +154,40 @@ void G4EmStandardPhysics::ConstructProcess()
|
||||
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
pmanager->AddProcess(new G4eMultipleScattering,-1, 1, 1);
|
||||
pmanager->AddProcess(new G4eIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung(), -1,-3, 3);
|
||||
pmanager->AddProcess(new G4eMultipleScattering(), -1, 1, 1);
|
||||
pmanager->AddProcess(new G4eIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung(), -1,-3, 3);
|
||||
|
||||
} else if (particleName == "e+") {
|
||||
|
||||
pmanager->AddProcess(new G4eMultipleScattering,-1, 1, 1);
|
||||
pmanager->AddProcess(new G4eIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4);
|
||||
pmanager->AddProcess(new G4eMultipleScattering(), -1, 1, 1);
|
||||
pmanager->AddProcess(new G4eIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4);
|
||||
|
||||
} else if (particleName == "mu+" ||
|
||||
particleName == "mu-" ) {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering,-1, 1, 1);
|
||||
pmanager->AddProcess(new G4MuIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4);
|
||||
pmanager->AddProcess(new G4MuMultipleScattering,-1, 1, 1);
|
||||
pmanager->AddProcess(new G4MuIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4);
|
||||
|
||||
} else if (particleName == "alpha" ||
|
||||
particleName == "He3" ||
|
||||
particleName == "GenericIon") {
|
||||
particleName == "He3") {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4ionIonisation, -1, 2, 2);
|
||||
|
||||
} else if (particleName == "GenericIon") {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4ionIonisation, -1, 2, 2);
|
||||
|
||||
} else if (particleName == "pi+" ||
|
||||
particleName == "pi-" ||
|
||||
particleName == "kaon+" ||
|
||||
particleName == "kaon-" ||
|
||||
particleName == "proton" ) {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
@@ -205,8 +211,6 @@ void G4EmStandardPhysics::ConstructProcess()
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
particleName == "kaon+" ||
|
||||
particleName == "kaon-" ||
|
||||
particleName == "lambda_c+" ||
|
||||
particleName == "omega-" ||
|
||||
particleName == "sigma_c+" ||
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option1.cc,v 1.11 2008/11/21 16:50:30 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4EmStandardPhysics_option1.cc,v 1.15 2009/10/30 18:36:15 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -56,8 +56,8 @@
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4MuMultipleScattering.hh"
|
||||
#include "G4hMultipleScattering.hh"
|
||||
#include "G4MultipleScattering.hh"
|
||||
#include "G4MscStepLimitType.hh"
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
@@ -180,20 +180,26 @@ void G4EmStandardPhysics_option1::ConstructProcess()
|
||||
} else if (particleName == "mu+" ||
|
||||
particleName == "mu-" ) {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4MuMultipleScattering,-1, 1, 1);
|
||||
pmanager->AddProcess(new G4MuIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4);
|
||||
|
||||
} else if (particleName == "alpha" ||
|
||||
particleName == "He3" ||
|
||||
particleName == "GenericIon") {
|
||||
particleName == "He3") {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4ionIonisation, -1, 2, 2);
|
||||
|
||||
} else if (particleName == "GenericIon") {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4ionIonisation, -1, 2, 2);
|
||||
|
||||
} else if (particleName == "pi+" ||
|
||||
particleName == "pi-" ||
|
||||
particleName == "kaon+" ||
|
||||
particleName == "kaon-" ||
|
||||
particleName == "proton" ) {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
@@ -217,8 +223,6 @@ void G4EmStandardPhysics_option1::ConstructProcess()
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
particleName == "kaon+" ||
|
||||
particleName == "kaon-" ||
|
||||
particleName == "lambda_c+" ||
|
||||
particleName == "omega-" ||
|
||||
particleName == "sigma_c+" ||
|
||||
@@ -237,7 +241,7 @@ void G4EmStandardPhysics_option1::ConstructProcess()
|
||||
}
|
||||
G4EmProcessOptions opt;
|
||||
opt.SetVerbose(verbose);
|
||||
//opt.SetApplyCuts(true);
|
||||
opt.SetApplyCuts(true);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option2.cc,v 1.15 2008/11/21 17:59:23 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4EmStandardPhysics_option2.cc,v 1.20 2009/11/24 12:53:22 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -61,6 +61,9 @@
|
||||
#include "G4hMultipleScattering.hh"
|
||||
#include "G4MuMultipleScattering.hh"
|
||||
#include "G4CoulombScattering.hh"
|
||||
#include "G4UrbanMscModel93.hh"
|
||||
#include "G4WentzelVIModel.hh"
|
||||
//#include "G4GoudsmitSaundersonMscModel.hh"
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
@@ -74,6 +77,7 @@
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
//#include "G4IonParametrisedLossModel.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
@@ -160,13 +164,19 @@ void G4EmStandardPhysics_option2::ConstructProcess()
|
||||
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
pmanager->AddProcess(new G4eMultipleScattering, -1, 1, 1);
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
// msc->AddEmModel(0, new G4GoudsmitSaundersonMscModel());
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4eIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3);
|
||||
|
||||
} else if (particleName == "e+") {
|
||||
|
||||
pmanager->AddProcess(new G4eMultipleScattering, -1, 1, 1);
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
// msc->AddEmModel(0, new G4GoudsmitSaundersonMscModel());
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4eIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4);
|
||||
@@ -174,24 +184,36 @@ void G4EmStandardPhysics_option2::ConstructProcess()
|
||||
} else if (particleName == "mu+" ||
|
||||
particleName == "mu-" ) {
|
||||
|
||||
pmanager->AddProcess(new G4MuMultipleScattering,-1, 1, 1);
|
||||
pmanager->AddProcess(new G4MuIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4);
|
||||
G4MuMultipleScattering* msc = new G4MuMultipleScattering();
|
||||
msc->AddEmModel(0, new G4WentzelVIModel());
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4MuIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4);
|
||||
pmanager->AddDiscreteProcess(new G4CoulombScattering());
|
||||
|
||||
} else if (particleName == "GenericIon") {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
|
||||
G4ionIonisation* ionIoni = new G4ionIonisation();
|
||||
//ionIoni->SetEmModel(new G4IonParametrisedLossModel());
|
||||
//ionIoni->SetStepFunction(0.1, 20*um);
|
||||
pmanager->AddProcess(ionIoni, -1, 2, 2);
|
||||
|
||||
} else if (particleName == "alpha" ||
|
||||
particleName == "He3" ||
|
||||
particleName == "GenericIon") {
|
||||
particleName == "He3") {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4ionIonisation, -1, 2, 2);
|
||||
|
||||
} else if (particleName == "pi+" ||
|
||||
particleName == "pi-" ||
|
||||
particleName == "kaon+" ||
|
||||
particleName == "kaon-" ||
|
||||
particleName == "proton" ) {
|
||||
|
||||
pmanager->AddProcess(new G4MuMultipleScattering,-1, 1, 1);
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4hIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4hBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4hPairProduction, -1,-4, 4);
|
||||
@@ -212,8 +234,6 @@ void G4EmStandardPhysics_option2::ConstructProcess()
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
particleName == "kaon+" ||
|
||||
particleName == "kaon-" ||
|
||||
particleName == "lambda_c+" ||
|
||||
particleName == "omega-" ||
|
||||
particleName == "sigma_c+" ||
|
||||
@@ -239,17 +259,13 @@ void G4EmStandardPhysics_option2::ConstructProcess()
|
||||
|
||||
// Physics tables
|
||||
//
|
||||
//opt.SetMinEnergy(100*eV);
|
||||
//opt.SetMaxEnergy(100*TeV);
|
||||
//opt.SetDEDXBinning(84);
|
||||
//opt.SetLambdaBinning(84);
|
||||
//opt.SetMinEnergy(0.1*keV);
|
||||
// opt.SetMaxEnergy(10*TeV);
|
||||
//opt.SetDEDXBinning(77);
|
||||
//opt.SetLambdaBinning(77);
|
||||
//opt.SetSplineFlag(true);
|
||||
opt.SetPolarAngleLimit(0.2);
|
||||
|
||||
// Energy loss
|
||||
//
|
||||
//opt.SetLinearLossLimit(0.01);
|
||||
|
||||
|
||||
// Ionization
|
||||
//
|
||||
//opt.SetSubCutoff(true);
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option3.cc,v 1.14 2008/11/21 16:50:30 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4EmStandardPhysics_option3.cc,v 1.18 2009/11/24 12:53:22 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -49,11 +49,15 @@
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
#include "G4LowEnergyRayleigh.hh"
|
||||
#include "G4RayleighScattering.hh"
|
||||
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4MuMultipleScattering.hh"
|
||||
#include "G4hMultipleScattering.hh"
|
||||
#include "G4MscStepLimitType.hh"
|
||||
#include "G4UrbanMscModel93.hh"
|
||||
#include "G4WentzelVIModel.hh"
|
||||
#include "G4CoulombScattering.hh"
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
@@ -67,6 +71,8 @@
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4IonParametrisedLossModel.hh"
|
||||
#include "G4NuclearStopping.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
@@ -147,14 +153,15 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
|
||||
if (particleName == "gamma") {
|
||||
|
||||
pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh);
|
||||
pmanager->AddDiscreteProcess(new G4PhotoElectricEffect);
|
||||
pmanager->AddDiscreteProcess(new G4ComptonScattering);
|
||||
pmanager->AddDiscreteProcess(new G4GammaConversion);
|
||||
pmanager->AddDiscreteProcess(new G4RayleighScattering);
|
||||
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
@@ -165,6 +172,7 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
} else if (particleName == "e+") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
@@ -176,24 +184,38 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
} else if (particleName == "mu+" ||
|
||||
particleName == "mu-" ) {
|
||||
|
||||
pmanager->AddProcess(new G4eMultipleScattering, -1, 1, 1);
|
||||
G4MuMultipleScattering* msc = new G4MuMultipleScattering();
|
||||
msc->AddEmModel(0, new G4WentzelVIModel());
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
G4MuIonisation* muIoni = new G4MuIonisation();
|
||||
muIoni->SetStepFunction(0.2, 50*um);
|
||||
pmanager->AddProcess(muIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4);
|
||||
pmanager->AddDiscreteProcess(new G4CoulombScattering());
|
||||
|
||||
} else if (particleName == "alpha" ||
|
||||
particleName == "He3" ||
|
||||
particleName == "GenericIon") {
|
||||
particleName == "He3") {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
G4ionIonisation* ionIoni = new G4ionIonisation();
|
||||
ionIoni->SetStepFunction(0.1, 20*um);
|
||||
pmanager->AddProcess(ionIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4NuclearStopping(), -1, 3,-1);
|
||||
|
||||
} else if (particleName == "GenericIon") {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
G4ionIonisation* ionIoni = new G4ionIonisation();
|
||||
ionIoni->SetEmModel(new G4IonParametrisedLossModel());
|
||||
ionIoni->SetStepFunction(0.1, 10*um);
|
||||
pmanager->AddProcess(ionIoni, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4NuclearStopping(), -1, 3,-1);
|
||||
|
||||
} else if (particleName == "pi+" ||
|
||||
particleName == "pi-" ||
|
||||
particleName == "kaon+" ||
|
||||
particleName == "kaon-" ||
|
||||
particleName == "proton" ) {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
@@ -219,8 +241,6 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
particleName == "kaon+" ||
|
||||
particleName == "kaon-" ||
|
||||
particleName == "lambda_c+" ||
|
||||
particleName == "omega-" ||
|
||||
particleName == "sigma_c+" ||
|
||||
@@ -255,6 +275,7 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
opt.SetDEDXBinning(220);
|
||||
opt.SetLambdaBinning(220);
|
||||
//opt.SetSplineFlag(true);
|
||||
opt.SetPolarAngleLimit(0.2);
|
||||
|
||||
// Ionization
|
||||
//
|
||||
|
||||
@@ -23,10 +23,25 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFBinaryNeutronBuilder.cc,v 1.4 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFBinaryNeutronBuilder
|
||||
//
|
||||
// Author: 2008 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4FTFBinaryNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
|
||||
G4FTFBinaryNeutronBuilder::
|
||||
G4FTFBinaryNeutronBuilder(G4bool quasiElastic)
|
||||
@@ -79,6 +94,7 @@ Build(G4HadronCaptureProcess * )
|
||||
void G4FTFBinaryNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
aP->AddDataSet(new G4NeutronInelasticCrossSection);
|
||||
}
|
||||
|
||||
@@ -23,14 +23,29 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4FTFBinaryPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
// $Id: G4FTFBinaryPiKBuilder.cc,v 1.3 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFBinaryPiKBuilder
|
||||
//
|
||||
// Author: 2008 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4FTFBinaryPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4FTFBinaryPiKBuilder::
|
||||
G4FTFBinaryPiKBuilder(G4bool quasiElastic)
|
||||
G4FTFBinaryPiKBuilder::
|
||||
G4FTFBinaryPiKBuilder(G4bool quasiElastic)
|
||||
{
|
||||
thePiData = new G4PiNuclearCrossSection;
|
||||
theMin = 4*GeV;
|
||||
theModel = new G4TheoFSGenerator("FTFB");
|
||||
|
||||
@@ -55,8 +70,7 @@
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
}
|
||||
|
||||
G4FTFBinaryPiKBuilder::
|
||||
~G4FTFBinaryPiKBuilder()
|
||||
G4FTFBinaryPiKBuilder:: ~G4FTFBinaryPiKBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
@@ -65,22 +79,22 @@
|
||||
if ( theQuasiElastic ) delete theQuasiElastic;
|
||||
}
|
||||
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
aP->AddDataSet(&thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->AddDataSet(&thePiData);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
@@ -88,7 +102,6 @@
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
@@ -96,7 +109,6 @@
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
@@ -104,7 +116,6 @@
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
@@ -112,6 +123,5 @@
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
@@ -23,10 +23,25 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFBinaryProtonBuilder.cc,v 1.3 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFBinaryProtonBuilder
|
||||
//
|
||||
// Author: 2008 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4FTFBinaryProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
G4FTFBinaryProtonBuilder::
|
||||
G4FTFBinaryProtonBuilder(G4bool quasiElastic)
|
||||
@@ -60,9 +75,8 @@ void G4FTFBinaryProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
aP->AddDataSet(new G4ProtonInelasticCrossSection);
|
||||
}
|
||||
|
||||
G4FTFBinaryProtonBuilder::
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFBuilder.cc,v 1.2 2009/11/25 19:33:18 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFBuilder
|
||||
//
|
||||
// Author: 28 June 2009 V.Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4FTFBuilder.hh"
|
||||
#include "G4FTFModel.hh"
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4QStringChipsParticleLevelInterface.hh"
|
||||
#include "G4GeneratorPrecompoundInterface.hh"
|
||||
#include "G4LundStringFragmentation.hh"
|
||||
#include "G4BinaryCascade.hh"
|
||||
|
||||
|
||||
G4FTFBuilder::G4FTFBuilder(const G4String& aName) : G4VHadronModelBuilder(aName)
|
||||
{}
|
||||
|
||||
G4FTFBuilder::~G4FTFBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
//delete theStringModel; // is deleted by the model
|
||||
}
|
||||
|
||||
G4HadronicInteraction* G4FTFBuilder::BuildModel()
|
||||
{
|
||||
G4TheoFSGenerator* theFTFModel = new G4TheoFSGenerator(GetName());
|
||||
theStringModel = new G4FTFModel();
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation());
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
theFTFModel->SetHighEnergyGenerator(theStringModel);
|
||||
|
||||
if(GetName() == "FTFP") {
|
||||
theFTFModel->SetTransport(new G4GeneratorPrecompoundInterface());
|
||||
} else if(GetName() == "FTFC") {
|
||||
theFTFModel->SetTransport(new G4QStringChipsParticleLevelInterface());
|
||||
} else if(GetName() == "FTFB") {
|
||||
theFTFModel->SetTransport(new G4BinaryCascade());
|
||||
} else {
|
||||
theFTFModel->SetTransport(new G4GeneratorPrecompoundInterface());
|
||||
}
|
||||
|
||||
return theFTFModel;
|
||||
}
|
||||
@@ -23,10 +23,25 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFCNeutronBuilder.cc,v 1.3 2009/03/31 18:38:34 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFCNeutronBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4FTFCNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
|
||||
G4FTFCNeutronBuilder::
|
||||
G4FTFCNeutronBuilder(G4bool quasiElastic)
|
||||
@@ -49,10 +64,11 @@ G4FTFCNeutronBuilder(G4bool quasiElastic)
|
||||
{ theQuasiElastic=0;}
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
}
|
||||
|
||||
G4FTFCNeutronBuilder::
|
||||
~G4FTFCNeutronBuilder()
|
||||
G4FTFCNeutronBuilder::~G4FTFCNeutronBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
@@ -79,10 +95,8 @@ Build(G4HadronCaptureProcess * )
|
||||
void G4FTFCNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
aP->AddDataSet(&theXSec);
|
||||
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->AddDataSet(new G4NeutronInelasticCrossSection);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,20 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFCPiKBuilder.cc,v 1.3 2009/03/31 18:38:34 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFCPiKBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4FTFCPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
@@ -31,6 +45,7 @@
|
||||
G4FTFCPiKBuilder::
|
||||
G4FTFCPiKBuilder(G4bool quasiElastic)
|
||||
{
|
||||
thePiData = new G4PiNuclearCrossSection;
|
||||
theMin = 4*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
@@ -48,6 +63,9 @@ G4FTFCPiKBuilder(G4bool quasiElastic)
|
||||
theModel->SetQuasiElasticChannel(theQuasiElastic);
|
||||
} else
|
||||
{ theQuasiElastic=0;}
|
||||
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
}
|
||||
|
||||
G4FTFCPiKBuilder::
|
||||
@@ -65,18 +83,16 @@ Build(G4HadronElasticProcess * ) {}
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
aP->AddDataSet(&thePiData);
|
||||
aP->AddDataSet(thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
aP->AddDataSet(&thePiData);
|
||||
aP->AddDataSet(thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
@@ -84,7 +100,6 @@ void G4FTFCPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
@@ -92,7 +107,6 @@ void G4FTFCPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
@@ -100,7 +114,6 @@ void G4FTFCPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
@@ -108,7 +121,6 @@ void G4FTFCPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
|
||||
@@ -23,35 +23,72 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFCProtonBuilder.cc,v 1.4 2009/03/31 18:38:34 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFCProtonBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4FTFCProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "TheoModelFactory.hh"
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
G4FTFCProtonBuilder::
|
||||
G4FTFCProtonBuilder(G4bool quasiElastic)
|
||||
{
|
||||
theMin = 4*GeV;
|
||||
theModel = TheoModelFactory<G4StringChipsParticleLevelInterface,
|
||||
G4FTFModel, G4LundStringFragmentation>::New();
|
||||
theModel = new G4TheoFSGenerator;
|
||||
|
||||
theStringModel = new G4FTFModel;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4StringChipsParticleLevelInterface;
|
||||
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
|
||||
if (quasiElastic)
|
||||
if (quasiElastic)
|
||||
{
|
||||
theQuasiElastic=new G4QuasiElasticChannel;
|
||||
theModel->SetQuasiElasticChannel(theQuasiElastic);
|
||||
} else
|
||||
{ theQuasiElastic=0;}
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
}
|
||||
|
||||
G4FTFCProtonBuilder::~G4FTFCProtonBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
if ( theQuasiElastic ) delete theQuasiElastic;
|
||||
delete theStringModel;
|
||||
delete theModel;
|
||||
}
|
||||
|
||||
void G4FTFCProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
aP->AddDataSet(new G4ProtonInelasticCrossSection);
|
||||
}
|
||||
|
||||
void G4FTFCProtonBuilder::
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -23,15 +23,31 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFPNeutronBuilder.cc,v 1.5 2009/04/23 18:54:57 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFPNeutronBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4FTFPNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
|
||||
G4FTFPNeutronBuilder::
|
||||
G4FTFPNeutronBuilder(G4bool quasiElastic)
|
||||
{
|
||||
theMin = 4*GeV;
|
||||
theMin = 4*GeV;
|
||||
theMax = 100*TeV;
|
||||
theModel = new G4TheoFSGenerator("FTFP");
|
||||
|
||||
theStringModel = new G4FTFModel;
|
||||
@@ -51,6 +67,9 @@ G4FTFPNeutronBuilder(G4bool quasiElastic)
|
||||
theModel->SetQuasiElasticChannel(theQuasiElastic);
|
||||
} else
|
||||
{ theQuasiElastic=0;}
|
||||
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
}
|
||||
|
||||
G4FTFPNeutronBuilder::
|
||||
@@ -82,9 +101,9 @@ void G4FTFPNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
aP->AddDataSet(new G4NeutronInelasticCrossSection);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -23,15 +23,31 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4FTFPPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
// $Id: G4FTFPPiKBuilder.cc,v 1.5 2009/04/23 18:54:57 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFPPiKBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4FTFPPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4FTFPPiKBuilder::
|
||||
G4FTFPPiKBuilder(G4bool quasiElastic)
|
||||
G4FTFPPiKBuilder::
|
||||
G4FTFPPiKBuilder(G4bool quasiElastic)
|
||||
{
|
||||
thePiData = new G4PiNuclearCrossSection;
|
||||
theMin = 4*GeV;
|
||||
theMax = 100*TeV;
|
||||
theModel = new G4TheoFSGenerator("FTFP");
|
||||
|
||||
theStringModel = new G4FTFModel;
|
||||
@@ -51,10 +67,11 @@
|
||||
{ theQuasiElastic=0;}
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
}
|
||||
|
||||
G4FTFPPiKBuilder::
|
||||
~G4FTFPPiKBuilder()
|
||||
G4FTFPPiKBuilder:: ~G4FTFPPiKBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
@@ -63,56 +80,56 @@
|
||||
if ( theQuasiElastic ) delete theQuasiElastic;
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->AddDataSet(&thePiData);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->AddDataSet(&thePiData);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
|
||||
@@ -23,15 +23,31 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFPProtonBuilder.cc,v 1.6 2009/04/23 18:54:57 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4FTFPProtonBuilder
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4FTFPProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
|
||||
G4FTFPProtonBuilder::
|
||||
G4FTFPProtonBuilder(G4bool quasiElastic)
|
||||
{
|
||||
theMin = 4*GeV;
|
||||
theMax = 100.*TeV;
|
||||
theModel = new G4TheoFSGenerator("FTFP");
|
||||
|
||||
theStringModel = new G4FTFModel;
|
||||
@@ -51,15 +67,17 @@ G4FTFPProtonBuilder(G4bool quasiElastic)
|
||||
{ theQuasiElastic=0;}
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
}
|
||||
|
||||
void G4FTFPProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
aP->AddDataSet(new G4ProtonInelasticCrossSection);
|
||||
}
|
||||
|
||||
G4FTFPProtonBuilder::
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronHElasticPhysics.cc,v 1.5 2008/05/19 10:21:34 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4HadronHElasticPhysics.cc,v 1.7 2009/11/28 17:35:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -41,11 +41,6 @@
|
||||
|
||||
#include "G4HadronHElasticPhysics.hh"
|
||||
|
||||
#include "G4HadronicProcess.hh"
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronicInteraction.hh"
|
||||
#include "G4LElastic.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
@@ -54,31 +49,30 @@
|
||||
#include "G4IonConstructor.hh"
|
||||
#include "G4Neutron.hh"
|
||||
|
||||
#include "G4VQCrossSection.hh"
|
||||
#include "G4WHadronElasticProcess.hh"
|
||||
#include "G4VHadronElastic.hh"
|
||||
#include "G4CHIPSElastic.hh"
|
||||
#include "G4ElasticHadrNucleusHE.hh"
|
||||
#include "G4NeutronHPElastic.hh"
|
||||
#include "G4UElasticCrossSection.hh"
|
||||
#include "G4BGGNucleonElasticXS.hh"
|
||||
#include "G4BGGPionElasticXS.hh"
|
||||
#include "G4NeutronElasticXS.hh"
|
||||
|
||||
G4HadronHElasticPhysics::G4HadronHElasticPhysics(G4int ver, G4bool hp)
|
||||
: G4VPhysicsConstructor("HElastic"), mname("HElastic"), verbose(ver),
|
||||
hpFlag(hp), wasActivated(false)
|
||||
G4HadronHElasticPhysics::G4HadronHElasticPhysics(G4int ver, G4bool hp,
|
||||
const G4String& type)
|
||||
: G4VPhysicsConstructor("HElastic"), verbose(ver),
|
||||
hpFlag(hp), wasActivated(false), subtype(type)
|
||||
{
|
||||
if(verbose > 1) G4cout << "### HadronHElasticPhysics" << G4endl;
|
||||
model = 0;
|
||||
neutronModel = 0;
|
||||
neutronHPModel = 0;
|
||||
}
|
||||
|
||||
G4HadronHElasticPhysics::~G4HadronHElasticPhysics()
|
||||
{
|
||||
delete model;
|
||||
delete neutronModel;
|
||||
delete neutronHPModel;
|
||||
}
|
||||
{}
|
||||
|
||||
void G4HadronHElasticPhysics::ConstructParticle()
|
||||
{
|
||||
// G4cout << "G4HadronElasticPhysics::ConstructParticle" << G4endl;
|
||||
// G4cout << "G4HadronElasticPhysics::ConstructParticle" << G4endl;
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
@@ -95,22 +89,21 @@ void G4HadronHElasticPhysics::ConstructProcess()
|
||||
if(wasActivated) return;
|
||||
wasActivated = true;
|
||||
|
||||
G4double elimit = 0.4*GeV;
|
||||
//G4double elimit = 0.0;
|
||||
|
||||
if(verbose > 1)
|
||||
G4double elimit = 1.0*GeV;
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysics Construct Processes with HE limit "
|
||||
<< elimit << " MeV" << G4endl;
|
||||
}
|
||||
|
||||
G4HadronicProcess* hel = 0;
|
||||
G4VQCrossSection* man = 0;
|
||||
G4VHadronElastic* plep0 = new G4VHadronElastic();
|
||||
G4VHadronElastic* plep1 = new G4VHadronElastic();
|
||||
plep1->SetMaxEnergy(elimit);
|
||||
|
||||
G4HadronElastic* he = new G4HadronElastic();
|
||||
he->SetHEModelLowLimit(elimit);
|
||||
he->SetQModelLowLimit(0.0);
|
||||
he->SetLowestEnergyLimit(0.0);
|
||||
model = he;
|
||||
man = he->GetCS();
|
||||
G4CHIPSElastic* chipsp = new G4CHIPSElastic();
|
||||
G4CHIPSElastic* chipsn = new G4CHIPSElastic();
|
||||
|
||||
G4ElasticHadrNucleusHE* he = new G4ElasticHadrNucleusHE();
|
||||
he->SetMinEnergy(elimit);
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
@@ -142,44 +135,48 @@ void G4HadronHElasticPhysics::ConstructProcess()
|
||||
pname == "triton") {
|
||||
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
|
||||
h->SetQElasticCrossSection(man);
|
||||
hel = h;
|
||||
G4WHadronElasticProcess* hel = new G4WHadronElasticProcess();
|
||||
if(pname == "proton") {
|
||||
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
hel->RegisterMe(chipsp);
|
||||
} else if (pname == "pi+" || pname == "pi-") {
|
||||
hel->AddDataSet(new G4BGGPionElasticXS(particle));
|
||||
hel->RegisterMe(plep1);
|
||||
hel->RegisterMe(he);
|
||||
} else {
|
||||
hel->AddDataSet(new G4UElasticCrossSection(particle));
|
||||
//hel->AddDataSet(new G4UElasticCrossSection(particle));
|
||||
hel->RegisterMe(plep0);
|
||||
}
|
||||
hel->RegisterMe(model);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronHElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
|
||||
// neutron case
|
||||
} else if(pname == "neutron") {
|
||||
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
|
||||
G4HadronElastic* nhe = new G4HadronElastic();
|
||||
nhe->SetHEModelLowLimit(elimit);
|
||||
neutronModel = nhe;
|
||||
h->SetQElasticCrossSection(nhe->GetCS());
|
||||
hel = h;
|
||||
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
G4WHadronElasticProcess* hel = new G4WHadronElasticProcess();
|
||||
if(subtype == "QBBC_XGGSN") {
|
||||
hel->AddDataSet(new G4NeutronElasticXS());
|
||||
} else {
|
||||
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
}
|
||||
hel->RegisterMe(chipsn);
|
||||
|
||||
if(hpFlag) {
|
||||
neutronModel->SetMinEnergy(19.5*MeV);
|
||||
neutronHPModel = new G4NeutronHPElastic();
|
||||
hel->RegisterMe(neutronHPModel);
|
||||
chipsn->SetMinEnergy(19.5*MeV);
|
||||
G4NeutronHPElastic* hp = new G4NeutronHPElastic();
|
||||
hel->RegisterMe(hp);
|
||||
hel->AddDataSet(new G4NeutronHPElasticData());
|
||||
}
|
||||
|
||||
hel->RegisterMe(neutronModel);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### HadronHElasticPhysics added for "
|
||||
<< particle->GetParticleName() << G4endl;
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronHElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4InclAblaNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4InclAblaNeutronBuilder::
|
||||
G4InclAblaNeutronBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theMax = 3.0*GeV;
|
||||
theModel = new G4InclAblaCascadeInterface;
|
||||
}
|
||||
|
||||
void G4InclAblaNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
G4InclAblaNeutronBuilder::
|
||||
~G4InclAblaNeutronBuilder()
|
||||
{
|
||||
delete theModel;
|
||||
}
|
||||
|
||||
void G4InclAblaNeutronBuilder::
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4InclAblaNeutronBuilder::
|
||||
Build(G4HadronFissionProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4InclAblaNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,102 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4InclAblaPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4InclAblaPiKBuilder::
|
||||
G4InclAblaPiKBuilder()
|
||||
{
|
||||
theMin = 0*GeV;
|
||||
theMax = 3.0*GeV;
|
||||
theModel = new G4InclAblaCascadeInterface;
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
theBertiniModel = new G4CascadeInterface;
|
||||
theBertiniModel->SetMinEnergy(theMin);
|
||||
theBertiniModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
G4InclAblaPiKBuilder::
|
||||
~G4InclAblaPiKBuilder()
|
||||
{
|
||||
delete theModel;
|
||||
}
|
||||
|
||||
void G4InclAblaPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4InclAblaPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4InclAblaPiKBuilder::
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4InclAblaPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess *aP)
|
||||
{
|
||||
aP->RegisterMe(theBertiniModel);
|
||||
theBertiniModel->SetMinEnergy(theMin);
|
||||
theBertiniModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4InclAblaPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess *aP)
|
||||
{
|
||||
aP->RegisterMe(theBertiniModel);
|
||||
theBertiniModel->SetMinEnergy(theMin);
|
||||
theBertiniModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4InclAblaPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess *aP)
|
||||
{
|
||||
aP->RegisterMe(theBertiniModel);
|
||||
theBertiniModel->SetMinEnergy(theMin);
|
||||
theBertiniModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4InclAblaPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess *aP)
|
||||
{
|
||||
aP->RegisterMe(theBertiniModel);
|
||||
theBertiniModel->SetMinEnergy(theMin);
|
||||
theBertiniModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4InclAblaProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4InclAblaProtonBuilder::
|
||||
G4InclAblaProtonBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theMax=3.0*GeV;
|
||||
theModel = new G4InclAblaCascadeInterface;
|
||||
}
|
||||
|
||||
G4InclAblaProtonBuilder::
|
||||
~G4InclAblaProtonBuilder()
|
||||
{
|
||||
delete theModel;
|
||||
}
|
||||
|
||||
void G4InclAblaProtonBuilder::
|
||||
Build(G4HadronElasticProcess * )
|
||||
{
|
||||
}
|
||||
|
||||
void G4InclAblaProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4IonBinaryCascadePhysics.cc,v 1.1 2006/10/31 11:35:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4IonBinaryCascadePhysics.cc,v 1.2 2009/02/16 10:15:35 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -117,9 +117,9 @@ void G4IonBinaryCascadePhysics::AddProcess(const G4String& name,
|
||||
p_list.push_back(hadi);
|
||||
G4ProcessManager* pManager = p->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(hadi);
|
||||
hadi->AddDataSet(fShen);
|
||||
hadi->AddDataSet(fTripathi);
|
||||
hadi->AddDataSet(fTripathiLight);
|
||||
hadi->AddDataSet(fShen);
|
||||
hmodel->SetMinEnergy(eminBIC);
|
||||
hmodel->SetMaxEnergy(emax);
|
||||
hadi->RegisterMe(hmodel);
|
||||
@@ -132,7 +132,9 @@ void G4IonBinaryCascadePhysics::AddProcess(const G4String& name,
|
||||
G4cout << "Register " << hadi->GetProcessName()
|
||||
<< " for " << p->GetParticleName()
|
||||
<< " Binary Cascade for E(MeV)= " << eminBIC << " - " << emax;
|
||||
if(lmodel) G4cout << " LHEP for E(MeV)= " << emax-MeV << " - " << emaxLHEP;
|
||||
if(lmodel) {
|
||||
G4cout << " LHEP for E(MeV)= " << emax-MeV << " - " << emaxLHEP;
|
||||
}
|
||||
G4cout << G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,152 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4IonInclAblaPhysics.cc,v 1.1 2009/07/19 18:24:03 kaitanie Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4IonInclAblaPhysics
|
||||
//
|
||||
// Author: P. Kaitaniemi
|
||||
//
|
||||
// Modified:
|
||||
// 23.06.06 V.Ivanchenko set emaxLHEP=1 TeV
|
||||
// 24.06.06 V.Ivanchenko fix typo
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4IonInclAblaPhysics.hh"
|
||||
|
||||
#include "G4DeuteronInelasticProcess.hh"
|
||||
#include "G4TritonInelasticProcess.hh"
|
||||
#include "G4AlphaInelasticProcess.hh"
|
||||
#include "G4HadronInelasticProcess.hh"
|
||||
|
||||
#include "G4InclAblaLightIonInterface.hh"
|
||||
#include "G4TripathiCrossSection.hh"
|
||||
#include "G4TripathiLightCrossSection.hh"
|
||||
#include "G4IonsShenCrossSection.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
// Nuclei
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
G4IonInclAblaPhysics::G4IonInclAblaPhysics(const G4String& name,
|
||||
G4int verb)
|
||||
: G4VPhysicsConstructor(name), verbose(verb), wasActivated(false)
|
||||
{
|
||||
// INCL/ABLA light ion maximum energy is 3.0 GeV/nucleon
|
||||
emax_d = 2 * 3.0 * GeV;
|
||||
emax_t = 3 * 3.0 * GeV;
|
||||
emax_he3 = 3 * 3.0 * GeV;
|
||||
emax_alpha = 4 * 3.0 * GeV;
|
||||
emaxLHEP = 1.*TeV;
|
||||
emin = 0.*MeV;
|
||||
if(verbose > 1) G4cout << "### G4IonInclAblaPhysics" << G4endl;
|
||||
}
|
||||
|
||||
G4IonInclAblaPhysics::~G4IonInclAblaPhysics()
|
||||
{
|
||||
if(wasActivated) {
|
||||
delete fTripathi;
|
||||
delete fTripathiLight;
|
||||
delete fShen;
|
||||
delete fLEDModel;
|
||||
delete fLETModel;
|
||||
delete fLEAModel;
|
||||
G4int i;
|
||||
G4int n = p_list.size();
|
||||
for(i=0; i<n; i++) {delete p_list[i];}
|
||||
n = model_list.size();
|
||||
for(i=0; i<n; i++) {delete model_list[i];}
|
||||
}
|
||||
}
|
||||
|
||||
void G4IonInclAblaPhysics::ConstructProcess()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
wasActivated = true;
|
||||
|
||||
G4InclAblaLightIonInterface* fInclAblaIons= new G4InclAblaLightIonInterface();
|
||||
model_list.push_back(fInclAblaIons);
|
||||
fShen = new G4IonsShenCrossSection;
|
||||
fTripathi = new G4TripathiCrossSection;
|
||||
fTripathiLight = new G4TripathiLightCrossSection;
|
||||
|
||||
fLEDModel = new G4LEDeuteronInelastic();
|
||||
fLETModel = new G4LETritonInelastic();
|
||||
fLEAModel = new G4LEAlphaInelastic();
|
||||
|
||||
AddProcess("dInelastic", G4Deuteron::Deuteron(), fInclAblaIons, fLEDModel, emax_d);
|
||||
AddProcess("tInelastic",G4Triton::Triton(), fInclAblaIons, fLETModel, emax_t);
|
||||
AddProcess("He3Inelastic",G4He3::He3(), fInclAblaIons, 0, emax_he3);
|
||||
AddProcess("alphaInelastic", G4Alpha::Alpha(), fInclAblaIons, fLEAModel, emax_alpha);
|
||||
// Support for light ions heavier than Alpha will be included in a future release of INCL/ABLA
|
||||
// AddProcess("ionInelastic",G4GenericIon::GenericIon(), fInclAblaIons, 0);
|
||||
}
|
||||
|
||||
void G4IonInclAblaPhysics::AddProcess(const G4String& name,
|
||||
G4ParticleDefinition* p,
|
||||
G4HadronicInteraction* hmodel,
|
||||
G4HadronicInteraction* lmodel,
|
||||
const G4double inclEnergyUpperLimit = 3.0 * GeV)
|
||||
{
|
||||
G4HadronInelasticProcess* hadi = new G4HadronInelasticProcess(name, p);
|
||||
p_list.push_back(hadi);
|
||||
G4ProcessManager* pManager = p->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(hadi);
|
||||
hadi->AddDataSet(fShen);
|
||||
hadi->AddDataSet(fTripathi);
|
||||
hadi->AddDataSet(fTripathiLight);
|
||||
hmodel->SetMinEnergy(emin);
|
||||
hmodel->SetMaxEnergy(inclEnergyUpperLimit);
|
||||
hadi->RegisterMe(hmodel);
|
||||
if(lmodel) {
|
||||
lmodel->SetMinEnergy(inclEnergyUpperLimit - MeV);
|
||||
lmodel->SetMaxEnergy(emaxLHEP);
|
||||
hadi->RegisterMe(lmodel);
|
||||
}
|
||||
if(verbose > 1) {
|
||||
G4cout << "Register " << hadi->GetProcessName()
|
||||
<< " for " << p->GetParticleName()
|
||||
<< " INCL/ABLA for E(MeV)= " << emin << " - " << inclEnergyUpperLimit;
|
||||
if(lmodel) {
|
||||
G4cout << " LHEP for E(MeV)= " << inclEnergyUpperLimit-MeV << " - " << emaxLHEP;
|
||||
}
|
||||
G4cout << G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
void G4IonInclAblaPhysics::ConstructParticle()
|
||||
{
|
||||
// Construct light ions
|
||||
G4IonConstructor pConstructor;
|
||||
pConstructor.ConstructParticle();
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4IonQMDPhysics.cc,v 1.1 2009/11/27 17:25:15 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4IonQMDPhysics
|
||||
// Created from G4IonBinaryCascadePhysics
|
||||
//
|
||||
// Author: G.Folger
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4IonQMDPhysics.hh"
|
||||
|
||||
#include "G4DeuteronInelasticProcess.hh"
|
||||
#include "G4TritonInelasticProcess.hh"
|
||||
#include "G4AlphaInelasticProcess.hh"
|
||||
#include "G4HadronInelasticProcess.hh"
|
||||
|
||||
#include "G4BinaryLightIonReaction.hh"
|
||||
#include "G4QMDReaction.hh"
|
||||
|
||||
#include "G4TripathiCrossSection.hh"
|
||||
#include "G4TripathiLightCrossSection.hh"
|
||||
#include "G4IonsShenCrossSection.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
// Nuclei
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
G4IonQMDPhysics::G4IonQMDPhysics(const G4String& name,
|
||||
G4int verb)
|
||||
: G4VPhysicsConstructor(name), verbose(verb), wasActivated(false)
|
||||
{
|
||||
eminBIC = 0.*MeV;
|
||||
eminQMD = 100.*MeV;
|
||||
emaxQMD = 10.*GeV;
|
||||
emaxLHEP = 1.*TeV;
|
||||
overlap = 10*MeV;
|
||||
if(verbose > 1) G4cout << "### G4IonQMDPhysics" << G4endl;
|
||||
}
|
||||
|
||||
G4IonQMDPhysics::~G4IonQMDPhysics()
|
||||
{
|
||||
if(wasActivated) {
|
||||
delete fTripathi;
|
||||
delete fTripathiLight;
|
||||
delete fShen;
|
||||
delete fLEDModel;
|
||||
delete fLETModel;
|
||||
delete fLEAModel;
|
||||
G4int i;
|
||||
G4int n = p_list.size();
|
||||
for(i=0; i<n; i++) {delete p_list[i];}
|
||||
n = model_list.size();
|
||||
for(i=0; i<n; i++) {delete model_list[i];}
|
||||
}
|
||||
}
|
||||
|
||||
void G4IonQMDPhysics::ConstructProcess()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
wasActivated = true;
|
||||
|
||||
G4BinaryLightIonReaction* fBC= new G4BinaryLightIonReaction();
|
||||
model_list.push_back(fBC);
|
||||
G4QMDReaction* fQMD= new G4QMDReaction();
|
||||
model_list.push_back(fQMD);
|
||||
|
||||
fShen = new G4IonsShenCrossSection;
|
||||
fTripathi = new G4TripathiCrossSection;
|
||||
fTripathiLight = new G4TripathiLightCrossSection;
|
||||
|
||||
fLEDModel = new G4LEDeuteronInelastic();
|
||||
fLETModel = new G4LETritonInelastic();
|
||||
fLEAModel = new G4LEAlphaInelastic();
|
||||
|
||||
AddProcess("dInelastic", G4Deuteron::Deuteron(), fBC,0, fLEDModel);
|
||||
AddProcess("tInelastic",G4Triton::Triton(), fBC,0, fLETModel);
|
||||
AddProcess("He3Inelastic",G4He3::He3(), fBC,0, 0);
|
||||
AddProcess("alphaInelastic", G4Alpha::Alpha(), fBC,0, fLEAModel);
|
||||
AddProcess("ionInelastic",G4GenericIon::GenericIon(), fBC, fQMD, 0);
|
||||
|
||||
}
|
||||
|
||||
void G4IonQMDPhysics::AddProcess(const G4String& name,
|
||||
G4ParticleDefinition* p,
|
||||
G4BinaryLightIonReaction* BIC,
|
||||
G4QMDReaction* QMD,
|
||||
G4HadronicInteraction* LHEP)
|
||||
{
|
||||
G4HadronInelasticProcess* hadi = new G4HadronInelasticProcess(name, p);
|
||||
p_list.push_back(hadi);
|
||||
G4ProcessManager* pManager = p->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(hadi);
|
||||
|
||||
hadi->AddDataSet(fShen);
|
||||
hadi->AddDataSet(fTripathi);
|
||||
hadi->AddDataSet(fTripathiLight);
|
||||
|
||||
BIC->SetMinEnergy(eminBIC);
|
||||
BIC->SetMaxEnergy(emaxQMD); //reset when QMD is present
|
||||
hadi->RegisterMe(BIC);
|
||||
|
||||
if(QMD) {
|
||||
QMD->SetMinEnergy(eminQMD);
|
||||
BIC->SetMaxEnergy(eminQMD-overlap);
|
||||
QMD->SetMaxEnergy(emaxQMD);
|
||||
hadi->RegisterMe(QMD);
|
||||
}
|
||||
|
||||
if(LHEP) {
|
||||
LHEP->SetMinEnergy(emaxQMD - overlap);
|
||||
LHEP->SetMaxEnergy(emaxLHEP);
|
||||
hadi->RegisterMe(LHEP);
|
||||
}
|
||||
if(verbose > 1) {
|
||||
G4cout << "Register " << hadi->GetProcessName()
|
||||
<< " for " << p->GetParticleName() << G4endl
|
||||
<< " Binary Cascade for E(MeV)= " << eminBIC << " - "
|
||||
<< (QMD==0 ? emaxQMD : (eminQMD-overlap)) ;
|
||||
if(QMD) {
|
||||
G4cout << G4endl <<" QMD for E(MeV)= " << eminQMD << " - " << emaxQMD;
|
||||
}
|
||||
if(LHEP) {
|
||||
G4cout << G4endl<< " LHEP for E(MeV)= " << emaxQMD-overlap << " - " << emaxLHEP;
|
||||
}
|
||||
G4cout << G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
void G4IonQMDPhysics::ConstructParticle()
|
||||
{
|
||||
// Construct light ions
|
||||
G4IonConstructor pConstructor;
|
||||
pConstructor.ConstructParticle();
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user