16 #include <Geant4/G4ProcessManager.hh>
17 #include <Geant4/G4PhotoNuclearProcess.hh>
18 #include <Geant4/G4ElectronNuclearProcess.hh>
19 #include <Geant4/G4PositronNuclearProcess.hh>
20 #include <Geant4/G4MuonNuclearProcess.hh>
22 #include <Geant4/G4CascadeInterface.hh>
23 #include <Geant4/G4ElectroVDNuclearModel.hh>
24 #include <Geant4/G4MuonVDNuclearModel.hh>
26 #include <Geant4/G4TheoFSGenerator.hh>
27 #include <Geant4/G4ExcitedStringDecay.hh>
28 #include <Geant4/G4QGSMFragmentation.hh>
29 #include <Geant4/G4GeneratorPrecompoundInterface.hh>
31 #include <Geant4/G4SystemOfUnits.hh>
39 preCompoundModel(nullptr)
55 G4CascadeInterface* theGammaReaction =
new G4CascadeInterface;
56 theGammaReaction->SetMinEnergy(0.0);
57 theGammaReaction->SetMaxEnergy(3.5*
GeV);
60 qgsp =
new G4TheoFSGenerator(
"QGSP");
63 new G4ExcitedStringDecay(
fragModel =
new G4QGSMFragmentation);
73 G4ElectroVDNuclearModel* evdn =
new G4ElectroVDNuclearModel;
74 G4MuonVDNuclearModel* mvdn =
new G4MuonVDNuclearModel;
77 G4ProcessManager* procMan = 0;
80 procMan = G4Gamma::Gamma()->GetProcessManager();
81 G4PhotoNuclearProcess* pnProc =
new G4PhotoNuclearProcess;
82 pnProc->RegisterMe(theGammaReaction);
83 pnProc->RegisterMe(
qgsp);
84 procMan->AddDiscreteProcess(pnProc);
87 procMan = G4Electron::Electron()->GetProcessManager();
88 G4ElectronNuclearProcess* emn =
new G4ElectronNuclearProcess;
89 emn->RegisterMe(evdn);
90 procMan->AddDiscreteProcess(emn);
93 procMan = G4Positron::Positron()->GetProcessManager();
94 G4PositronNuclearProcess* epn =
new G4PositronNuclearProcess;
95 epn->RegisterMe(evdn);
96 procMan->AddDiscreteProcess(epn);
99 procMan = G4MuonMinus::MuonMinus()->GetProcessManager();
100 G4MuonNuclearProcess* mun =
new G4MuonNuclearProcess;
101 mun->RegisterMe(mvdn);
102 procMan->AddDiscreteProcess(mun);
105 procMan = G4MuonPlus::MuonPlus()->GetProcessManager();
106 procMan->AddDiscreteProcess(mun);