Import Geant4 10.3.0 source tree
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4BiasingProcessInterface.hh"
|
||||
#include "G4ParallelGeometriesLimiterProcess.hh"
|
||||
|
||||
G4bool G4BiasingHelper::ActivatePhysicsBiasing(G4ProcessManager* pmanager,
|
||||
G4String physicsProcessToBias,
|
||||
@@ -102,3 +103,42 @@ void G4BiasingHelper::ActivateNonPhysicsBiasing(G4ProcessManager* pmanager,
|
||||
ordInActive,
|
||||
ordDefault);
|
||||
}
|
||||
|
||||
G4ParallelGeometriesLimiterProcess* G4BiasingHelper::AddLimiterProcess(G4ProcessManager* pmanager, const G4String& processName)
|
||||
{
|
||||
G4ParallelGeometriesLimiterProcess* toReturn = nullptr;
|
||||
|
||||
G4ProcessVector* processList = pmanager->GetProcessList();
|
||||
G4bool noInstance = true;
|
||||
for (G4int i = 0 ; i < processList->size() ; i++)
|
||||
{
|
||||
G4VProcess* process = (*processList)[i];
|
||||
if ( dynamic_cast< G4ParallelGeometriesLimiterProcess* >( process ) )
|
||||
{
|
||||
noInstance = false;
|
||||
|
||||
G4ExceptionDescription ed;
|
||||
ed << "Trying to re-add a G4ParallelGeometriesLimiterProcess process to the process manager for '"<<
|
||||
pmanager->GetParticleType()->GetParticleName() << " (PDG : " << pmanager->GetParticleType()->GetPDGEncoding() << " )"
|
||||
<< " while one is already present." << G4endl;
|
||||
G4Exception("G4BiasingHelper::AddBiasingProcessLimiter(G4ProcessManager* pmanager)",
|
||||
"BIAS.GEN.28",
|
||||
JustWarning, ed,
|
||||
"Call ignored.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( noInstance )
|
||||
{
|
||||
G4ParallelGeometriesLimiterProcess* biasingLimiter = new G4ParallelGeometriesLimiterProcess(processName);
|
||||
pmanager->AddProcess ( biasingLimiter );
|
||||
pmanager->SetProcessOrderingToSecond( biasingLimiter, idxAlongStep );
|
||||
pmanager->SetProcessOrderingToLast ( biasingLimiter, idxPostStep );
|
||||
|
||||
toReturn = biasingLimiter;
|
||||
}
|
||||
|
||||
return toReturn;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user