Geant4-11
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
G4TransportationManager Class Reference

#include <G4TransportationManager.hh>

Public Member Functions

G4int ActivateNavigator (G4Navigator *aNavigator)
 
void ClearParallelWorlds ()
 
void DeActivateNavigator (G4Navigator *aNavigator)
 
void DeRegisterNavigator (G4Navigator *aNavigator)
 
std::vector< G4Navigator * >::iterator GetActiveNavigatorsIterator ()
 
G4FieldManagerGetFieldManager () const
 
G4NavigatorGetNavigator (const G4String &worldName)
 
G4NavigatorGetNavigator (G4VPhysicalVolume *aWorld)
 
G4NavigatorGetNavigatorForTracking () const
 
size_t GetNoActiveNavigators () const
 
size_t GetNoWorlds () const
 
G4VPhysicalVolumeGetParallelWorld (const G4String &worldName)
 
G4PropagatorInFieldGetPropagatorInField () const
 
G4SafetyHelperGetSafetyHelper () const
 
std::vector< G4VPhysicalVolume * >::iterator GetWorldsIterator ()
 
void InactivateAll ()
 
G4VPhysicalVolumeIsWorldExisting (const G4String &worldName)
 
G4bool RegisterWorld (G4VPhysicalVolume *aWorld)
 
void SetFieldManager (G4FieldManager *newFieldManager)
 
void SetNavigatorForTracking (G4Navigator *newNavigator)
 
void SetPropagatorInField (G4PropagatorInField *newFieldPropagator)
 
void SetWorldForTracking (G4VPhysicalVolume *theWorld)
 
 ~G4TransportationManager ()
 

Static Public Member Functions

static G4NavigatorGetFirstTrackingNavigator ()
 
static G4TransportationManagerGetInstanceIfExist ()
 
static G4TransportationManagerGetTransportationManager ()
 
static void SetFirstTrackingNavigator (G4Navigator *nav)
 

Protected Member Functions

 G4TransportationManager ()
 

Private Member Functions

void ClearNavigators ()
 
void DeRegisterWorld (G4VPhysicalVolume *aWorld)
 

Private Attributes

std::vector< G4Navigator * > fActiveNavigators
 
G4FieldManagerfFieldManager
 
G4GeometryMessengerfGeomMessenger
 
std::vector< G4Navigator * > fNavigators
 
G4PropagatorInFieldfPropagatorInField
 
G4SafetyHelperfSafetyHelper
 
std::vector< G4VPhysicalVolume * > fWorlds
 

Static Private Attributes

static G4NavigatorfFirstTrackingNavigator = nullptr
 
static G4ThreadLocal G4TransportationManagerfTransportationManager = nullptr
 

Detailed Description

Definition at line 53 of file G4TransportationManager.hh.

Constructor & Destructor Documentation

◆ ~G4TransportationManager()

G4TransportationManager::~G4TransportationManager ( )

Definition at line 90 of file G4TransportationManager.cc.

91{
92 delete fSafetyHelper;
93 delete fPropagatorInField;
94 delete fGeomMessenger;
96 fTransportationManager = nullptr;
97}
G4GeometryMessenger * fGeomMessenger
G4PropagatorInField * fPropagatorInField
static G4ThreadLocal G4TransportationManager * fTransportationManager

References ClearNavigators(), fGeomMessenger, fPropagatorInField, fSafetyHelper, and fTransportationManager.

◆ G4TransportationManager()

G4TransportationManager::G4TransportationManager ( )
protected

Definition at line 54 of file G4TransportationManager.cc.

