108 fGNLowEnergyLimit(200*
CLHEP::MeV),
113 if (verbose > 1)
G4cout <<
"### G4EmExtraPhysics" <<
G4endl;
132 synActivatedForAll = val;
133 if (synActivatedForAll) { synActivated =
true; }
143 gLENDActivated = val;
145 if (val) { fGNLowEnergyLimit = 0.0; }
160 gmumuActivated = val;
165 mmumuActivated = val;
170 pmumuActivated = val;
180 if(val > 0.0) gmumuFactor = val;
185 if(val > 0.0) pmumuFactor = val;
190 if(val > 0.0) phadFactor = val;
195 fUseGammaNuclearXS = val;
202 if (val <= CLHEP::MeV) {
203 fGNLowEnergyLimit = 0.0;
205 }
else if (val <= CLHEP::GeV) {
206 fGNLowEnergyLimit = val;
207 gLENDActivated =
false;
233 if (gnActivated) { ConstructGammaElectroNuclear(); }
242 if (gmumuActivated) {
248 sp->AddMMProcess(theGammaToMuMu);
253 if (mmumuActivated) {
258 if (pmumuActivated) {
275 if (synActivatedForAll) {
288void G4EmExtraPhysics::ConstructGammaElectroNuclear()
298 if (fUseGammaNuclearXS) {
299 xs = xsreg->GetCrossSectionDataSet(
"GammaNuclearXS");
302 xs = xsreg->GetCrossSectionDataSet(
"PhotoNuclearXS");
314 theModel->SetTransport(theCascade);
315 theModel->SetHighEnergyGenerator(theStringModel);
321 if (fGNLowEnergyLimit > 0.0) {
325 cascade->SetMinEnergy(fGNLowEnergyLimit - CLHEP::MeV);
337 if (gproc !=
nullptr) {
338 gproc->AddHadProcess(gnuc);
341 if (gLENDActivated) { ConstructLENDGammaNuclear(cascade, gnuc); }
349 enuc->RegisterMe(eModel);
350 pnuc->RegisterMe(eModel);
356void G4EmExtraPhysics::ConstructLENDGammaNuclear(
360 G4String message =
"\n Skipping activation of Low Energy Nuclear Data (LEND) model for gamma nuclear interactions.\n The LEND model needs data files and they are available from ftp://gdo-nuclear.ucllnl.org/GND_after2013/GND_v1.3.tar.gz.\n Please set the environment variable G4LENDDATA to point to the directory named v1.3 extracted from the archive file.\n";
361 G4Exception(
"G4EmExtraPhysics::ConstructLENDGammaNuclear()"
362 ,
"G4LENDBertiniGammaElectroNuclearBuilder001"
369 theLowE->DumpLENDTargetInfo(
true);
370 theLowE->SetMaxEnergy(20*MeV);
const char * G4FindDataDir(const char *)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
#define G4_DECLARE_PHYSCONSTR_FACTORY(physics_constructor)
G4GLOB_DLL std::ostream G4cout
void SetCrossSecFactor(G4double fac)
static G4AntiProton * AntiProton()
static G4CrossSectionDataSetRegistry * Instance()
static G4Electron * Electron()
void SetCrossSecFactor(G4double fac)
static G4GenericIon * GenericIon()
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
static G4HadronicParameters * Instance()
G4double GetMinEnergyTransitionFTF_Cascade() const
G4double GetMaxEnergyTransitionFTF_Cascade() const
G4double GetMaxEnergy() const
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void RegisterMe(G4HadronicInteraction *a)
static G4LossTableManager * Instance()
G4VEmProcess * GetGammaGeneralProcess()
static G4MuonMinus * MuonMinus()
static G4MuonPlus * MuonPlus()
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4PhysicsListHelper * GetPhysicsListHelper()
static G4PionMinus * PionMinus()
static G4PionPlus * PionPlus()
static G4Positron * Positron()
static G4Proton * Proton()
void SetFragmentationModel(G4VStringFragmentation *aModel)
void SetPhysicsType(G4int)
void SetCrossSecFactor(G4double fac)