52{
53 G4ProcessManager* procMan = 0;
54
55
56 G4HadronElastic* elModel = new G4HadronElastic();
57
58
59 G4CascadeInterface* loInelModel = new G4CascadeInterface;
60 loInelModel->SetMinEnergy(0.0);
61 loInelModel->SetMaxEnergy(6.0 * GeV);
62
63
64 m_ftfp = new G4TheoFSGenerator("FTFP");
65 m_stringModel = new G4FTFModel;
66 m_stringDecay =
67 new G4ExcitedStringDecay(m_fragModel = new G4LundStringFragmentation);
68 m_stringModel->SetFragmentationModel(m_stringDecay);
69 m_preCompoundModel = new G4GeneratorPrecompoundInterface();
70
71 m_ftfp->SetHighEnergyGenerator(m_stringModel);
72 m_ftfp->SetTransport(m_preCompoundModel);
73 m_ftfp->SetMinEnergy(4 * GeV);
74 m_ftfp->SetMaxEnergy(100 * TeV);
75
76
77 G4ChipsHyperonElasticXS* chipsElastic = new G4ChipsHyperonElasticXS;
78 G4ChipsHyperonInelasticXS* chipsInelastic = new G4ChipsHyperonInelasticXS;
79
81
83
84 procMan = G4Lambda::Lambda()->GetProcessManager();
85
86
87 G4HadronElasticProcess* lamProcEl = new G4HadronElasticProcess;
88 lamProcEl->RegisterMe(elModel);
89 lamProcEl->AddDataSet(chipsElastic);
90 procMan->AddDiscreteProcess(lamProcEl);
91
92
93 G4HadronInelasticProcess* lamProcInel = new G4HadronInelasticProcess("lambdaInelastic", G4Lambda::Definition());
94 lamProcInel->RegisterMe(loInelModel);
95 lamProcInel->RegisterMe(m_ftfp);
96 lamProcInel->AddDataSet(chipsInelastic);
97 procMan->AddDiscreteProcess(lamProcInel);
98
100
102
103 procMan = G4SigmaPlus::SigmaPlus()->GetProcessManager();
104
105
106 G4HadronElasticProcess* spProcEl = new G4HadronElasticProcess;
107 spProcEl->RegisterMe(elModel);
108 spProcEl->AddDataSet(chipsElastic);
109 procMan->AddDiscreteProcess(spProcEl);
110
111
112 G4HadronInelasticProcess* spProcInel = new G4HadronInelasticProcess("sigma+Inelastic", G4SigmaPlus::Definition());
113 spProcInel->RegisterMe(loInelModel);
114 spProcInel->RegisterMe(m_ftfp);
115 spProcInel->AddDataSet(chipsInelastic);
116 procMan->AddDiscreteProcess(spProcInel);
117
119
121
122 procMan = G4SigmaMinus::SigmaMinus()->GetProcessManager();
123
124
125 G4HadronElasticProcess* smProcEl = new G4HadronElasticProcess;
126 smProcEl->RegisterMe(elModel);
127 smProcEl->AddDataSet(chipsElastic);
128 procMan->AddDiscreteProcess(smProcEl);
129
130
131 G4HadronInelasticProcess* smProcInel = new G4HadronInelasticProcess("sigma-Inelastic", G4SigmaMinus::Definition());
132 smProcInel->RegisterMe(loInelModel);
133 smProcInel->RegisterMe(m_ftfp);
134 smProcInel->AddDataSet(chipsInelastic);
135 procMan->AddDiscreteProcess(smProcInel);
136
137
138 G4HadronicAbsorptionBertini* smAbsorb = new G4HadronicAbsorptionBertini;
139 procMan->AddRestProcess(smAbsorb);
140
142
144
145 procMan = G4XiZero::XiZero()->GetProcessManager();
146
147
148 G4HadronElasticProcess* xzProcEl = new G4HadronElasticProcess;
149 xzProcEl->RegisterMe(elModel);
150 xzProcEl->AddDataSet(chipsElastic);
151 procMan->AddDiscreteProcess(xzProcEl);
152
153
154 G4HadronInelasticProcess* xzProcInel = new G4HadronInelasticProcess("xi0Inelastic", G4XiZero::Definition());
155 xzProcInel->RegisterMe(loInelModel);
156 xzProcInel->RegisterMe(m_ftfp);
157 xzProcInel->AddDataSet(chipsInelastic);
158 procMan->AddDiscreteProcess(xzProcInel);
159
161
163
164 procMan = G4XiMinus::XiMinus()->GetProcessManager();
165
166
167 G4HadronElasticProcess* xmProcEl = new G4HadronElasticProcess;
168 xmProcEl->RegisterMe(elModel);
169 xmProcEl->AddDataSet(chipsElastic);
170 procMan->AddDiscreteProcess(xmProcEl);
171
172
173 G4HadronInelasticProcess* xmProcInel = new G4HadronInelasticProcess("xi-Inelastic", G4XiMinus::Definition());
174 xmProcInel->RegisterMe(loInelModel);
175 xmProcInel->RegisterMe(m_ftfp);
176 xmProcInel->AddDataSet(chipsInelastic);
177 procMan->AddDiscreteProcess(xmProcInel);
178
179
180 G4HadronicAbsorptionBertini* xmAbsorb = new G4HadronicAbsorptionBertini;
181 procMan->AddRestProcess(xmAbsorb);
182
184
186
187 procMan = G4OmegaMinus::OmegaMinus()->GetProcessManager();
188
189
190 G4HadronElasticProcess* omProcEl = new G4HadronElasticProcess;
191 omProcEl->RegisterMe(elModel);
192 omProcEl->AddDataSet(chipsElastic);
193 procMan->AddDiscreteProcess(omProcEl);
194
195
196 G4HadronInelasticProcess* omProcInel = new G4HadronInelasticProcess("omega-Inelastic", G4OmegaMinus::Definition());
197 omProcInel->RegisterMe(loInelModel);
198 omProcInel->RegisterMe(m_ftfp);
199 omProcInel->AddDataSet(chipsInelastic);
200 procMan->AddDiscreteProcess(omProcInel);
201
202
203 G4HadronicAbsorptionBertini* omAbsorb = new G4HadronicAbsorptionBertini;
204 procMan->AddRestProcess(omAbsorb);
205}