55{
57 {
58 G4Exception("G4TransportationManager::G4TransportationManager()",
59 "GeomNav0002", FatalException,
60 "Only ONE instance of G4TransportationManager is allowed!");
61 }
62
63 // Create the navigator for tracking and activate it; add to collections
64 //
65 G4Navigator* trackingNavigator= nullptr;
67 {
68 trackingNavigator = fFirstTrackingNavigator->Clone();
69 }
70 else
71 {
72 trackingNavigator = new G4Navigator();
73 if( fFirstTrackingNavigator == nullptr )
74 fFirstTrackingNavigator = trackingNavigator;
75 }
76 trackingNavigator->Activate(true);
77 fNavigators.push_back(trackingNavigator);
78 fActiveNavigators.push_back(trackingNavigator);
79 fWorlds.push_back(trackingNavigator->GetWorldVolume()); // NULL registered
80
82 fFieldManager = new G4FieldManager(); // deleted by G4FieldManagerStore
85}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
void Activate(G4bool flag)
G4VExternalNavigation * GetExternalNavigation() const
G4Navigator * Clone() const
G4VPhysicalVolume * GetWorldVolume() const
std::vector< G4VPhysicalVolume * > fWorlds
std::vector< G4Navigator * > fNavigators
static G4Navigator * fFirstTrackingNavigator
std::vector< G4Navigator * > fActiveNavigators

References G4Navigator::Activate(), G4Navigator::Clone(), fActiveNavigators, FatalException, fFieldManager, fFirstTrackingNavigator, fGeomMessenger, fNavigators, fPropagatorInField, fSafetyHelper, fTransportationManager, fWorlds, G4Exception(), G4Navigator::GetExternalNavigation(), and G4Navigator::GetWorldVolume().

Referenced by GetTransportationManager().

Member Function Documentation

◆ ActivateNavigator()

G4int G4TransportationManager::ActivateNavigator ( G4Navigator aNavigator)

Definition at line 313 of file G4TransportationManager.cc.

314{
315 auto pNav = std::find(fNavigators.cbegin(), fNavigators.cend(), aNavigator);
316 if (pNav == fNavigators.cend())
317 {
318 G4String message
319 = "Navigator for volume -" + aNavigator->GetWorldVolume()->GetName()
320 + "- not found in memory!";
321 G4Exception("G4TransportationManager::ActivateNavigator()",
322 "GeomNav1002", FatalException, message);
323 return -1;
324 }
325
326 aNavigator->Activate(true);
327 G4int id = 0;
328 for(auto pActiveNav=fActiveNavigators.cbegin();
329 pActiveNav!=fActiveNavigators.cend(); ++pActiveNav)
330 {
331 if (*pActiveNav == aNavigator) { return id; }
332 ++id;
333 }
334
335 fActiveNavigators.push_back(aNavigator);
336 return id;
337}
int G4int
Definition: G4Types.hh:85
const G4String & GetName() const

References G4Navigator::Activate(), fActiveNavigators, FatalException, fNavigators, G4Exception(), G4VPhysicalVolume::GetName(), and G4Navigator::GetWorldVolume().

Referenced by G4CoupledTransportation::G4CoupledTransportation(), G4SafetyHelper::InitialiseNavigator(), G4ParallelGeometriesLimiterProcess::StartTracking(), G4ImportanceProcess::StartTracking(), G4WeightCutOffProcess::StartTracking(), G4WeightWindowProcess::StartTracking(), G4FastSimulationManagerProcess::StartTracking(), G4ParallelWorldProcess::StartTracking(), G4ParallelWorldScoringProcess::StartTracking(), and G4CoupledTransportation::StartTracking().

◆ ClearNavigators()

void G4TransportationManager::ClearNavigators ( )
private

Definition at line 160 of file G4TransportationManager.cc.

161{
162 for (auto pNav=fNavigators.cbegin(); pNav!=fNavigators.cend(); ++pNav)
163 {
164 delete *pNav;
165 }
166 fNavigators.clear();
167 fActiveNavigators.clear();
168 fWorlds.clear();
169}

References fActiveNavigators, fNavigators, and fWorlds.

Referenced by ~G4TransportationManager().

◆ ClearParallelWorlds()

void G4TransportationManager::ClearParallelWorlds ( )

Definition at line 461 of file G4TransportationManager.cc.

