155{
156 const G4ParticleDefinition* p[6] = {
163 };
164
165
166 if (fNuOscillation) {
167 auto theNuVacOscProcess = new G4NuVacOscProcess(fNuOscDistanceName);
168 theNuVacOscProcess->SetBiasingFactor(fNuOscDistanceBias);
169
170
171 for (
G4int i=0; i<6; ++i) {
173 }
174 }
175
176
177 auto theNuEleProcess = new G4NeutrinoElectronProcess(fNuDetectorName);
178 G4NeutrinoElectronTotXsc* theNuEleTotXsc = new G4NeutrinoElectronTotXsc();
179
180 if (fNuETotXscActivated) {
181 G4double bftot = std::max(fNuEleCcBias, fNuEleNcBias);
182 theNuEleProcess->SetBiasingFactor(bftot);
183 }
184 else {
185 theNuEleProcess->SetBiasingFactors(fNuEleCcBias, fNuEleNcBias);
187 }
188 theNuEleProcess->AddDataSet(theNuEleTotXsc);
189
190 G4NeutrinoElectronCcModel* ccModel = new G4NeutrinoElectronCcModel();
191 G4NeutrinoElectronNcModel* ncModel = new G4NeutrinoElectronNcModel();
192 theNuEleProcess->RegisterMe(ccModel);
193 theNuEleProcess->RegisterMe(ncModel);
194
195 for (
G4int i=0; i<6; ++i) {
197 }
198
199
200 auto theNuMuNucleusProcess = new G4MuNeutrinoNucleusProcess(fNuDetectorName);
201 auto theNuMuNucleusTotXsc = new G4MuNeutrinoNucleusTotXsc();
202
203 if (fNuETotXscActivated) {
204 theNuMuNucleusProcess->SetBiasingFactor(fNuNucleusBias);
205 }
206 theNuMuNucleusProcess->AddDataSet(theNuMuNucleusTotXsc);
207
208 G4NuMuNucleusCcModel* numunuclcc = new G4NuMuNucleusCcModel();
209 G4NuMuNucleusNcModel* numunuclnc = new G4NuMuNucleusNcModel();
210 G4ANuMuNucleusCcModel* anumunuclcc = new G4ANuMuNucleusCcModel();
211 G4ANuMuNucleusNcModel* anumunuclnc = new G4ANuMuNucleusNcModel();
212
213 theNuMuNucleusProcess->RegisterMe(numunuclcc);
214 theNuMuNucleusProcess->RegisterMe(numunuclnc);
215 theNuMuNucleusProcess->RegisterMe(anumunuclcc);
216 theNuMuNucleusProcess->RegisterMe(anumunuclnc);
217
218 for (
G4int i=2; i<=3; ++i) {
220 }
221
222
223 auto theNuTauNucleusProcess = new G4TauNeutrinoNucleusProcess(fNuDetectorName);
224 auto theNuTauNucleusTotXsc = new G4TauNeutrinoNucleusTotXsc();
225
226 if(fNuETotXscActivated) {
227 theNuTauNucleusProcess->SetBiasingFactor(fNuNucleusBias);
228 }
229 theNuTauNucleusProcess->AddDataSet(theNuTauNucleusTotXsc);
230
231 G4NuTauNucleusCcModel* nutaunuclcc = new G4NuTauNucleusCcModel();
232 G4NuTauNucleusNcModel* nutaunuclnc = new G4NuTauNucleusNcModel();
233 G4ANuTauNucleusCcModel* anutaunuclcc = new G4ANuTauNucleusCcModel();
234 G4ANuTauNucleusNcModel* anutaunuclnc = new G4ANuTauNucleusNcModel();
235
236 theNuTauNucleusProcess->RegisterMe(nutaunuclcc);
237 theNuTauNucleusProcess->RegisterMe(nutaunuclnc);
238 theNuTauNucleusProcess->RegisterMe(anutaunuclcc);
239 theNuTauNucleusProcess->RegisterMe(anutaunuclnc);
240
241 for (
G4int i=4; i<=5; ++i) {
243 }
244
245
246 auto theNuElNucleusProcess = new G4ElNeutrinoNucleusProcess(fNuDetectorName);
247 auto theNuElNucleusTotXsc = new G4ElNeutrinoNucleusTotXsc();
248
249 if (fNuETotXscActivated) {
250 theNuElNucleusProcess->SetBiasingFactor(fNuNucleusBias);
251 }
252 theNuElNucleusProcess->AddDataSet(theNuElNucleusTotXsc);
253
254 G4NuElNucleusCcModel* nuelnuclcc = new G4NuElNucleusCcModel();
255 G4NuElNucleusNcModel* nuelnuclnc = new G4NuElNucleusNcModel();
256 G4ANuElNucleusCcModel* anuelnuclcc = new G4ANuElNucleusCcModel();
257 G4ANuElNucleusNcModel* anuelnuclnc = new G4ANuElNucleusNcModel();
258
259 theNuElNucleusProcess->RegisterMe(nuelnuclcc);
260 theNuElNucleusProcess->RegisterMe(nuelnuclnc);
261 theNuElNucleusProcess->RegisterMe(anuelnuclcc);
262 theNuElNucleusProcess->RegisterMe(anuelnuclnc);
263
264 for (
G4int i=0; i<=1; ++i) {
266 }
267}
void SetBiasingFactors(G4double bfCc, G4double bfNc)
G4ProcessManager * GetProcessManager() const
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)