Import Geant4 10.5.0.beta source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$Id: History 110187 2018-05-17 10:41:08Z gcosmo $
|
||||
$Id: History 110183 2018-05-17 10:26:21Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -14,13 +14,30 @@ introduced in the code and keeptrack of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
17-May-2018 V.Ivanchenko (phys-ctor-em-V10-03-38)
|
||||
17-May-2018 V.Ivanchenko (phys-ctor-em-V10-04-03)
|
||||
- G4EmModelActivator - fixed GS and Opt3 configurations
|
||||
|
||||
27-April-2018 V.Ivanchenko
|
||||
27-April-2018 V.Ivanchenko (phys-ctor-em-V10-04-02)
|
||||
- in several constructors return back the order of photo-effect
|
||||
and Compton in order to keep log file stable
|
||||
|
||||
27-April-2018 V.Ivanchenko (phys-ctor-em-V10-04-01)
|
||||
- G4EmStandardPhysics_option1, G4EmStandardPhysics_option2 - use
|
||||
Livermore photo-effect model
|
||||
- G4EmStandardPhysics_option4, G4EmLivermorePhysics,
|
||||
G4EmPenelopePhysics - upper energy limit 100 TeV
|
||||
- G4EmLowEPPhysics - use new 5D gamma conversion model below 80 GeV,
|
||||
use new Lindhard-Sorensen ion ionisation model above 20 MeV/u
|
||||
- G4EmModelActivator - modified accordingly
|
||||
|
||||
28-March-2018 V.Ivanchenko
|
||||
28-March-2018 V.Ivanchenko (phys-ctor-em-V10-04-00)
|
||||
- G4EmStandardPhysics, G4EmStandardPhysics_option1,
|
||||
G4EmStandardPhysics_option2, G4EmStandardPhysics_option4,
|
||||
G4EmLowEPPhysics, G4EmPenelopePhysics, G4EmLivermorePhysics,
|
||||
G4EmLivermorePolarizedPhysics, G4EmStandardPhysicsGS - use new
|
||||
parameter MscEnergyLimit() (default is 100 MeV) allowing
|
||||
customise transition from low-energy multiple scattering to
|
||||
high energy combination of multiple and single scattering
|
||||
- G4EmModelActivator - fixed Opt4 and single scattering (problem #2045)
|
||||
|
||||
07-November-2017 V.Ivanchenko (phys-ctor-em-V10-03-37)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmLivermorePhysics.cc 107183 2017-11-03 14:57:23Z gcosmo $
|
||||
// $Id: G4EmLivermorePhysics.cc 109526 2018-04-30 07:11:52Z gcosmo $
|
||||
|
||||
#include "G4EmLivermorePhysics.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
@@ -134,14 +134,12 @@ G4EmLivermorePhysics::G4EmLivermorePhysics(G4int ver, const G4String&)
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(100*eV);
|
||||
param->SetMaxEnergy(1*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
param->SetMscRangeFactor(0.02);
|
||||
param->SetMuHadLateralDisplacement(true);
|
||||
param->SetMscStepLimitType(fUseDistanceToBoundary);
|
||||
param->SetLateralDisplacementAlg96(false);
|
||||
param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
@@ -208,7 +206,7 @@ void G4EmLivermorePhysics::ConstructProcess()
|
||||
G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc");
|
||||
|
||||
// high energy limit for e+- scattering models
|
||||
G4double highEnergyLimit = 100*MeV;
|
||||
G4double highEnergyLimit = G4EmParameters::Instance()->MscEnergyLimit();
|
||||
|
||||
// nuclear stopping
|
||||
G4NuclearStopping* pnuc = new G4NuclearStopping();
|
||||
|
||||
+2
-4
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmLivermorePolarizedPhysics.cc 107183 2017-11-03 14:57:23Z gcosmo $
|
||||
// $Id: G4EmLivermorePolarizedPhysics.cc 109526 2018-04-30 07:11:52Z gcosmo $
|
||||
|
||||
#include "G4EmLivermorePolarizedPhysics.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
@@ -136,14 +136,12 @@ G4EmLivermorePolarizedPhysics::G4EmLivermorePolarizedPhysics(G4int ver,
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(100*eV);
|
||||
param->SetMaxEnergy(100*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
param->SetMscRangeFactor(0.02);
|
||||
param->SetMuHadLateralDisplacement(true);
|
||||
param->SetMscStepLimitType(fUseDistanceToBoundary);
|
||||
param->SetLateralDisplacementAlg96(false);
|
||||
param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
@@ -214,7 +212,7 @@ void G4EmLivermorePolarizedPhysics::ConstructProcess()
|
||||
G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc");
|
||||
|
||||
// high energy limit for e+- scattering models
|
||||
G4double highEnergyLimit = 100*MeV;
|
||||
G4double highEnergyLimit = G4EmParameters::Instance()->MscEnergyLimit();
|
||||
|
||||
// nuclear stopping
|
||||
G4NuclearStopping* pnuc = new G4NuclearStopping();
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmLowEPPhysics.cc 107183 2017-11-03 14:57:23Z gcosmo $
|
||||
// $Id: G4EmLowEPPhysics.cc 109526 2018-04-30 07:11:52Z gcosmo $
|
||||
|
||||
#include "G4EmLowEPPhysics.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
@@ -56,6 +56,7 @@
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4LivermoreBremsstrahlungModel.hh"
|
||||
#include "G4Generator2BS.hh"
|
||||
#include "G4BetheHeitler5DModel.hh"
|
||||
|
||||
// e+
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
@@ -78,6 +79,7 @@
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4alphaIonisation.hh"
|
||||
#include "G4IonParametrisedLossModel.hh"
|
||||
#include "G4LindhardSorensenIonModel.hh"
|
||||
#include "G4NuclearStopping.hh"
|
||||
|
||||
// msc models
|
||||
@@ -131,11 +133,9 @@ G4EmLowEPPhysics::G4EmLowEPPhysics(G4int ver, const G4String&)
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(100*eV);
|
||||
param->SetMaxEnergy(1*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
param->SetLateralDisplacementAlg96(false);
|
||||
param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
@@ -230,7 +230,7 @@ void G4EmLowEPPhysics::ConstructProcess()
|
||||
|
||||
// gamma conversion - Livermore model below 80 GeV
|
||||
G4GammaConversion* theGammaConversion = new G4GammaConversion();
|
||||
theGammaConversion->SetEmModel(new G4LivermoreGammaConversionModel());
|
||||
theGammaConversion->SetEmModel(new G4BetheHeitler5DModel());
|
||||
ph->RegisterProcess(theGammaConversion, particle);
|
||||
|
||||
// default Rayleigh scattering is Livermore
|
||||
@@ -310,7 +310,12 @@ void G4EmLowEPPhysics::ConstructProcess()
|
||||
} else if (particleName == "GenericIon") {
|
||||
|
||||
G4ionIonisation* ionIoni = new G4ionIonisation();
|
||||
ionIoni->SetEmModel(new G4IonParametrisedLossModel());
|
||||
G4VEmModel* mod1 = new G4IonParametrisedLossModel();
|
||||
G4VEmModel* mod2 = new G4LindhardSorensenIonModel();
|
||||
mod1->SetHighEnergyLimit(20*MeV);
|
||||
mod2->SetLowEnergyLimit(20*MeV);
|
||||
ionIoni->SetEmModel(mod1);
|
||||
ionIoni->SetEmModel(mod2);
|
||||
ionIoni->SetStepFunction(0.1, 1*um);
|
||||
|
||||
ph->RegisterProcess(hmsc, particle);
|
||||
|
||||
@@ -168,7 +168,7 @@ void G4EmModelActivator::ActivateEmOptions()
|
||||
G4VEmModel* mod;
|
||||
|
||||
// high energy limit for low-energy e+- model of msc
|
||||
G4double mscEnergyLimit = 100*MeV;
|
||||
G4double mscEnergyLimit = G4EmParameters::Instance()->MscEnergyLimit();
|
||||
|
||||
// high energy limit for Livermore and Penelope models
|
||||
G4double highEnergyLimit = 1*GeV;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmPenelopePhysics.cc 107183 2017-11-03 14:57:23Z gcosmo $
|
||||
// $Id: G4EmPenelopePhysics.cc 109526 2018-04-30 07:11:52Z gcosmo $
|
||||
|
||||
#include "G4EmPenelopePhysics.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
@@ -138,13 +138,11 @@ G4EmPenelopePhysics::G4EmPenelopePhysics(G4int ver, const G4String&)
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(100*eV);
|
||||
param->SetMaxEnergy(1*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->SetMscRangeFactor(0.02);
|
||||
param->SetMscStepLimitType(fUseDistanceToBoundary);
|
||||
param->SetMuHadLateralDisplacement(true);
|
||||
param->SetLateralDisplacementAlg96(false);
|
||||
param->SetFluo(true);
|
||||
param->SetPIXEElectronCrossSectionModel("Penelope");
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
@@ -211,7 +209,7 @@ void G4EmPenelopePhysics::ConstructProcess()
|
||||
G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc");
|
||||
|
||||
// high energy limit for e+- scattering models
|
||||
G4double highEnergyLimit = 100*MeV;
|
||||
G4double highEnergyLimit = G4EmParameters::Instance()->MscEnergyLimit();
|
||||
|
||||
// nuclear stopping
|
||||
G4NuclearStopping* pnuc = new G4NuclearStopping();
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics.cc 107183 2017-11-03 14:57:23Z gcosmo $
|
||||
// $Id: G4EmStandardPhysics.cc 109122 2018-03-28 13:08:57Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -191,7 +191,7 @@ void G4EmStandardPhysics::ConstructProcess()
|
||||
G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc");
|
||||
|
||||
// high energy limit for e+- scattering models
|
||||
G4double highEnergyLimit = 100*MeV;
|
||||
G4double highEnergyLimit = G4EmParameters::Instance()->MscEnergyLimit();
|
||||
|
||||
// Add standard EM Processes
|
||||
G4ParticleTable* table = G4ParticleTable::GetParticleTable();
|
||||
|
||||
@@ -198,7 +198,7 @@ void G4EmStandardPhysicsGS::ConstructProcess()
|
||||
G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc");
|
||||
|
||||
// high energy limit for e+- scattering models
|
||||
G4double highEnergyLimit = 100*MeV;
|
||||
G4double highEnergyLimit = G4EmParameters::Instance()->MscEnergyLimit();
|
||||
|
||||
// Add standard EM Processes
|
||||
G4ParticleTable* table = G4ParticleTable::GetParticleTable();
|
||||
|
||||
@@ -122,8 +122,7 @@ G4EmStandardPhysicsSS::G4EmStandardPhysicsSS(G4int ver)
|
||||
param->SetVerbose(verbose);
|
||||
param->SetLowestElectronEnergy(10*eV);
|
||||
param->SetMscThetaLimit(0.0);
|
||||
param->SetFluo(true);
|
||||
param->SetAuger(true);
|
||||
param->SetAugerCascade(true);
|
||||
param->SetPixe(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
@@ -198,14 +197,14 @@ void G4EmStandardPhysicsSS::ConstructProcess()
|
||||
if (!particle) { continue; }
|
||||
if (particleName == "gamma") {
|
||||
|
||||
G4ComptonScattering* cs = new G4ComptonScattering;
|
||||
cs->SetEmModel(new G4KleinNishinaModel());
|
||||
|
||||
G4PhotoElectricEffect* pee = new G4PhotoElectricEffect();
|
||||
pee->SetEmModel(new G4LivermorePhotoElectricModel());
|
||||
|
||||
ph->RegisterProcess(cs, particle);
|
||||
G4ComptonScattering* cs = new G4ComptonScattering;
|
||||
cs->SetEmModel(new G4KleinNishinaModel());
|
||||
|
||||
ph->RegisterProcess(pee, particle);
|
||||
ph->RegisterProcess(cs, particle);
|
||||
ph->RegisterProcess(new G4GammaConversion(), particle);
|
||||
ph->RegisterProcess(new G4RayleighScattering(), particle);
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ G4EmStandardPhysicsWVI::G4EmStandardPhysicsWVI(G4int ver)
|
||||
param->SetVerbose(verbose);
|
||||
param->SetLowestElectronEnergy(10*eV);
|
||||
//param->SetLatDisplacementBeyondSafety(true);
|
||||
//param->SetMuHadLateralDisplacement(false);
|
||||
param->SetMuHadLateralDisplacement(true);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
param->SetMscThetaLimit(0.15);
|
||||
param->SetFluo(true);
|
||||
@@ -207,14 +207,14 @@ void G4EmStandardPhysicsWVI::ConstructProcess()
|
||||
if (!particle) { continue; }
|
||||
if (particleName == "gamma") {
|
||||
|
||||
G4ComptonScattering* cs = new G4ComptonScattering;
|
||||
cs->SetEmModel(new G4KleinNishinaModel());
|
||||
|
||||
G4PhotoElectricEffect* pee = new G4PhotoElectricEffect();
|
||||
pee->SetEmModel(new G4LivermorePhotoElectricModel());
|
||||
|
||||
ph->RegisterProcess(cs, particle);
|
||||
G4ComptonScattering* cs = new G4ComptonScattering;
|
||||
cs->SetEmModel(new G4KleinNishinaModel());
|
||||
|
||||
ph->RegisterProcess(pee, particle);
|
||||
ph->RegisterProcess(cs, particle);
|
||||
ph->RegisterProcess(new G4GammaConversion(), particle);
|
||||
ph->RegisterProcess(new G4RayleighScattering(), particle);
|
||||
|
||||
|
||||
+7
-3
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option1.cc 107183 2017-11-03 14:57:23Z gcosmo $
|
||||
// $Id: G4EmStandardPhysics_option1.cc 109526 2018-04-30 07:11:52Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -55,6 +55,7 @@
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
#include "G4LivermorePhotoElectricModel.hh"
|
||||
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4MuMultipleScattering.hh"
|
||||
@@ -197,7 +198,7 @@ void G4EmStandardPhysics_option1::ConstructProcess()
|
||||
G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc");
|
||||
|
||||
// high energy limit for e+- scattering models and bremsstrahlung
|
||||
G4double highEnergyLimit = 100*MeV;
|
||||
G4double highEnergyLimit = G4EmParameters::Instance()->MscEnergyLimit();
|
||||
|
||||
// Add standard EM Processes
|
||||
G4ParticleTable* table = G4ParticleTable::GetParticleTable();
|
||||
@@ -206,7 +207,10 @@ void G4EmStandardPhysics_option1::ConstructProcess()
|
||||
if (!particle) { continue; }
|
||||
if (particleName == "gamma") {
|
||||
|
||||
ph->RegisterProcess(new G4PhotoElectricEffect(), particle);
|
||||
G4PhotoElectricEffect* pee = new G4PhotoElectricEffect();
|
||||
pee->SetEmModel(new G4LivermorePhotoElectricModel());
|
||||
ph->RegisterProcess(pee, particle);
|
||||
|
||||
ph->RegisterProcess(new G4ComptonScattering(), particle);
|
||||
ph->RegisterProcess(new G4GammaConversion(), particle);
|
||||
|
||||
|
||||
+7
-4
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option2.cc 107183 2017-11-03 14:57:23Z gcosmo $
|
||||
// $Id: G4EmStandardPhysics_option2.cc 109526 2018-04-30 07:11:52Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -55,7 +55,7 @@
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
#include "G4PEEffectFluoModel.hh"
|
||||
#include "G4LivermorePhotoElectricModel.hh"
|
||||
#include "G4KleinNishinaModel.hh"
|
||||
#include "G4RayleighScattering.hh"
|
||||
|
||||
@@ -203,7 +203,7 @@ void G4EmStandardPhysics_option2::ConstructProcess()
|
||||
G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc");
|
||||
|
||||
// high energy limit for e+- scattering models and bremsstrahlung
|
||||
G4double highEnergyLimit = 100*MeV;
|
||||
G4double highEnergyLimit = G4EmParameters::Instance()->MscEnergyLimit();
|
||||
|
||||
// Add standard EM Processes
|
||||
G4ParticleTable* table = G4ParticleTable::GetParticleTable();
|
||||
@@ -212,7 +212,10 @@ void G4EmStandardPhysics_option2::ConstructProcess()
|
||||
if (!particle) { continue; }
|
||||
if (particleName == "gamma") {
|
||||
|
||||
ph->RegisterProcess(new G4PhotoElectricEffect(), particle);
|
||||
G4PhotoElectricEffect* pee = new G4PhotoElectricEffect();
|
||||
pee->SetEmModel(new G4LivermorePhotoElectricModel());
|
||||
ph->RegisterProcess(pee, particle);
|
||||
|
||||
ph->RegisterProcess(new G4ComptonScattering(), particle);
|
||||
ph->RegisterProcess(new G4GammaConversion(), particle);
|
||||
ph->RegisterProcess(new G4RayleighScattering(), particle);
|
||||
|
||||
+6
-7
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option3.cc 107183 2017-11-03 14:57:23Z gcosmo $
|
||||
// $Id: G4EmStandardPhysics_option3.cc 109526 2018-04-30 07:11:52Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -124,12 +124,11 @@ G4EmStandardPhysics_option3::G4EmStandardPhysics_option3(G4int ver,
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(10*eV);
|
||||
param->SetMaxEnergy(100*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->SetMscStepLimitType(fUseDistanceToBoundary);
|
||||
param->SetMuHadLateralDisplacement(true);
|
||||
param->SetLateralDisplacementAlg96(false);
|
||||
//param->SetLateralDisplacementAlg96(false);
|
||||
param->SetFluo(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
@@ -202,14 +201,14 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
if (!particle) { continue; }
|
||||
if (particleName == "gamma") {
|
||||
|
||||
G4ComptonScattering* cs = new G4ComptonScattering;
|
||||
cs->SetEmModel(new G4KleinNishinaModel());
|
||||
|
||||
G4PhotoElectricEffect* pee = new G4PhotoElectricEffect();
|
||||
pee->SetEmModel(new G4LivermorePhotoElectricModel());
|
||||
|
||||
ph->RegisterProcess(pee, particle);
|
||||
|
||||
G4ComptonScattering* cs = new G4ComptonScattering;
|
||||
cs->SetEmModel(new G4KleinNishinaModel());
|
||||
ph->RegisterProcess(cs, particle);
|
||||
|
||||
ph->RegisterProcess(new G4GammaConversion(), particle);
|
||||
ph->RegisterProcess(new G4RayleighScattering(), particle);
|
||||
|
||||
|
||||
+3
-6
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option4.cc 107332 2017-11-08 16:44:06Z gcosmo $
|
||||
// $Id: G4EmStandardPhysics_option4.cc 109526 2018-04-30 07:11:52Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -133,7 +133,6 @@ G4EmStandardPhysics_option4::G4EmStandardPhysics_option4(G4int ver,
|
||||
param->SetDefaults();
|
||||
param->SetVerbose(verbose);
|
||||
param->SetMinEnergy(100*eV);
|
||||
param->SetMaxEnergy(10*TeV);
|
||||
param->SetLowestElectronEnergy(100*eV);
|
||||
param->SetNumberOfBinsPerDecade(20);
|
||||
param->ActivateAngularGeneratorForIonisation(true);
|
||||
@@ -142,8 +141,6 @@ G4EmStandardPhysics_option4::G4EmStandardPhysics_option4(G4int ver,
|
||||
param->SetMscSkin(3); // error-free stepping for e-/e+ msc gs
|
||||
param->SetMscRangeFactor(0.2); // error-free stepping for e-/e+ msc gs
|
||||
param->SetMuHadLateralDisplacement(true);
|
||||
// param->SetLatDisplacementBeyondSafety(true);
|
||||
// param->SetFluo(true);
|
||||
param->SetAugerCascade(true);
|
||||
SetPhysicsType(bElectromagnetic);
|
||||
}
|
||||
@@ -188,7 +185,7 @@ void G4EmStandardPhysics_option4::ConstructParticle()
|
||||
|
||||
void G4EmStandardPhysics_option4::ConstructProcess()
|
||||
{
|
||||
if(verbose > -1) {
|
||||
if(verbose > 1) {
|
||||
G4cout << "### " << GetPhysicsName() << " Construct Processes " << G4endl;
|
||||
}
|
||||
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
|
||||
@@ -220,7 +217,7 @@ void G4EmStandardPhysics_option4::ConstructProcess()
|
||||
G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc");
|
||||
|
||||
// energy limits for e+- scattering models
|
||||
G4double highEnergyLimit = 100*MeV;
|
||||
G4double highEnergyLimit = G4EmParameters::Instance()->MscEnergyLimit();
|
||||
// energy limits for e+- ionisation models
|
||||
G4double penEnergyLimit = 1*MeV;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: GNUmakefile 94089 2015-11-05 15:12:13Z gcosmo $
|
||||
# $Id: GNUmakefile 108674 2018-02-27 07:32:51Z gcosmo $
|
||||
# ---------------------------------------------------------------------------
|
||||
# GNUmakefile for physics_lists/constructors/factory library.
|
||||
# GNUmakefile for physics_lists/constructors/factory library.
|
||||
# Gunter Folger 10-Jan-2012.
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
@@ -17,6 +17,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \
|
||||
-I$(G4BASE)/global/HEPRandom/include \
|
||||
-I$(G4BASE)/global/HEPNumerics/include \
|
||||
-I$(G4BASE)/global/HEPGeometry/include \
|
||||
-I$(G4BASE)/geometry/biasing/include \
|
||||
-I$(G4BASE)/geometry/volumes/include \
|
||||
-I$(G4BASE)/geometry/management/include \
|
||||
-I$(G4BASE)/geometry/magneticfield/include \
|
||||
@@ -31,16 +32,17 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \
|
||||
-I$(G4BASE)/particles/hadrons/barions/include \
|
||||
-I$(G4BASE)/particles/hadrons/ions/include \
|
||||
-I$(G4BASE)/run/include \
|
||||
-I$(G4BASE)/physics_lists/builders/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/decay/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/electromagnetic/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/gamma_lepto_nuclear/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/hadron_elastic/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/hadron_inelastic/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/limiters/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/ions/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/stopping/include \
|
||||
-I$(G4BASE)/physics_lists/util/include \
|
||||
-I$(G4BASE)/physics_lists/builders/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/decay/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/electromagnetic/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/gamma_lepto_nuclear/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/hadron_elastic/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/hadron_inelastic/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/limiters/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/ions/include \
|
||||
-I$(G4BASE)/physics_lists/constructors/stopping/include \
|
||||
-I$(G4BASE)/physics_lists/util/include \
|
||||
-I$(G4BASE)/processes/biasing/importance/include \
|
||||
-I$(G4BASE)/processes/management/include \
|
||||
-I$(G4BASE)/processes/transportation/include \
|
||||
-I$(G4BASE)/processes/decay/include \
|
||||
@@ -67,7 +69,7 @@ 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/qmd/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/coherent_elastic/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/de_excitation/evaporation/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/de_excitation/fermi_breakup/include \
|
||||
|
||||
@@ -7,13 +7,30 @@ $Id: History 66241 2012-12-13 18:34:42Z gunter $
|
||||
|
||||
Hadronic physics-list/constructors/factory History
|
||||
--------------------------------------------------
|
||||
This file should be used to briefly summarize all major modifications
|
||||
This file should be used to briefly summarize all major modifications
|
||||
introduced in the code and keeptrack of all tags.
|
||||
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
16-Mar-2018, Robert Hatcher (phys-ctor-fact-V10-04-02)
|
||||
- Allows override of exclusion of G4RegisterPhysicsConstructors.icc
|
||||
when using WIN32 by setting USING_STATIC_LIBS
|
||||
|
||||
28-Feb-2018, Robert Hatcher (phys-ctor-fact-V10-04-01)
|
||||
- WIN32 linker works differently then Unix for externals in shared mode
|
||||
Special case WIN32 (for both shared & static builds for now)
|
||||
|
||||
26-Feb-2018, Robert Hatcher (phys-ctor-fact-V10-04-00)
|
||||
- Move G4_REFERENCE_PHYSCONSTR_FACTORY macro calls out of
|
||||
G4PhysicsConstructorRegistry.cc, where they cause an implicit
|
||||
circular link when building granular libraries, and into a new
|
||||
G4RegisterPhysicsConstructors.icc, where they can be included
|
||||
as necessary in a higher level compilation unit.
|
||||
- REFERENCE macro calls can be made unique by #define REGREF <anything>
|
||||
- Whitespace cleanup
|
||||
|
||||
01-May-2017, Sebastien Incerti (phys-ctor-fact-V10-03-00)
|
||||
- added Geant4-DNA stationary constructors
|
||||
|
||||
|
||||
@@ -56,7 +56,6 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
#define G4_DECLARE_PHYSCONSTR_FACTORY(physics_constructor) \
|
||||
const G4PhysicsConstructorFactory<physics_constructor>& physics_constructor##Factory = G4PhysicsConstructorFactory<physics_constructor>(#physics_constructor)
|
||||
|
||||
@@ -76,16 +75,21 @@ public:
|
||||
// the compilation unit static variable from the library and cause it
|
||||
// to be initialized (and thus self-register)
|
||||
|
||||
// Use REGREF to allow cases where REFERENCE macro is used twice
|
||||
#ifndef REGREF
|
||||
#define REGREF 0
|
||||
#endif
|
||||
|
||||
#define G4_REFERENCE_PHYSCONSTR_FACTORY(physics_constructor) \
|
||||
class physics_constructor; \
|
||||
extern const G4PhysicsConstructorFactory<physics_constructor>& physics_constructor##Factory; \
|
||||
const G4PhysicsConstructorFactory<physics_constructor>& physics_constructor##FactoryRef = physics_constructor##Factory
|
||||
const G4PhysicsConstructorFactory<physics_constructor>& physics_constructor##FactoryRef##REGREF = physics_constructor##Factory
|
||||
|
||||
#define G4_REFERENCE_PHYSCONSTR_FACTORY_NS( physics_constructor, nsname, pcbase ) \
|
||||
namespace nsname { \
|
||||
class pcbase; \
|
||||
extern const G4PhysicsConstructorFactory<physics_constructor>& pcbase##Factory; \
|
||||
const G4PhysicsConstructorFactory<physics_constructor>& pcbase##FactoryRef = pcbase##Factory; \
|
||||
const G4PhysicsConstructorFactory<physics_constructor>& pcbase##FactoryRef##REGREF = pcbase##Factory; \
|
||||
} \
|
||||
typedef int xyzzy__LINE__
|
||||
// eat trailing semicolon using silly typedef
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id:
|
||||
// $Id:
|
||||
//
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
@@ -37,7 +37,7 @@
|
||||
// Author W. Pokorski 21.09.2012
|
||||
//
|
||||
// Modifications:
|
||||
//
|
||||
//
|
||||
//
|
||||
// Class Description
|
||||
// This is a singleton keeping pointers to all physics constructors
|
||||
@@ -59,10 +59,10 @@ class G4PhysicsConstructorRegistry
|
||||
public:
|
||||
|
||||
static G4PhysicsConstructorRegistry* Instance();
|
||||
// access
|
||||
|
||||
// access
|
||||
|
||||
~G4PhysicsConstructorRegistry();
|
||||
|
||||
|
||||
void Register(G4VPhysicsConstructor*);
|
||||
//register new physics constructors
|
||||
|
||||
@@ -71,7 +71,7 @@ public:
|
||||
|
||||
void Clean();
|
||||
//clean the store
|
||||
|
||||
|
||||
void AddFactory(G4String, G4VBasePhysConstrFactory*);
|
||||
|
||||
G4VPhysicsConstructor* GetPhysicsConstructor(const G4String& name);
|
||||
@@ -81,13 +81,13 @@ public:
|
||||
std::vector<G4String> AvailablePhysicsConstructors() const;
|
||||
|
||||
void PrintAvailablePhysicsConstructors() const;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
G4PhysicsConstructorRegistry();
|
||||
|
||||
static G4ThreadLocal G4PhysicsConstructorRegistry* theInstance;
|
||||
|
||||
|
||||
std::vector <G4VPhysicsConstructor*> physConstr;
|
||||
|
||||
std::map <G4String, G4VBasePhysConstrFactory*> factories;
|
||||
|
||||
@@ -0,0 +1,274 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: RegisterPhysLists.icc 66704 2013-01-10 18:20:17Z rhatcher $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: RegisterPhysicsConstructors.icc
|
||||
//
|
||||
// Author: R. Hatcher 2018-02-06
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#if defined(WIN32) && !defined(USING_STATIC_LIBS)
|
||||
// WIN32 linker/loader works differently than on unix
|
||||
// these G4_REFERENCE_PHYSCONSTR_FACTORY macro calls in fact can't be used
|
||||
// in "shared" link mode. In principle they _should_ be called
|
||||
// in "static" link mode (that's the point of this file).
|
||||
// Currently there is no build -D flag that distinquishes the two cases...
|
||||
// but users can set USING_STATIC_LIBS
|
||||
#define G4RegisterPhysicsConstructors_icc 1
|
||||
#endif // WIN32
|
||||
|
||||
//
|
||||
#ifndef G4RegisterPhysicsConstructors_icc
|
||||
#define G4RegisterPhysicsConstructors_icc 1
|
||||
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
//
|
||||
// External reference to phy ctor factories for running with 'static'
|
||||
// libraries to pull the references of the declared factories into the
|
||||
// same compilation unit as the registry itself.
|
||||
// No harm having them in the non-static case.
|
||||
//
|
||||
// Using the G4_REFERENCE_PHYSCONSTR_FACTORY macro does _not_ require
|
||||
// including the headers (using G4_DECLARE_PHYSCONSTR_FACTORY does,
|
||||
// but those are done in each phys_ctor's implementation itself).
|
||||
//
|
||||
// For static builds this needs to be included in a compilation unit
|
||||
// for something that is going to use the G4PhysicsConstructorRegistry
|
||||
// as a source of physics constructors (but not in the registration
|
||||
// of the constructors themselves; that is via the G4_DECLARE_PHYSCONSTR_FACTORY
|
||||
// macro). This is necessary when using static libraries in order that the
|
||||
// individual phys_ctor compilation units to be included in the final
|
||||
// executable, and thus available to self-register w/ the
|
||||
// G4PhysicsConstructorRegistry to make themselves available.
|
||||
//
|
||||
// For granular builds this needs to be included at a higher level
|
||||
// than any of the phys_ctor_X libraries in order to avoid introducing
|
||||
// an effective ciruclar link.
|
||||
|
||||
//#include "G4ChargeExchangePhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4ChargeExchangePhysics);
|
||||
|
||||
//#include "G4DecayPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4DecayPhysics);
|
||||
|
||||
//#include "G4EmDNAChemistry.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAChemistry);
|
||||
|
||||
//#include "G4EmDNAPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics);
|
||||
|
||||
//#include "G4EmDNAPhysics_option1.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option1);
|
||||
|
||||
//#include "G4EmDNAPhysics_option2.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option2);
|
||||
|
||||
//#include "G4EmDNAPhysics_option3.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option3);
|
||||
|
||||
//#include "G4EmDNAPhysics_option4.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option4);
|
||||
|
||||
//#include "G4EmDNAPhysics_option5.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option5);
|
||||
|
||||
//#include "G4EmDNAPhysics_option6.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option6);
|
||||
|
||||
//#include "G4EmDNAPhysics_option7.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option7);
|
||||
|
||||
//#include "G4EmDNAPhysics_stationary.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_stationary);
|
||||
|
||||
//#include "G4EmDNAPhysics_stationary_option2.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_stationary_option2);
|
||||
|
||||
//#include "G4EmDNAPhysics_stationary_option4.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_stationary_option4);
|
||||
|
||||
//#include "G4EmDNAPhysics_stationary_option6.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_stationary_option6);
|
||||
|
||||
//#include "G4EmExtraPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmExtraPhysics);
|
||||
|
||||
//#include "G4EmLivermorePhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmLivermorePhysics);
|
||||
|
||||
//#include "G4EmLivermorePolarizedPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmLivermorePolarizedPhysics);
|
||||
|
||||
//#include "G4EmLowEPPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmLowEPPhysics);
|
||||
|
||||
//#include "G4EmPenelopePhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmPenelopePhysics);
|
||||
|
||||
//#include "G4EmStandardPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics);
|
||||
|
||||
//#include "G4EmStandardPhysicsGS.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysicsGS);
|
||||
|
||||
//#include "G4EmStandardPhysicsSS.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysicsSS);
|
||||
|
||||
//#include "G4EmStandardPhysicsWVI.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysicsWVI);
|
||||
|
||||
//#include "G4EmStandardPhysics_option1.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option1);
|
||||
|
||||
//#include "G4EmStandardPhysics_option2.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option2);
|
||||
|
||||
//#include "G4EmStandardPhysics_option3.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option3);
|
||||
|
||||
//#include "G4EmStandardPhysics_option4.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option4);
|
||||
|
||||
//#include "G4GenericBiasingPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4GenericBiasingPhysics);
|
||||
|
||||
//#include "G4HadronDElasticPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronDElasticPhysics);
|
||||
|
||||
//#include "G4HadronElasticPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronElasticPhysics);
|
||||
|
||||
//#include "G4HadronElasticPhysicsHP.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsHP);
|
||||
|
||||
//#include "G4HadronElasticPhysicsLEND.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsLEND);
|
||||
|
||||
//#include "G4HadronElasticPhysicsXS.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsXS);
|
||||
|
||||
//#include "G4HadronHElasticPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronHElasticPhysics);
|
||||
|
||||
//#include "G4HadronInelasticQBBC.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronInelasticQBBC);
|
||||
|
||||
//#include "G4HadronPhysicsFTFP_BERT.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTFP_BERT);
|
||||
|
||||
//#include "G4HadronPhysicsFTFP_BERT_ATL.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTFP_BERT_ATL);
|
||||
|
||||
//#include "G4HadronPhysicsFTFP_BERT_HP.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTFP_BERT_HP);
|
||||
|
||||
//#include "G4HadronPhysicsFTFP_BERT_TRV.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTFP_BERT_TRV);
|
||||
|
||||
//#include "G4HadronPhysicsFTF_BIC.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTF_BIC);
|
||||
|
||||
//#include "G4HadronPhysicsINCLXX.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsINCLXX);
|
||||
|
||||
//#include "G4HadronPhysicsNuBeam.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsNuBeam);
|
||||
|
||||
//#include "G4HadronPhysicsQGSP_BERT.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BERT);
|
||||
|
||||
//#include "G4HadronPhysicsQGSP_BERT_HP.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BERT_HP);
|
||||
|
||||
//#include "G4HadronPhysicsQGSP_BIC.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BIC);
|
||||
|
||||
//#include "G4HadronPhysicsQGSP_BIC_AllHP.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BIC_AllHP);
|
||||
|
||||
//#include "G4HadronPhysicsQGSP_BIC_HP.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BIC_HP);
|
||||
|
||||
//#include "G4HadronPhysicsQGSP_FTFP_BERT.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_FTFP_BERT);
|
||||
|
||||
//#include "G4HadronPhysicsQGS_BIC.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGS_BIC);
|
||||
|
||||
//#include "G4HadronPhysicsShielding.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsShielding);
|
||||
|
||||
//#include "G4ImportanceBiasing.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4ImportanceBiasing);
|
||||
|
||||
//#include "G4IonBinaryCascadePhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonBinaryCascadePhysics);
|
||||
|
||||
//#include "G4IonElasticPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonElasticPhysics);
|
||||
|
||||
//#include "G4IonINCLXXPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonINCLXXPhysics);
|
||||
|
||||
//#include "G4IonPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonPhysics);
|
||||
|
||||
//#include "G4IonQMDPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonQMDPhysics);
|
||||
|
||||
//#include "G4NeutronCrossSectionXS.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4NeutronCrossSectionXS);
|
||||
|
||||
//#include "G4NeutronTrackingCut.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4NeutronTrackingCut);
|
||||
|
||||
//#include "G4OpticalPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4OpticalPhysics);
|
||||
|
||||
//#include "G4ParallelWorldPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4ParallelWorldPhysics);
|
||||
|
||||
//#include "G4RadioactiveDecayPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4RadioactiveDecayPhysics);
|
||||
|
||||
//#include "G4SpinDecayPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4SpinDecayPhysics);
|
||||
|
||||
//#include "G4StepLimiterPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4StepLimiterPhysics);
|
||||
|
||||
//#include "G4StoppingPhysics.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4StoppingPhysics);
|
||||
|
||||
//#include "G4WeightWindowBiasing.hh"
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4WeightWindowBiasing);
|
||||
|
||||
#endif // G4RegisterPhysicsConstructors_icc
|
||||
@@ -104,10 +104,11 @@ include_directories(${CMAKE_SOURCE_DIR}/source/tracking/include)
|
||||
include(Geant4MacroDefineModule)
|
||||
GEANT4_DEFINE_MODULE(NAME G4phys_ctor_factory
|
||||
HEADERS
|
||||
G4PhysicsConstructorFactory.hh
|
||||
G4RegisterPhysicsConstructors.icc
|
||||
G4PhysicsConstructorFactory.hh
|
||||
G4PhysicsConstructorRegistry.hh
|
||||
SOURCES
|
||||
G4PhysicsConstructorRegistry.cc
|
||||
G4PhysicsConstructorRegistry.cc
|
||||
GRANULAR_DEPENDENCIES
|
||||
G4baryons
|
||||
G4bosons
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id:
|
||||
// $Id:
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -41,7 +41,11 @@
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
// force REFERENCE macros _not_ to be expanded here
|
||||
// but wherever the class is used (w/ that .hh use)
|
||||
#define G4PhysicsConstructorRegistry_cc 1
|
||||
#include "G4PhysicsConstructorRegistry.hh"
|
||||
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4PhysicsConstructorFactory.hh"
|
||||
|
||||
@@ -66,7 +70,7 @@ G4PhysicsConstructorRegistry::~G4PhysicsConstructorRegistry()
|
||||
|
||||
void G4PhysicsConstructorRegistry::Clean()
|
||||
{
|
||||
size_t n = physConstr.size();
|
||||
size_t n = physConstr.size();
|
||||
if(n > 0) {
|
||||
for (size_t i=0; i<n; ++i) {
|
||||
if(physConstr[i]) {
|
||||
@@ -82,7 +86,7 @@ void G4PhysicsConstructorRegistry::Clean()
|
||||
void G4PhysicsConstructorRegistry::Register(G4VPhysicsConstructor* p)
|
||||
{
|
||||
if(!p) return;
|
||||
size_t n = physConstr.size();
|
||||
size_t n = physConstr.size();
|
||||
if(n > 0) {
|
||||
for (size_t i=0; i<n; ++i) {
|
||||
if(physConstr[i] == p) { return; }
|
||||
@@ -94,7 +98,7 @@ void G4PhysicsConstructorRegistry::Register(G4VPhysicsConstructor* p)
|
||||
void G4PhysicsConstructorRegistry::DeRegister(G4VPhysicsConstructor* p)
|
||||
{
|
||||
if ( !p ) return;
|
||||
size_t n = physConstr.size();
|
||||
size_t n = physConstr.size();
|
||||
if ( n > 0 ) {
|
||||
for (size_t i=0; i<n; ++i) {
|
||||
if ( physConstr[i] == p ) {
|
||||
@@ -119,7 +123,7 @@ G4VPhysicsConstructor* G4PhysicsConstructorRegistry::GetPhysicsConstructor(const
|
||||
// we could store the list of called factories in some vector and
|
||||
// before returning we can could first check if this physics constructor was already instantiated
|
||||
// if yes, we can throw an exception saying that this physics can been already registered
|
||||
|
||||
|
||||
return factories[name]->Instantiate();
|
||||
}
|
||||
else
|
||||
@@ -164,75 +168,19 @@ void G4PhysicsConstructorRegistry::PrintAvailablePhysicsConstructors() const
|
||||
}
|
||||
|
||||
//
|
||||
// External reference to phy ctor factories for running with 'static'
|
||||
// External reference to phy ctor factories for running with 'static'
|
||||
// libraries to pull the references of the declared factories into the
|
||||
// same compilation unit as the registry itself.
|
||||
// No harm having them in the non-static case.
|
||||
//
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4ChargeExchangePhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4DecayPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAChemistry);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option1);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option2);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option3);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option4);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option5);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option6);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_option7);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_stationary);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_stationary_option2);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_stationary_option4);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmDNAPhysics_stationary_option6);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmExtraPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmLivermorePhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmLivermorePolarizedPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmLowEPPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmPenelopePhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysicsGS);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysicsSS);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysicsWVI);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option1);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option2);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option3);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4EmStandardPhysics_option4);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4GenericBiasingPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronDElasticPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronElasticPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsHP);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsLEND);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsXS);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronHElasticPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronInelasticQBBC);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTFP_BERT);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTFP_BERT_ATL);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTFP_BERT_HP);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTFP_BERT_TRV);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsFTF_BIC);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsINCLXX);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsNuBeam);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BERT);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BERT_HP);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BIC);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BIC_AllHP);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_BIC_HP);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGSP_FTFP_BERT);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsQGS_BIC);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4HadronPhysicsShielding);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4ImportanceBiasing);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonBinaryCascadePhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonElasticPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonINCLXXPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4IonQMDPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4NeutronCrossSectionXS);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4NeutronTrackingCut);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4OpticalPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4ParallelWorldPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4RadioactiveDecayPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4SpinDecayPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4StepLimiterPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4StoppingPhysics);
|
||||
G4_REFERENCE_PHYSCONSTR_FACTORY(G4WeightWindowBiasing);
|
||||
|
||||
// Ideally we'd do the G4_REFERENCE_PHYSCONSTR_FACTORY() macros
|
||||
// here, but this introduces a circular dependence between the
|
||||
// ctor_phys_factory library and the other ctor_phys_* libraries
|
||||
// when creating granular libraries.
|
||||
// Instead we'll make the references in the location(s) where the
|
||||
// G4PhysicsConstructorRegistry is _used_ :
|
||||
// G4
|
||||
/*
|
||||
#include "G4RegisterPhysicsConstructors.icc"
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 107436 2017-11-13 07:36:25Z gcosmo $
|
||||
$Id: History 108439 2018-02-14 07:34:01Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -14,6 +14,17 @@ introduced in the code and keeptrack of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
12 February 2018 Jonathan Madsen (phys-ctor-glnuclear-V10-04-02)
|
||||
- Removed G4MUTEX_INITIALIZER from constructor in G4EmExtraPhysics
|
||||
|
||||
02-Feb-2018, V.Ivanchenko (phys-ctor-glnuclear-V10-04-01)
|
||||
- G4EmExtraPhysics, G4EmMessenger - added extra UI commands and Set
|
||||
methods for neutrino-electron interactions (V.Grichine)
|
||||
|
||||
30-Jan-2017, V.Ivanchenko (phys-ctor-glnuclear-V10-04-00)
|
||||
- G4EmExtraPhysics, G4EmMessenger - added extra UI commands and Set
|
||||
methods to define flags for neutrinos
|
||||
|
||||
10-November-2017, T.Koi (phys-ctor-glnuclear-V10-03-04)
|
||||
-Dumpping LEND target information in G4LENDBertiniGammaElectroNuclearBuilder
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
// 10.11.2005 V.Ivanchenko edit to provide a standard
|
||||
// 19.06.2006 V.Ivanchenko add mu-nuclear process
|
||||
// 16.10.2012 A.Ribon: renamed G4EmExtraBertiniPhysics as G4EmExtraPhysics
|
||||
// 31.01.2018 V. Grichine: add neutrino-electron process and xsc
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -52,6 +53,8 @@ class G4SynchrotronRadiation;
|
||||
class G4GammaConversionToMuons;
|
||||
class G4AnnihiToMuPair;
|
||||
class G4eeToHadrons;
|
||||
class G4NeutrinoElectronProcess;
|
||||
class G4NeutrinoElectronTotXsc;
|
||||
|
||||
class G4EmExtraPhysics : public G4VPhysicsConstructor
|
||||
{
|
||||
@@ -80,6 +83,12 @@ public:
|
||||
void PositronToMuMuFactor(G4double val);
|
||||
void PositronToHadronsFactor(G4double val);
|
||||
|
||||
void NeutrinoActivated(G4bool val);
|
||||
void SetNuEleCcBias(G4double bf);
|
||||
void SetNuEleNcBias(G4double bf);
|
||||
void SetNuNucleusBias(G4double bf);
|
||||
void SetNuDetectorName(const G4String& dn);
|
||||
|
||||
private:
|
||||
|
||||
static G4bool gnActivated;
|
||||
@@ -91,9 +100,16 @@ private:
|
||||
static G4bool gmumuActivated;
|
||||
static G4bool pmumuActivated;
|
||||
static G4bool phadActivated;
|
||||
static G4bool fNuActivated;
|
||||
|
||||
static G4double gmumuFactor;
|
||||
static G4double pmumuFactor;
|
||||
static G4double phadFactor;
|
||||
static G4double fNuEleCcBias;
|
||||
static G4double fNuEleNcBias;
|
||||
static G4double fNuNucleusBias;
|
||||
|
||||
static G4String fNuDetectorName;
|
||||
|
||||
static G4ThreadLocal G4BertiniElectroNuclearBuilder* theGNPhysics;
|
||||
static G4ThreadLocal G4SynchrotronRadiation* theSynchRad;
|
||||
@@ -101,6 +117,9 @@ private:
|
||||
static G4ThreadLocal G4AnnihiToMuPair* thePosiToMuMu;
|
||||
static G4ThreadLocal G4eeToHadrons* thePosiToHadrons;
|
||||
|
||||
static G4ThreadLocal G4NeutrinoElectronProcess* theNuEleProcess;
|
||||
static G4ThreadLocal G4NeutrinoElectronTotXsc* theNuEleTotXsc;
|
||||
|
||||
G4EmMessenger* theMessenger;
|
||||
G4int verbose;
|
||||
};
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
// Modified:
|
||||
// 09.11.2005 V.Ivanchenko edit to provide a standard
|
||||
// 19.06.2006 V.Ivanchenko add mu-nuclear process
|
||||
// 31.01.2018 V.Grichine, activation of neutrino-electron process
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -47,6 +48,9 @@ class G4EmExtraPhysics;
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "G4UIcmdWithABool.hh"
|
||||
#include "G4UIcmdWithADouble.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
|
||||
//////////////////////////////////////
|
||||
|
||||
class G4EmMessenger: public G4UImessenger
|
||||
{
|
||||
@@ -58,6 +62,7 @@ public:
|
||||
|
||||
private:
|
||||
G4EmExtraPhysics* theB;
|
||||
|
||||
G4UIcmdWithABool* theSynch;
|
||||
G4UIcmdWithABool* theSynchAll;
|
||||
G4UIcmdWithABool* theGN;
|
||||
@@ -67,9 +72,17 @@ private:
|
||||
G4UIcmdWithABool* theGMM;
|
||||
G4UIcmdWithABool* thePMM;
|
||||
G4UIcmdWithABool* thePH;
|
||||
G4UIcmdWithABool* theNu;
|
||||
|
||||
G4UIcmdWithADouble* theGMM1;
|
||||
G4UIcmdWithADouble* thePMM1;
|
||||
G4UIcmdWithADouble* thePH1;
|
||||
G4UIcmdWithADouble* theNuEleCcBF;
|
||||
G4UIcmdWithADouble* theNuEleNcBF;
|
||||
G4UIcmdWithADouble* theNuNucleusBF;
|
||||
|
||||
G4UIcmdWithAString* theNuDN;
|
||||
|
||||
G4UIdirectory* aDir1;
|
||||
G4UIdirectory* aDir2;
|
||||
};
|
||||
|
||||
@@ -32,14 +32,16 @@
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
// 10.11.2005 V.Ivanchenko edit to provide a standard
|
||||
// 19.06.2006 V.Ivanchenko add mu-nuclear process
|
||||
// 16.10.2012 A.Ribon: renamed G4EmExtraBertiniPhysics as G4EmExtraPhysics
|
||||
// 10.04.2014 A.Dotti: Add MT functionality for messenger
|
||||
// 24.04.2014 A.Ribon: switched on muon-nuclear by default
|
||||
// 29.01.2018 V.Grichine, adding neutrinos
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
///////////////////////////////////////////////////////////////
|
||||
|
||||
#include "G4EmExtraPhysics.hh"
|
||||
|
||||
@@ -52,6 +54,12 @@
|
||||
#include "G4Positron.hh"
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
#include "G4AntiNeutrinoE.hh"
|
||||
#include "G4NeutrinoE.hh"
|
||||
#include "G4AntiNeutrinoMu.hh"
|
||||
#include "G4NeutrinoMu.hh"
|
||||
#include "G4AntiNeutrinoTau.hh"
|
||||
#include "G4NeutrinoTau.hh"
|
||||
|
||||
#include "G4SynchrotronRadiation.hh"
|
||||
#include "G4BertiniElectroNuclearBuilder.hh"
|
||||
@@ -63,6 +71,11 @@
|
||||
#include "G4AnnihiToMuPair.hh"
|
||||
#include "G4eeToHadrons.hh"
|
||||
|
||||
#include "G4NeutrinoElectronProcess.hh"
|
||||
#include "G4NeutrinoElectronTotXsc.hh"
|
||||
#include "G4NeutrinoElectronCcModel.hh"
|
||||
#include "G4NeutrinoElectronNcModel.hh"
|
||||
|
||||
#include "G4PhysicsListHelper.hh"
|
||||
#include "G4BuilderType.hh"
|
||||
#include "G4AutoDelete.hh"
|
||||
@@ -81,9 +94,16 @@ G4bool G4EmExtraPhysics::synActivatedForAll = false;
|
||||
G4bool G4EmExtraPhysics::gmumuActivated = false;
|
||||
G4bool G4EmExtraPhysics::pmumuActivated = false;
|
||||
G4bool G4EmExtraPhysics::phadActivated = false;
|
||||
G4bool G4EmExtraPhysics::fNuActivated = false;
|
||||
|
||||
G4double G4EmExtraPhysics::gmumuFactor = 1.0;
|
||||
G4double G4EmExtraPhysics::pmumuFactor = 1.0;
|
||||
G4double G4EmExtraPhysics::phadFactor = 1.0;
|
||||
G4double G4EmExtraPhysics::fNuEleCcBias = 1.0;
|
||||
G4double G4EmExtraPhysics::fNuEleNcBias = 1.0;
|
||||
G4double G4EmExtraPhysics::fNuNucleusBias = 1.0;
|
||||
|
||||
G4String G4EmExtraPhysics::fNuDetectorName = "0";
|
||||
|
||||
G4ThreadLocal G4BertiniElectroNuclearBuilder* G4EmExtraPhysics::theGNPhysics = nullptr;
|
||||
G4ThreadLocal G4SynchrotronRadiation* G4EmExtraPhysics::theSynchRad = nullptr;
|
||||
@@ -91,6 +111,12 @@ G4ThreadLocal G4GammaConversionToMuons* G4EmExtraPhysics::theGammaToMuMu = nullp
|
||||
G4ThreadLocal G4AnnihiToMuPair* G4EmExtraPhysics::thePosiToMuMu = nullptr;
|
||||
G4ThreadLocal G4eeToHadrons* G4EmExtraPhysics::thePosiToHadrons = nullptr;
|
||||
|
||||
G4ThreadLocal G4NeutrinoElectronProcess* G4EmExtraPhysics::theNuEleProcess = nullptr;
|
||||
G4ThreadLocal G4NeutrinoElectronTotXsc* G4EmExtraPhysics::theNuEleTotXsc = nullptr;
|
||||
|
||||
|
||||
//////////////////////////////////////
|
||||
|
||||
G4EmExtraPhysics::G4EmExtraPhysics(G4int ver):
|
||||
G4VPhysicsConstructor("G4GammaLeptoNuclearPhys"),
|
||||
verbose(ver)
|
||||
@@ -171,6 +197,35 @@ void G4EmExtraPhysics::PositronToHadronsFactor(G4double val)
|
||||
if(val > 0.0) phadFactor = val;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
|
||||
void G4EmExtraPhysics::NeutrinoActivated(G4bool val)
|
||||
{
|
||||
fNuActivated = val;
|
||||
}
|
||||
|
||||
void G4EmExtraPhysics::SetNuEleCcBias(G4double bf)
|
||||
{
|
||||
if(bf > 0.0) fNuEleCcBias = bf;
|
||||
}
|
||||
|
||||
void G4EmExtraPhysics::SetNuEleNcBias(G4double bf)
|
||||
{
|
||||
if(bf > 0.0) fNuEleNcBias = bf;
|
||||
}
|
||||
|
||||
void G4EmExtraPhysics::SetNuNucleusBias(G4double bf)
|
||||
{
|
||||
if(bf > 0.0) fNuNucleusBias = bf;
|
||||
}
|
||||
|
||||
void G4EmExtraPhysics::SetNuDetectorName(const G4String& dn)
|
||||
{
|
||||
fNuDetectorName = dn;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
void G4EmExtraPhysics::ConstructParticle()
|
||||
{
|
||||
G4Gamma::Gamma();
|
||||
@@ -178,16 +233,30 @@ void G4EmExtraPhysics::ConstructParticle()
|
||||
G4Positron::Positron();
|
||||
G4MuonPlus::MuonPlus();
|
||||
G4MuonMinus::MuonMinus();
|
||||
|
||||
G4AntiNeutrinoE::AntiNeutrinoE();
|
||||
G4NeutrinoE::NeutrinoE();
|
||||
G4AntiNeutrinoMu::AntiNeutrinoMu();
|
||||
G4NeutrinoMu::NeutrinoMu();
|
||||
G4AntiNeutrinoTau::AntiNeutrinoTau();
|
||||
G4NeutrinoTau::NeutrinoTau();
|
||||
}
|
||||
|
||||
void G4EmExtraPhysics::ConstructProcess()
|
||||
{
|
||||
G4ParticleDefinition* gamma = G4Gamma::Gamma();
|
||||
G4ParticleDefinition* electron = G4Electron::Electron();
|
||||
G4ParticleDefinition* positron = G4Positron::Positron();
|
||||
G4ParticleDefinition* muonplus = G4MuonPlus::MuonPlus();
|
||||
G4ParticleDefinition* gamma = G4Gamma::Gamma();
|
||||
G4ParticleDefinition* electron = G4Electron::Electron();
|
||||
G4ParticleDefinition* positron = G4Positron::Positron();
|
||||
G4ParticleDefinition* muonplus = G4MuonPlus::MuonPlus();
|
||||
G4ParticleDefinition* muonminus = G4MuonMinus::MuonMinus();
|
||||
|
||||
G4ParticleDefinition* anuelectron = G4AntiNeutrinoE::AntiNeutrinoE();
|
||||
G4ParticleDefinition* nuelectron = G4NeutrinoE::NeutrinoE();
|
||||
G4ParticleDefinition* anumuon = G4AntiNeutrinoMu::AntiNeutrinoMu();
|
||||
G4ParticleDefinition* numuon = G4NeutrinoMu::NeutrinoMu();
|
||||
G4ParticleDefinition* anutau = G4AntiNeutrinoTau::AntiNeutrinoTau();
|
||||
G4ParticleDefinition* nutau = G4NeutrinoTau::NeutrinoTau();
|
||||
|
||||
G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
|
||||
if(gnActivated) {
|
||||
if ( gLENDActivated != true ) {
|
||||
@@ -240,5 +309,27 @@ void G4EmExtraPhysics::ConstructProcess()
|
||||
}
|
||||
}
|
||||
}
|
||||
if( fNuActivated )
|
||||
{
|
||||
theNuEleProcess = new G4NeutrinoElectronProcess(fNuDetectorName);
|
||||
theNuEleProcess->SetBiasingFactors(fNuEleCcBias,fNuEleNcBias);
|
||||
|
||||
theNuEleTotXsc = new G4NeutrinoElectronTotXsc();
|
||||
theNuEleTotXsc->SetBiasingFactors(fNuEleCcBias,fNuEleNcBias);
|
||||
|
||||
theNuEleProcess->AddDataSet(theNuEleTotXsc);
|
||||
|
||||
G4NeutrinoElectronCcModel* ccModel = new G4NeutrinoElectronCcModel();
|
||||
G4NeutrinoElectronNcModel* ncModel = new G4NeutrinoElectronNcModel();
|
||||
theNuEleProcess->RegisterMe(ccModel);
|
||||
theNuEleProcess->RegisterMe(ncModel);
|
||||
|
||||
ph->RegisterProcess(theNuEleProcess, anuelectron);
|
||||
ph->RegisterProcess(theNuEleProcess, nuelectron);
|
||||
ph->RegisterProcess(theNuEleProcess, anumuon);
|
||||
ph->RegisterProcess(theNuEleProcess, numuon);
|
||||
ph->RegisterProcess(theNuEleProcess, anutau);
|
||||
ph->RegisterProcess(theNuEleProcess, nutau);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -100,6 +100,10 @@ G4EmMessenger::G4EmMessenger(G4EmExtraPhysics* ab)
|
||||
thePH->SetGuidance("Switching on positron conversion to hadrons.");
|
||||
thePH->AvailableForStates(G4State_PreInit);
|
||||
|
||||
theNu = new G4UIcmdWithABool("/physics_lists/em/NeutrinoActivation",this);
|
||||
theNu->SetGuidance("Activation of neutrino processes");
|
||||
theNu->AvailableForStates(G4State_PreInit);
|
||||
|
||||
theGMM1 = new G4UIcmdWithADouble("/physics_lists/em/GammaToMuonsFactor",this);
|
||||
theGMM1->SetGuidance("Factor for gamma conversion to muon pair.");
|
||||
theGMM1->AvailableForStates(G4State_PreInit);
|
||||
@@ -111,6 +115,22 @@ G4EmMessenger::G4EmMessenger(G4EmExtraPhysics* ab)
|
||||
thePH1 = new G4UIcmdWithADouble("/physics_lists/em/PositronToHadronsFactor",this);
|
||||
thePH1->SetGuidance("Factor for positron conversion to hadrons.");
|
||||
thePH1->AvailableForStates(G4State_PreInit);
|
||||
|
||||
theNuEleCcBF = new G4UIcmdWithADouble("/physics_lists/em/NuEleCcBias",this);
|
||||
theNuEleCcBF->SetGuidance("Neutrino-electron cc-current bias factor");
|
||||
theNuEleCcBF->AvailableForStates(G4State_PreInit);
|
||||
|
||||
theNuEleNcBF = new G4UIcmdWithADouble("/physics_lists/em/NuEleNcBias",this);
|
||||
theNuEleNcBF->SetGuidance("Neutrino-electron nc-current bias factor");
|
||||
theNuEleNcBF->AvailableForStates(G4State_PreInit);
|
||||
|
||||
theNuNucleusBF = new G4UIcmdWithADouble("/physics_lists/em/NuNucleusBias",this);
|
||||
theNuNucleusBF->SetGuidance("Neutrino-nucleus bias factor");
|
||||
theNuNucleusBF->AvailableForStates(G4State_PreInit);
|
||||
|
||||
theNuDN = new G4UIcmdWithAString("/physics_lists/em/NuDetectorName",this);
|
||||
theNuDN->SetGuidance("Set neutrino detector name");
|
||||
theNuDN->AvailableForStates(G4State_PreInit);
|
||||
}
|
||||
|
||||
G4EmMessenger::~G4EmMessenger()
|
||||
@@ -124,9 +144,15 @@ G4EmMessenger::~G4EmMessenger()
|
||||
delete theGMM;
|
||||
delete thePMM;
|
||||
delete thePH;
|
||||
delete theNu;
|
||||
|
||||
delete theGMM1;
|
||||
delete thePMM1;
|
||||
delete thePH1;
|
||||
delete theNuEleCcBF;
|
||||
delete theNuEleNcBF;
|
||||
delete theNuNucleusBF;
|
||||
|
||||
delete aDir1;
|
||||
delete aDir2;
|
||||
}
|
||||
@@ -142,7 +168,15 @@ void G4EmMessenger::SetNewValue(G4UIcommand* aComm, G4String aS)
|
||||
if(aComm==theGMM) theB->GammaToMuMu(theGMM->GetNewBoolValue(aS));
|
||||
if(aComm==thePMM) theB->PositronToMuMu(thePMM->GetNewBoolValue(aS));
|
||||
if(aComm==thePH) theB->PositronToHadrons(thePH->GetNewBoolValue(aS));
|
||||
if(aComm==theNu) theB->NeutrinoActivated(theNu->GetNewBoolValue(aS));
|
||||
|
||||
if(aComm==theGMM1) theB->GammaToMuMuFactor(theGMM1->GetNewDoubleValue(aS));
|
||||
if(aComm==thePMM1) theB->PositronToMuMuFactor(thePMM1->GetNewDoubleValue(aS));
|
||||
if(aComm==thePH1) theB->PositronToHadronsFactor(thePH1->GetNewDoubleValue(aS));
|
||||
|
||||
if(aComm==theNuEleCcBF) theB->SetNuEleCcBias(theNuEleCcBF->GetNewDoubleValue(aS));
|
||||
if(aComm==theNuEleNcBF) theB->SetNuEleNcBias(theNuEleCcBF->GetNewDoubleValue(aS));
|
||||
if(aComm==theNuNucleusBF) theB->SetNuNucleusBias(theNuNucleusBF->GetNewDoubleValue(aS));
|
||||
|
||||
if(aComm==theNuDN) theB->SetNuDetectorName(aS);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 107320 2017-11-08 16:30:22Z gcosmo $
|
||||
$Id: History 110587 2018-05-31 12:05:13Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -13,6 +13,11 @@ introduced in the code and keeptrack of all tags.
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
31-May-2018, Vladimir Ivantchenko (phys-ctor-hinelastic-V10-04-00)
|
||||
- G4HadronInelasticQBBC - use G4ParticleInelasticXS both for neutrons
|
||||
and protons
|
||||
|
||||
7-Nov-2017, Tatsumi Koi (phys-ctor-hinelastic-V10-03-06)
|
||||
- Adding G4HadronPhysicsShieldingLEND
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronInelasticQBBC.hh 99005 2016-08-30 11:26:40Z gcosmo $
|
||||
// $Id: G4HadronInelasticQBBC.hh 110587 2018-05-31 12:05:13Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -70,8 +70,8 @@ private:
|
||||
G4HadronInelasticQBBC(G4HadronInelasticQBBC &);
|
||||
G4HadronInelasticQBBC & operator=(const G4HadronInelasticQBBC &right);
|
||||
|
||||
static G4ThreadLocal G4ComponentAntiNuclNuclearXS* theAntiNuclXS;
|
||||
static G4ThreadLocal G4ComponentGGHadronNucleusXsc* theKaonXS;
|
||||
static G4ThreadLocal std::unique_ptr<G4ComponentAntiNuclNuclearXS> theAntiNuclXS;
|
||||
static G4ThreadLocal std::unique_ptr<G4ComponentGGHadronNucleusXsc> theKaonXS;
|
||||
|
||||
G4int verbose;
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronInelasticQBBC.cc 99977 2016-10-13 07:26:42Z gcosmo $
|
||||
// $Id: G4HadronInelasticQBBC.cc 110587 2018-05-31 12:05:13Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -49,7 +49,7 @@
|
||||
#include "G4BGGNucleonInelasticXS.hh"
|
||||
#include "G4BGGPionInelasticXS.hh"
|
||||
|
||||
#include "G4NeutronInelasticXS.hh"
|
||||
#include "G4ParticleInelasticXS.hh"
|
||||
#include "G4NeutronCaptureXS.hh"
|
||||
|
||||
#include "G4CrossSectionInelastic.hh"
|
||||
@@ -79,8 +79,8 @@
|
||||
//
|
||||
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronInelasticQBBC);
|
||||
|
||||
G4ThreadLocal G4ComponentAntiNuclNuclearXS* G4HadronInelasticQBBC::theAntiNuclXS = nullptr;
|
||||
G4ThreadLocal G4ComponentGGHadronNucleusXsc* G4HadronInelasticQBBC::theKaonXS = nullptr;
|
||||
G4ThreadLocal std::unique_ptr<G4ComponentAntiNuclNuclearXS> G4HadronInelasticQBBC::theAntiNuclXS;
|
||||
G4ThreadLocal std::unique_ptr<G4ComponentGGHadronNucleusXsc> G4HadronInelasticQBBC::theKaonXS;
|
||||
|
||||
G4HadronInelasticQBBC::G4HadronInelasticQBBC(G4int ver)
|
||||
: G4VHadronPhysics("hInelasticQBBC"),verbose(ver)
|
||||
@@ -94,10 +94,7 @@ G4HadronInelasticQBBC::G4HadronInelasticQBBC(const G4String&, G4int ver,
|
||||
{}
|
||||
|
||||
G4HadronInelasticQBBC::~G4HadronInelasticQBBC()
|
||||
{
|
||||
delete theAntiNuclXS; theAntiNuclXS=nullptr;
|
||||
delete theKaonXS; theKaonXS=nullptr;
|
||||
}
|
||||
{}
|
||||
|
||||
void G4HadronInelasticQBBC::ConstructProcess()
|
||||
{
|
||||
@@ -139,11 +136,11 @@ void G4HadronInelasticQBBC::ConstructProcess()
|
||||
G4HadronicInteraction* theBIC = NewModel(bic,0.0,1.5*GeV);
|
||||
|
||||
// cross sections
|
||||
theAntiNuclXS = new G4ComponentAntiNuclNuclearXS();
|
||||
theAntiNuclXS.reset(new G4ComponentAntiNuclNuclearXS());
|
||||
G4CrossSectionInelastic* anucxs =
|
||||
new G4CrossSectionInelastic(theAntiNuclXS);
|
||||
theKaonXS = new G4ComponentGGHadronNucleusXsc();
|
||||
G4CrossSectionInelastic* kaonxs = new G4CrossSectionInelastic(theKaonXS);
|
||||
new G4CrossSectionInelastic(theAntiNuclXS.get());
|
||||
theKaonXS.reset(new G4ComponentGGHadronNucleusXsc());
|
||||
G4CrossSectionInelastic* kaonxs = new G4CrossSectionInelastic(theKaonXS.get());
|
||||
|
||||
// loop over particles
|
||||
auto myParticleIterator=GetParticleIterator();
|
||||
@@ -160,30 +157,26 @@ void G4HadronInelasticQBBC::ConstructProcess()
|
||||
//
|
||||
if(pname == "proton") {
|
||||
G4HadronicProcess* hp = FindInelasticProcess(particle);
|
||||
hp->AddDataSet(new G4BGGNucleonInelasticXS(particle));
|
||||
hp->AddDataSet(new G4ParticleInelasticXS(particle));
|
||||
|
||||
//hp->RegisterMe(theQGSP);
|
||||
hp->RegisterMe(theFTFP);
|
||||
hp->RegisterMe(theBERT);
|
||||
hp->RegisterMe(theBIC);
|
||||
|
||||
} else if(pname == "neutron") {
|
||||
G4HadronicProcess* hp = FindInelasticProcess(particle);
|
||||
hp->AddDataSet((G4NeutronInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4NeutronInelasticXS::Default_Name()));
|
||||
//hp->RegisterMe(theQGSP);
|
||||
hp->AddDataSet(new G4ParticleInelasticXS(particle));
|
||||
hp->RegisterMe(theFTFP);
|
||||
|
||||
G4HadronicProcess* capture = FindCaptureProcess();
|
||||
capture->AddDataSet((G4NeutronCaptureXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4NeutronCaptureXS::Default_Name()));
|
||||
capture->RegisterMe(new G4NeutronRadCapture());
|
||||
capture->AddDataSet(new G4NeutronCaptureXS());
|
||||
hp->RegisterMe(theBERT);
|
||||
hp->RegisterMe(theBIC);
|
||||
capture->RegisterMe(new G4NeutronRadCapture());
|
||||
|
||||
} else if(pname == "pi-" || pname == "pi+") {
|
||||
G4HadronicProcess* hp = FindInelasticProcess(particle);
|
||||
hp->AddDataSet(new G4BGGPionInelasticXS(particle));
|
||||
//hp->AddDataSet(new G4CrossSectionPairGG((G4PiNuclearCrossSection*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4PiNuclearCrossSection::Default_Name()), 91*GeV));
|
||||
//hp->RegisterMe(theQGSP);
|
||||
hp->RegisterMe(theFTFP);
|
||||
hp->RegisterMe(theBERT1);
|
||||
|
||||
@@ -235,7 +228,6 @@ void G4HadronInelasticQBBC::ConstructProcess()
|
||||
G4HadronicProcess* hp = FindInelasticProcess(particle);
|
||||
hp->RegisterMe(theFTFP2);
|
||||
hp->AddDataSet(anucxs);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 107319 2017-11-08 16:29:22Z gcosmo $
|
||||
$Id: History 108673 2018-02-27 07:30:45Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -14,8 +14,14 @@ introduced in the code and keeptrack of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
26-Februrary-2018 R. Hatcher (phys-list-V10-04-00)
|
||||
- cowork with phys-ctor-fact-V10-04-00
|
||||
- Use new G4RegisterPhysicsConstructors.icc to ensure that for static builds
|
||||
G4PhysicsConstructorRegistry is populated.
|
||||
- No longer register ShieldingLEND as a wrapper, but use explicit one
|
||||
|
||||
07-November-2017 T. Koi (phys-list-V10-03-08)
|
||||
- Add ShieldingLEND as a new physics list
|
||||
- Add ShieldingLEND as a new physics list
|
||||
co-working with phys-ctor-hinelastic-V10-03-06
|
||||
|
||||
07-November-2017 V.Ivanchenko (phys-lists-V10-03-07)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4GenericPhysicsList.hh 66892 2013-01-17 10:57:59Z gunter $
|
||||
// $Id: G4GenericPhysicsList.hh 108673 2018-02-27 07:30:45Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -41,9 +41,7 @@
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
|
||||
#include "G4PhysicsConstructorRegistry.hh"
|
||||
|
||||
#include "G4GenericMessenger.hh"
|
||||
|
||||
template<class T>
|
||||
|
||||
@@ -23,11 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4GenericPhysicsList.icc 66892 2013-01-17 10:57:59Z gunter $
|
||||
// $Id: G4GenericPhysicsList.icc 108673 2018-02-27 07:30:45Z gcosmo $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName:
|
||||
// ClassName: G4GenericPhysicsList
|
||||
//
|
||||
// Author: Witek Pokorski
|
||||
//
|
||||
@@ -44,7 +44,7 @@
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include <iomanip>
|
||||
|
||||
#include "G4DataQuestionaire.hh"
|
||||
|
||||
@@ -82,16 +82,28 @@ template<class T> void TG4GenericPhysicsList<T>::SetCuts()
|
||||
{
|
||||
if (this->verboseLevel >1){
|
||||
G4cout << "G4GenericPhysicsList::SetCuts:";
|
||||
}
|
||||
}
|
||||
|
||||
this->SetCutsWithDefault();
|
||||
|
||||
this->SetCutsWithDefault();
|
||||
|
||||
}
|
||||
|
||||
template<class T> void TG4GenericPhysicsList<T>::DeclareProperties()
|
||||
{
|
||||
messenger.DeclareProperty("defaultCutValue", this->defaultCutValue, "Default Cut Value");
|
||||
messenger.DeclareMethod("SetVerboseLevel", &TG4GenericPhysicsList::SetVerboseLevel, "Verbose Level");
|
||||
|
||||
|
||||
messenger.DeclareMethod("RegisterPhysics", &TG4GenericPhysicsList::RegisterPhysicsConstructor, "Register Physics Constructor");
|
||||
}
|
||||
|
||||
#ifndef G4RegisterPhysicsConstructors_icc
|
||||
// include G4_REFERENCE_PHYSCONSTR_FACTORY() macros here to pull them in
|
||||
// for static builds. Would do this in G4PhysicsConstructorRegistry
|
||||
// but that causes a circular dependency when the phys_ctor libs
|
||||
// are broken in a "granular" build.
|
||||
#ifndef REGREF
|
||||
#define REGREF GenericPhysList // REFREF is used to make instances unique
|
||||
#endif
|
||||
#include "G4RegisterPhysicsConstructors.icc"
|
||||
#endif
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@ G4_DECLARE_PHYSLIST_FACTORY(QGSP_INCLXX_HP);
|
||||
#include "Shielding.hh"
|
||||
G4_DECLARE_PHYSLIST_FACTORY(Shielding);
|
||||
|
||||
/*** no longer necessary as of 2017-12-07
|
||||
// some extra hoops because the physlist factory expects to be able
|
||||
// to construct a list using just a verbosity argument
|
||||
// but
|
||||
@@ -104,6 +105,10 @@ public:
|
||||
virtual ~ShieldingLEND() { ; }
|
||||
};
|
||||
G4_DECLARE_PHYSLIST_FACTORY(ShieldingLEND);
|
||||
***/
|
||||
|
||||
#include "ShieldingLEND.hh"
|
||||
G4_DECLARE_PHYSLIST_FACTORY(ShieldingLEND);
|
||||
|
||||
class ShieldingM : public Shielding
|
||||
{
|
||||
|
||||
@@ -45,7 +45,14 @@
|
||||
#include "G4PhysListRegistry.hh"
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "G4PhysListStamper.hh"
|
||||
|
||||
#include "G4PhysicsConstructorRegistry.hh"
|
||||
// include G4_REFERENCE_PHYSCONSTR_FACTORY() macros here to pull them in
|
||||
// for static builds. Would do this in G4PhysicsConstructorRegistry
|
||||
// but that causes a circular dependency when the phys_ctor libs
|
||||
// are broken in a "granular" build.
|
||||
#define REGREF PhysListReg // REGREF is used to make instances unique
|
||||
#include "G4RegisterPhysicsConstructors.icc"
|
||||
|
||||
// include this with this compilation unit so static builds pull them in
|
||||
#include "G4RegisterPhysLists.icc"
|
||||
@@ -429,3 +436,4 @@ void G4PhysListRegistry::PrintAvailablePhysLists() const
|
||||
<< " to use ReplacePhysics() (\"_\") or RegisterPhysics() (\"+\")."
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user