462{
463 auto pNav = fNavigators.cbegin();
464 G4Navigator* trackingNavigator = *pNav;
465 for (pNav=fNavigators.cbegin(); pNav!=fNavigators.cend(); ++pNav)
466 {
467 if (*pNav != trackingNavigator) { delete *pNav; }
468 }
469 fNavigators.clear();
470 fActiveNavigators.clear();
471 fWorlds.clear();
472
473 fNavigators.push_back(trackingNavigator);
474 fActiveNavigators.push_back(trackingNavigator);
475 fWorlds.push_back(0); // NULL registered
476}

References fActiveNavigators, fNavigators, and fWorlds.

Referenced by G4WorkerRunManager::InitializeGeometry(), and G4RunManager::ReinitializeGeometry().

◆ DeActivateNavigator()

void G4TransportationManager::DeActivateNavigator ( G4Navigator aNavigator)

Definition at line 346 of file G4TransportationManager.cc.

347{
348 auto pNav = std::find(fNavigators.cbegin(), fNavigators.cend(), aNavigator);
349 if (pNav != fNavigators.cend())
350 {
351 (*pNav)->Activate(false);
352 }
353 else
354 {
355 G4String message
356 = "Navigator for volume -" + aNavigator->GetWorldVolume()->GetName()
357 + "- not found in memory!";
358 G4Exception("G4TransportationManager::DeActivateNavigator()",
359 "GeomNav1002", JustWarning, message);
360 }
361
362 auto pActiveNav = std::find(fActiveNavigators.cbegin(),
363 fActiveNavigators.cend(), aNavigator);
364 if (pActiveNav != fActiveNavigators.cend())
365 {
366 fActiveNavigators.erase(pActiveNav);
367 }
368}
@ JustWarning

References fActiveNavigators, fNavigators, G4Exception(), G4VPhysicalVolume::GetName(), G4Navigator::GetWorldVolume(), and JustWarning.

Referenced by G4ParallelGeometriesLimiterProcess::EndTracking(), and G4FastSimulationManagerProcess::EndTracking().

◆ DeRegisterNavigator()

void G4TransportationManager::DeRegisterNavigator ( G4Navigator aNavigator)

Definition at line 275 of file G4TransportationManager.cc.

276{
277 if (aNavigator == fNavigators[0])
278 {
279 G4Exception("G4TransportationManager::DeRegisterNavigator()",
280 "GeomNav0003", FatalException,
281 "The navigator for tracking CANNOT be deregistered!");
282 }
283 auto pNav = std::find(fNavigators.cbegin(), fNavigators.cend(), aNavigator);
284 if (pNav != fNavigators.cend())
285 {
286 // Deregister associated world volume
287 //
288 DeRegisterWorld((*pNav)->GetWorldVolume());
289
290 // Deregister the navigator
291 //
292 fNavigators.erase(pNav);
293 }
294 else
295 {
296 G4String message
297 = "Navigator for volume -" + aNavigator->GetWorldVolume()->GetName()
298 + "- not found in memory!";
299 G4Exception("G4TransportationManager::DeRegisterNavigator()",
300 "GeomNav1002", JustWarning, message);
301 }
302}
void DeRegisterWorld(G4VPhysicalVolume *aWorld)

References DeRegisterWorld(), FatalException, fNavigators, G4Exception(), G4VPhysicalVolume::GetName(), G4Navigator::GetWorldVolume(), and JustWarning.

◆ DeRegisterWorld()

void G4TransportationManager::DeRegisterWorld ( G4VPhysicalVolume aWorld)
private

Definition at line 437 of file G4TransportationManager.cc.

438{
439 auto pWorld = std::find(fWorlds.cbegin(), fWorlds.cend(), aWorld);
440 if (pWorld != fWorlds.cend())
441 {
442 fWorlds.erase(pWorld);
443 }
444 else
445 {
446 G4String message
447 = "World volume -" + aWorld->GetName() + "- not found in memory!";
448 G4Exception("G4TransportationManager::DeRegisterWorld()",
449 "GeomNav1002", JustWarning, message);
450 }
451}

