111 fGNLowEnergyLimit(200*
CLHEP::MeV),
116 if (verbose > 1)
G4cout <<
"### G4EmExtraPhysics" <<
G4endl;
135 synActivatedForAll = val;
136 if (synActivatedForAll) { synActivated =
true; }
146 gLENDActivated = val;
148 if (val) { fGNLowEnergyLimit = 0.0; }
163 gmumuActivated = val;
168 mmumuActivated = val;
173 pmumuActivated = val;
183 if(val > 0.0) gmumuFactor = val;
188 if(val > 0.0) pmumuFactor = val;
193 if(val > 0.0) phadFactor = val;
198 fUseGammaNuclearXS = val;
205 if (val <= CLHEP::MeV) {
206 fGNLowEnergyLimit = 0.0;
208 }
else if (val <= CLHEP::GeV) {
209 fGNLowEnergyLimit = val;
210 gLENDActivated =
false;
236 if (gnActivated) { ConstructGammaElectroNuclear(); }
245 if (gmumuActivated) {
251 sp->AddMMProcess(theGammaToMuMu);
256 if (mmumuActivated) {
261 if (pmumuActivated) {
278 if (synActivatedForAll) {
291void G4EmExtraPhysics::ConstructGammaElectroNuclear()
301 if (fUseGammaNuclearXS) {
302 xs = xsreg->GetCrossSectionDataSet(
"GammaNuclearXS");
305 xs = xsreg->GetCrossSectionDataSet(
"PhotoNuclearXS");
306 if (
nullptr == xs) xs =
new G4PhotoNuclearCrossSection();
310 G4QGSModel< G4GammaParticipants >* theStringModel =
311 new G4QGSModel< G4GammaParticipants >;
312 auto theStringDecay =
new G4ExcitedStringDecay(
new G4QGSMFragmentation());
315 auto theCascade =
new G4GeneratorPrecompoundInterface();
316 auto theModel =
new G4TheoFSGenerator();
317 theModel->SetTransport(theCascade);
318 theModel->SetHighEnergyGenerator(theStringModel);
321 auto cascade =
new G4CascadeInterface();
324 if (fGNLowEnergyLimit > 0.0) {
325 G4LowEGammaNuclearModel* lemod =
new G4LowEGammaNuclearModel();
328 cascade->SetMinEnergy(fGNLowEnergyLimit - CLHEP::MeV);
339 if (gproc !=
nullptr) {
340 gproc->AddHadProcess(gnuc);
347 auto enuc =
new G4ElectronNuclearProcess();
348 auto pnuc =
new G4PositronNuclearProcess();
349 auto eModel =
new G4ElectroVDNuclearModel();
351 enuc->RegisterMe(eModel);
352 pnuc->RegisterMe(eModel);
const G4double maxLEND_Energy
const G4double overlapLEND_Energy
#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 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)
G4VPhysicsConstructor(const G4String &="")
void SetPhysicsType(G4int)
void SetCrossSecFactor(G4double fac)