54 fFastTrack(anEnvelope,IsUnique),fTriggedFastSimulationModel(0),
55 fLastCrossedParticle(0)
63 AddFastSimulationManager(
this);
79 RemoveFastSimulationManager(
this);
92 for (iModel=0; iModel<
ModelList.size(); iModel++)
114 for (
size_t iModel=0; iModel<
ModelList.size(); iModel++)
115 if(
ModelList[iModel]->GetName() == aName) {
128 bool &foundPrevious)
const
131 for (
size_t iModel=0; iModel<
ModelList.size(); iModel++)
133 if(
ModelList[iModel]->GetName() == modelName)
135 if (previousFound == 0)
144 foundPrevious =
true;
194 for (iModel=0; iModel<
ModelList.size(); iModel++)
259 for (iModel=0; iModel<
ModelList.size(); iModel++)
301 else G4cout <<
" (// geom.)";
310 G4cout <<
"Current Models for the ";
314 for (iModel=0; iModel<
ModelList.size(); iModel++)
319 <<
"(inactivated)\n";
329 for ( iModel=0; iModel<
ModelList.size(); iModel++ )
330 if(
ModelList[iModel]->GetName() == modelName || modelName ==
"all" )
334 G4cout <<
"In the envelope ";
339 <<
" is applicable for :\n ";
341 G4int list_started=0;
342 for (
G4int iParticle = 0; iParticle<theParticleTable->
entries(); iParticle++)
345 if(list_started++)
G4cout <<
", ";
346 G4cout << theParticleTable->
358 G4cout <<
"In the envelope ";
363 <<
" (inactivated) is applicable for :\n ";
365 G4int list_started=0;
366 for (
G4int iParticle=0; iParticle<theParticleTable->
entries(); iParticle++ )
369 if(list_started++)
G4cout <<
", ";
370 G4cout << theParticleTable->
383 for ( iModel=0; iModel<
ModelList.size(); iModel++ )
384 if (
ModelList[iModel]->IsApplicable(*particleDefinition) )
392 for (
auto jModel = iModel + 1; jModel <
ModelList.size(); jModel++ )
393 if (
ModelList[jModel]->IsApplicable(*particleDefinition) ) unique =
false;
404 <<
" (inactivated)." <<
G4endl;
410 ed <<
"Two or more active Models are available for the same particle type, in the same envelope/region." <<
G4endl;
411 G4Exception(
"G4FastSimulationManager::ListModels(const G4ParticleDefinition* particleDefinition) const",
414 "Models risk to exclude each other.");