References fWorlds, G4Exception(), G4VPhysicalVolume::GetName(), and JustWarning.

Referenced by DeRegisterNavigator().

◆ GetActiveNavigatorsIterator()

std::vector< G4Navigator * >::iterator G4TransportationManager::GetActiveNavigatorsIterator ( )
inline

◆ GetFieldManager()

G4FieldManager * G4TransportationManager::GetFieldManager ( ) const
inline

◆ GetFirstTrackingNavigator()

G4Navigator * G4TransportationManager::GetFirstTrackingNavigator ( )
static

Definition at line 483 of file G4TransportationManager.cc.

484{
486}

References fFirstTrackingNavigator.

◆ GetInstanceIfExist()

G4TransportationManager * G4TransportationManager::GetInstanceIfExist ( )
static

Definition at line 118 of file G4TransportationManager.cc.

119{
121}

References fTransportationManager.

Referenced by G4RunManagerKernel::~G4RunManagerKernel().

◆ GetNavigator() [1/2]

G4Navigator * G4TransportationManager::GetNavigator ( const G4String worldName)

Definition at line 202 of file G4TransportationManager.cc.

203{
204 // If already existing, return the stored pointer to the navigator
205 //
206 for (auto pNav=fNavigators.cbegin(); pNav!=fNavigators.cend(); ++pNav)
207 {
208 if ((*pNav)->GetWorldVolume()->GetName() == worldName) { return *pNav; }
209 }
210
211 // Check if world of that name already exists,
212 // create a navigator and register it
213 //
214 G4Navigator* aNavigator = nullptr;
215 G4VPhysicalVolume* aWorld = IsWorldExisting(worldName);
216 if(aWorld != nullptr)
217 {
218 aNavigator = new G4Navigator();
219 aNavigator->SetWorldVolume(aWorld);
220 fNavigators.push_back(aNavigator);
221 }
222 else
223 {
224 G4String message
225 = "World volume with name -" + worldName
226 + "- does not exist. Create it first by GetParallelWorld() method!";
227 G4Exception("G4TransportationManager::GetNavigator(name)",
228 "GeomNav0002", FatalException, message);
229 }
230
231 return aNavigator;
232}
void SetWorldVolume(G4VPhysicalVolume *pWorld)
G4VPhysicalVolume * IsWorldExisting(const G4String &worldName)

References FatalException, fNavigators, G4Exception(), IsWorldExisting(), and G4Navigator::SetWorldVolume().

Referenced by G4ImportanceProcess::SetParallelWorld(), G4WeightCutOffProcess::SetParallelWorld(), G4WeightWindowProcess::SetParallelWorld(), G4ParallelWorldProcess::SetParallelWorld(), G4ParallelWorldScoringProcess::SetParallelWorld(), and G4FastSimulationManagerProcess::StartTracking().

◆ GetNavigator() [2/2]

G4Navigator * G4TransportationManager::GetNavigator ( G4VPhysicalVolume aWorld)

Definition at line 241 of file G4TransportationManager.cc.

242{
243 for (auto pNav=fNavigators.cbegin(); pNav!=fNavigators.cend(); ++pNav)
244 {
245 if ((*pNav)->GetWorldVolume() == aWorld) { return *pNav; }
246 }
247 G4Navigator* aNavigator = nullptr;
248 auto pWorld = std::find(fWorlds.cbegin(), fWorlds.cend(), aWorld);
249 if (pWorld != fWorlds.cend())
250 {
251 aNavigator = new G4Navigator();
252 aNavigator->SetWorldVolume(aWorld);
253 fNavigators.push_back(aNavigator);
254 }
255 else
256 {
257 G4String message
258 = "World volume with name -" + aWorld->GetName()
259 + "- does not exist. Create it first by GetParallelWorld() method!";
260 G4Exception("G4TransportationManager::GetNavigator(pointer)",
261 "GeomNav0002", FatalException, message);
262 }
263
264 return aNavigator;
265}

