16 #include "G4ProcessManager.hh"
17 #include "G4Version.hh"
18 #if G4VERSION_NUMBER < 1100
19 #include "G4PhotoNuclearProcess.hh"
21 #include "G4HadronInelasticProcess.hh"
22 #include "G4PhotoNuclearCrossSection.hh"
23 #include "G4HadronicProcess.hh"
25 #include "G4ElectronNuclearProcess.hh"
26 #include "G4PositronNuclearProcess.hh"
27 #include "G4MuonNuclearProcess.hh"
29 #include "G4CascadeInterface.hh"
30 #include "G4ElectroVDNuclearModel.hh"
31 #include "G4MuonVDNuclearModel.hh"
33 #include "G4TheoFSGenerator.hh"
34 #include "G4ExcitedStringDecay.hh"
35 #include "G4QGSMFragmentation.hh"
36 #include "G4GeneratorPrecompoundInterface.hh"
38 #include "G4SystemOfUnits.hh"
40 #if G4VERSION_NUMBER < 1100
53 : G4VPhysicsConstructor(
"eASTGammaLeptoNuclear")
63 G4CascadeInterface* theGammaReaction =
new G4CascadeInterface;
64 theGammaReaction->SetMinEnergy(0.0);
65 theGammaReaction->SetMaxEnergy(3.5*
GeV);
68 qgsp =
new G4TheoFSGenerator(
"QGSP");
71 new G4ExcitedStringDecay(
fragModel =
new G4QGSMFragmentation);
81 G4ProcessManager* procMan = 0;
84 procMan = G4Gamma::Gamma()->GetProcessManager();
85 #if G4VERSION_NUMBER < 1100
86 G4PhotoNuclearProcess* pnProc =
new G4PhotoNuclearProcess;
88 auto* pnProc =
new G4HadronInelasticProcess(
"PhotoNuclearProcess",
90 pnProc->AddDataSet(
new G4PhotoNuclearCrossSection);
92 pnProc->RegisterMe(theGammaReaction);
93 pnProc->RegisterMe(
qgsp);
94 procMan->AddDiscreteProcess(pnProc);
104 G4ElectroVDNuclearModel* evdn =
new G4ElectroVDNuclearModel;
105 G4MuonVDNuclearModel* mvdn =
new G4MuonVDNuclearModel;
108 procMan = G4Electron::Electron()->GetProcessManager();
109 G4ElectronNuclearProcess* emn =
new G4ElectronNuclearProcess;
110 emn->RegisterMe(evdn);
111 procMan->AddDiscreteProcess(emn);
114 procMan = G4Positron::Positron()->GetProcessManager();
115 G4PositronNuclearProcess* epn =
new G4PositronNuclearProcess;
116 epn->RegisterMe(evdn);
117 procMan->AddDiscreteProcess(epn);
120 procMan = G4MuonMinus::MuonMinus()->GetProcessManager();
121 G4MuonNuclearProcess* mun =
new G4MuonNuclearProcess;
122 mun->RegisterMe(mvdn);
123 procMan->AddDiscreteProcess(mun);
126 procMan = G4MuonPlus::MuonPlus()->GetProcessManager();
127 procMan->AddDiscreteProcess(mun);