54 G4ProcessManager* procMan;
57 G4HadronElastic* elModel =
new G4HadronElastic();
60 G4CascadeInterface* loInelModel =
new G4CascadeInterface;
61 loInelModel->SetMinEnergy(0.0);
62 loInelModel->SetMaxEnergy(12.0 * GeV);
65 m_ftfp =
new G4TheoFSGenerator(
"FTFP");
68 new G4ExcitedStringDecay(
m_fragModel =
new G4LundStringFragmentation);
74 m_ftfp->SetMinEnergy(10 * GeV);
75 m_ftfp->SetMaxEnergy(100 * TeV);
78 G4VCrossSectionDataSet* kinelCS =
79 new G4CrossSectionInelastic(
new G4ComponentGGHadronNucleusXsc);
82 G4VCrossSectionDataSet* kelCS =
83 new G4CrossSectionElastic(
new G4ComponentGGHadronNucleusXsc);
89 procMan = G4KaonPlus::KaonPlus()->GetProcessManager();
92 G4HadronElasticProcess* kpProcEl =
new G4HadronElasticProcess;
93 kpProcEl->RegisterMe(elModel);
94 kpProcEl->AddDataSet(kelCS);
95 procMan->AddDiscreteProcess(kpProcEl);
98 G4HadronInelasticProcess* kpProcInel =
new G4HadronInelasticProcess(
"kaon+Inelastic", G4KaonPlus::Definition());
99 kpProcInel->RegisterMe(loInelModel);
100 kpProcInel->RegisterMe(
m_ftfp);
101 kpProcInel->AddDataSet(kinelCS);
102 procMan->AddDiscreteProcess(kpProcInel);
108 procMan = G4KaonMinus::KaonMinus()->GetProcessManager();
111 G4HadronElasticProcess* kmProcEl =
new G4HadronElasticProcess;
112 kmProcEl->RegisterMe(elModel);
113 kmProcEl->AddDataSet(kelCS);
114 procMan->AddDiscreteProcess(kmProcEl);
117 G4HadronInelasticProcess* kmProcInel =
new G4HadronInelasticProcess(
"kaon-Inelastic", G4KaonMinus::Definition());
118 kmProcInel->RegisterMe(loInelModel);
119 kmProcInel->RegisterMe(
m_ftfp);
120 kmProcInel->AddDataSet(kinelCS);
121 procMan->AddDiscreteProcess(kmProcInel);
124 G4HadronicAbsorptionBertini* bertAbsorb =
new G4HadronicAbsorptionBertini;
125 procMan->AddRestProcess(bertAbsorb);
131 procMan = G4KaonZeroLong::KaonZeroLong()->GetProcessManager();
134 G4HadronElasticProcess* k0LProcEl =
new G4HadronElasticProcess;
135 k0LProcEl->RegisterMe(elModel);
136 k0LProcEl->AddDataSet(kelCS);
137 procMan->AddDiscreteProcess(k0LProcEl);
140 G4HadronInelasticProcess* k0LProcInel =
new G4HadronInelasticProcess(
"kaon0LInelastic", G4KaonZeroLong::Definition());
141 k0LProcInel->RegisterMe(loInelModel);
142 k0LProcInel->RegisterMe(
m_ftfp);
143 k0LProcInel->AddDataSet(kinelCS);
144 procMan->AddDiscreteProcess(k0LProcInel);
150 procMan = G4KaonZeroShort::KaonZeroShort()->GetProcessManager();
153 G4HadronElasticProcess* k0SProcEl =
new G4HadronElasticProcess;
154 k0SProcEl->RegisterMe(elModel);
155 k0SProcEl->AddDataSet(kelCS);
156 procMan->AddDiscreteProcess(k0SProcEl);
159 G4HadronInelasticProcess* k0SProcInel =
new G4HadronInelasticProcess(
"kaon0SInelastic", G4KaonZeroShort::Definition());
160 k0SProcInel->RegisterMe(loInelModel);
161 k0SProcInel->RegisterMe(
m_ftfp);
162 k0SProcInel->AddDataSet(kinelCS);
163 procMan->AddDiscreteProcess(k0SProcInel);