References FatalException, fNavigators, fWorlds, G4Exception(), G4VPhysicalVolume::GetName(), and G4Navigator::SetWorldVolume().

◆ GetNavigatorForTracking()

G4Navigator * G4TransportationManager::GetNavigatorForTracking ( ) const
inline

Referenced by G4ParallelGeometriesLimiterProcess::AddParallelWorld(), G4RayTrajectory::AppendStep(), G4MultiNavigator::CheckMassWorld(), G4AdjointPrimaryGenerator::ComputeAccumulatedDepthVectorAlongBackRay(), G4TheRayTracer::CreateBitMap(), G4VFieldModel::DescribeYourselfTo(), G4EventManager::DoProcessing(), G4MaterialScanner::DoScan(), G4TrajectoryDrawByOriginVolume::Draw(), G4PathFinder::EnableParallelNavigation(), G4TrajectoryOriginVolumeFilter::Evaluate(), export_G4TransportationManager(), G4FastTrack::FRecordsAffineTransformation(), G4CoupledTransportation::G4CoupledTransportation(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4GeometrySampler::G4GeometrySampler(), G4ImportanceConfigurator::G4ImportanceConfigurator(), G4MultiNavigator::G4MultiNavigator(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4Transportation::G4Transportation(), GetParallelWorld(), G4GeometryMessenger::Init(), G4SafetyHelper::InitialiseNavigator(), G4ITTransportationManager::Initialize(), G4SPSPosDistribution::IsSourceConfined(), G4FastSimulationManager::ListTitle(), G4FastSimHitMaker::make(), GFlashHitMaker::make(), G4VTransitionRadiation::PostStepDoIt(), G4GeometryMessenger::ResetNavigator(), G4GeometryMessenger::SetCheckMode(), G4GeometryMessenger::SetPushFlag(), G4GeometryMessenger::SetVerbosity(), G4IStore::SetWorldVolume(), G4WeightWindowStore::SetWorldVolume(), G4ErrorPropagatorManager::StartNavigator(), G4FastSimulationManagerProcess::StartTracking(), and G4CoupledTransportation::StartTracking().

◆ GetNoActiveNavigators()

size_t G4TransportationManager::GetNoActiveNavigators ( ) const
inline

◆ GetNoWorlds()

size_t G4TransportationManager::GetNoWorlds ( ) const
inline

◆ GetParallelWorld()

G4VPhysicalVolume * G4TransportationManager::GetParallelWorld ( const G4String worldName)

Definition at line 178 of file G4TransportationManager.cc.

179{
180 G4VPhysicalVolume* wPV = IsWorldExisting(worldName);
181 if (wPV == nullptr)
182 {
184 G4LogicalVolume* wLV = wPV->GetLogicalVolume();
185 wLV = new G4LogicalVolume(wLV->GetSolid(), nullptr,
186 worldName);
187 wPV = new G4PVPlacement (wPV->GetRotation(),
188 wPV->GetTranslation(),
189 wLV, worldName, nullptr, false, 0);
190 RegisterWorld(wPV);
191 }
192 return wPV;
193}
G4VSolid * GetSolid() const
G4bool RegisterWorld(G4VPhysicalVolume *aWorld)
G4Navigator * GetNavigatorForTracking() const
const G4RotationMatrix * GetRotation() const
const G4ThreeVector GetTranslation() const
G4LogicalVolume * GetLogicalVolume() const

References G4VPhysicalVolume::GetLogicalVolume(), GetNavigatorForTracking(), G4VPhysicalVolume::GetRotation(), G4LogicalVolume::GetSolid(), G4VPhysicalVolume::GetTranslation(), G4Navigator::GetWorldVolume(), IsWorldExisting(), and RegisterWorld().

Referenced by G4ParallelWorldPhysics::ConstructProcess(), G4RunManager::ConstructScoringWorlds(), G4ImportanceConfigurator::G4ImportanceConfigurator(), G4VUserParallelWorld::GetWorld(), G4FastSimHitMaker::make(), GFlashHitMaker::make(), G4ImportanceProcess::SetParallelWorld(), G4WeightCutOffProcess::SetParallelWorld(), G4WeightWindowProcess::SetParallelWorld(), G4ParallelWorldProcess::SetParallelWorld(), G4ParallelWorldScoringProcess::SetParallelWorld(), G4IStore::SetParallelWorldVolume(), and G4WeightWindowStore::SetParallelWorldVolume().

◆ GetPropagatorInField()

G4PropagatorInField * G4TransportationManager::GetPropagatorInField ( ) const
inline

◆ GetSafetyHelper()

G4SafetyHelper * G4TransportationManager::GetSafetyHelper ( ) const
inline

◆ GetTransportationManager()

G4TransportationManager * G4TransportationManager::GetTransportationManager ( )
static

Definition at line 104 of file G4TransportationManager.cc.

References fTransportationManager, and G4TransportationManager().

Referenced by G4Scene::AddWorldIfEmpty(), G4RayTrajectory::AppendStep(), G4DecayWithSpin::AtRestDoIt(), G4ErrorSurfaceTrajState::BuildErrorMatrix(), G4RunManagerKernel::CheckRegions(), G4VPrimaryGenerator::CheckVertexInsideWorld(), G4AdjointPrimaryGenerator::ComputeAccumulatedDepthVectorAlongBackRay(), G4ParallelWorldPhysics::ConstructProcess(), G4MTRunManager::ConstructScoringWorlds(), G4RunManager::ConstructScoringWorlds(), G4WorkerRunManager::ConstructScoringWorlds(), G4TaskRunManager::ConstructScoringWorlds(), G4TheRayTracer::CreateBitMap(), G4ScoreSplittingProcess::CreateTouchableForSubStep(), G4RunManagerKernel::DefineWorldVolume(), G4VFieldModel::DescribeYourselfTo(), G4ITTransportation::DoesGlobalFieldExist(), G4EventManager::DoProcessing(), G4MaterialScanner::DoScan(), G4TrajectoryDrawByOriginVolume::Draw(), G4DrawVoxels::DrawVoxels(), G4CoupledTransportation::EndTracking(), G4ToolsSGSceneHandler::EstablishBaseNodes(), G4Qt3DSceneHandler::EstablishG4Qt3DQEntities(), G4TrajectoryOriginVolumeFilter::Evaluate(), export_G4TransportationManager(), G4TouchableUtils::FindTouchableProperties(), G4FastTrack::FRecordsAffineTransformation(), G4CoupledTransportation::G4CoupledTransportation(), G4ElNeutrinoNucleusProcess::G4ElNeutrinoNucleusProcess(), G4ErrorFreeTrajState::G4ErrorFreeTrajState(), G4FastSimulationManagerProcess::G4FastSimulationManagerProcess(), G4GeometrySampler::G4GeometrySampler(), G4ImportanceConfigurator::G4ImportanceConfigurator(), G4ImportanceProcess::G4ImportanceProcess(), G4ITTransportation::G4ITTransportation(), G4MultiNavigator::G4MultiNavigator(), G4MuNeutrinoNucleusProcess::G4MuNeutrinoNucleusProcess(), G4NeutrinoElectronProcess::G4NeutrinoElectronProcess(), G4ParallelGeometriesLimiterProcess::G4ParallelGeometriesLimiterProcess(), G4ParallelWorldProcess::G4ParallelWorldProcess(), G4ParallelWorldScoringProcess::G4ParallelWorldScoringProcess(), G4PathFinder::G4PathFinder(), G4SteppingManager::G4SteppingManager(), G4SynchrotronRadiation::G4SynchrotronRadiation(), G4SynchrotronRadiationInMat::G4SynchrotronRadiationInMat(), G4Transportation::G4Transportation(), G4VEnergyLossProcess::G4VEnergyLossProcess(), G4WeightCutOffProcess::G4WeightCutOffProcess(), G4WeightWindowProcess::G4WeightWindowProcess(), G4VisManager::GeometryHasChanged(), G4VMscModel::GetParticleChangeForMSC(), G4VUserParallelWorld::GetWorld(), G4ErrorPropagatorManager::InitFieldForBackwards(), G4TDNAOneStepThermalizationModel< MODEL >::Initialise(), G4SafetyHelper::InitialiseNavigator(), G4ITTransportationManager::Initialize(), G4BOptnForceCommonTruncatedExp::Initialize(), G4ErrorRunManagerHelper::InitializeGeometry(), G4WorkerRunManager::InitializeGeometry(), G4SPSPosDistribution::IsSourceConfined(), G4FastSimulationManager::ListTitle(), G4FastSimHitMaker::make(), GFlashHitMaker::make(), G4UCNBoundaryProcess::PostStepDoIt(), G4MicroElecSurface::PostStepDoIt(), G4OpBoundaryProcess::PostStepDoIt(), G4VTransitionRadiation::PostStepDoIt(), G4ErrorMagFieldLimitProcess::PostStepGetPhysicalInteractionLength(), G4VMultipleScattering::PreparePhysicsTable(), G4ErrorFreeTrajState::PropagateError(), G4RunManager::ReinitializeGeometry(), G4GlobalMagFieldMessenger::SetField(), ExN03DetectorConstruction::SetMagField(), G4VisCommandSceneAddLocalAxes::SetNewValue(), G4VisCommandSceneAddVolume::SetNewValue(), G4VisCommandSetTouchable::SetNewValue(), G4VisCommandSetVolumeForField::SetNewValue(), G4VisCommandsTouchable::SetNewValue(), G4VisCommandViewerCentreOn::SetNewValue(), G4TrackingMessenger::SetNewValue(), G4IStore::SetParallelWorldVolume(), G4WeightWindowStore::SetParallelWorldVolume(), G4RTPrimaryGeneratorAction::SetUp(), G4IStore::SetWorldVolume(), G4WeightWindowStore::SetWorldVolume(), G4GlobalFastSimulationManager::ShowSetup(), G4ErrorPropagatorManager::StartNavigator(), G4FastSimulationManagerProcess::StartTracking(), G4CoupledTransportation::StartTracking(), G4RunManagerKernel::WorkerDefineWorldVolume(), and G4RunManagerKernel::WorkerUpdateWorldVolume().

◆ GetWorldsIterator()

std::vector< G4VPhysicalVolume * >::iterator G4TransportationManager::GetWorldsIterator ( )
inline

◆ InactivateAll()

void G4TransportationManager::InactivateAll ( )

Definition at line 376 of file G4TransportationManager.cc.

377{
378 for (auto pNav=fActiveNavigators.cbegin();
379 pNav!=fActiveNavigators.cend(); ++pNav)
380 {
381 (*pNav)->Activate(false);
382 }
383 fActiveNavigators.clear();
384
385 // Restore status for the navigator for tracking
386 //
387 fNavigators[0]->Activate(true);
388 fActiveNavigators.push_back(fNavigators[0]);
389}

References fActiveNavigators, and fNavigators.

Referenced by G4CoupledTransportation::EndTracking().

◆ IsWorldExisting()

G4VPhysicalVolume * G4TransportationManager::IsWorldExisting ( const G4String worldName)

Definition at line 398 of file G4TransportationManager.cc.

399{
400 auto pWorld = fWorlds.begin();
401 if ( *pWorld==nullptr ) { *pWorld=fNavigators[0]->GetWorldVolume(); }
402
403 for (auto cpWorld=fWorlds.cbegin(); cpWorld!=fWorlds.cend(); ++cpWorld)
404 {
405 if ((*cpWorld)->GetName() == name ) { return *cpWorld; }
406 }
407 return 0;
408}
const char * name(G4int ptype)

References fNavigators, fWorlds, and G4InuclParticleNames::name().

Referenced by G4ParallelGeometriesLimiterProcess::AddParallelWorld(), G4RunManager::ConstructScoringWorlds(), G4WorkerRunManager::ConstructScoringWorlds(), GetNavigator(), GetParallelWorld(), G4ParallelGeometriesLimiterProcess::GetParallelWorldIndex(), G4ParallelGeometriesLimiterProcess::RemoveParallelWorld(), G4FastSimulationManagerProcess::SetWorldVolume(), and G4RunManagerKernel::WorkerUpdateWorldVolume().

◆ RegisterWorld()

G4bool G4TransportationManager::RegisterWorld ( G4VPhysicalVolume aWorld)

Definition at line 417 of file G4TransportationManager.cc.

418{
419 G4bool done = false;
420
421 auto pWorld = std::find(fWorlds.cbegin(), fWorlds.cend(), aWorld);
422 if (pWorld == fWorlds.cend())
423 {
424 fWorlds.push_back(aWorld);
425 done = true;
426 }
427 return done;
428}
bool G4bool
Definition: G4Types.hh:86

References fWorlds.

Referenced by GetParallelWorld(), G4RunManagerKernel::WorkerDefineWorldVolume(), and G4RunManagerKernel::WorkerUpdateWorldVolume().

◆ SetFieldManager()

void G4TransportationManager::SetFieldManager ( G4FieldManager newFieldManager)

Definition at line 128 of file G4TransportationManager.cc.

129{
130 fFieldManager = newFieldManager;
131
132 // Message the PropagatorInField,
133 // which also maintains this information (to be reviewed)
134 //
136 {
137 fPropagatorInField -> SetDetectorFieldManager( newFieldManager );
138 }
139}

References fFieldManager, and fPropagatorInField.

Referenced by export_G4TransportationManager().

◆ SetFirstTrackingNavigator()

void G4TransportationManager::SetFirstTrackingNavigator ( G4Navigator nav)
static

Definition at line 493 of file G4TransportationManager.cc.

494{
496}

References fFirstTrackingNavigator.

◆ SetNavigatorForTracking()

void G4TransportationManager::SetNavigatorForTracking ( G4Navigator newNavigator)

Definition at line 147 of file G4TransportationManager.cc.

148{
149 fNavigators[0] = newNavigator;
150 fActiveNavigators[0] = newNavigator;
152}
void SetNavigatorForPropagating(G4Navigator *SimpleOrMultiNavigator)

References fActiveNavigators, fNavigators, fPropagatorInField, and G4PropagatorInField::SetNavigatorForPropagating().

Referenced by export_G4TransportationManager(), and G4ErrorPropagatorManager::StartNavigator().

◆ SetPropagatorInField()

void G4TransportationManager::SetPropagatorInField ( G4PropagatorInField newFieldPropagator)
inline

◆ SetWorldForTracking()

void G4TransportationManager::SetWorldForTracking ( G4VPhysicalVolume theWorld)
inline

Field Documentation

◆ fActiveNavigators

std::vector<G4Navigator*> G4TransportationManager::fActiveNavigators
private

◆ fFieldManager

G4FieldManager* G4TransportationManager::fFieldManager
private

Definition at line 149 of file G4TransportationManager.hh.

Referenced by G4TransportationManager(), and SetFieldManager().

◆ fFirstTrackingNavigator

G4Navigator * G4TransportationManager::fFirstTrackingNavigator = nullptr
staticprivate

◆ fGeomMessenger

G4GeometryMessenger* G4TransportationManager::fGeomMessenger
private

◆ fNavigators

std::vector<G4Navigator*> G4TransportationManager::fNavigators
private

◆ fPropagatorInField

G4PropagatorInField* G4TransportationManager::fPropagatorInField
private

◆ fSafetyHelper

G4SafetyHelper* G4TransportationManager::fSafetyHelper
private

◆ fTransportationManager

G4ThreadLocal G4TransportationManager * G4TransportationManager::fTransportationManager = nullptr
staticprivate

◆ fWorlds

std::vector<G4VPhysicalVolume*> G4TransportationManager::fWorlds
private

The documentation for this class was generated from the following files: