73 std::vector<G4ITNavigator*>::iterator pNav;
87 G4ITNavigator* trackingNavigator =
new G4ITNavigator();
88 trackingNavigator->Activate(
true);
93 trackingNavigator->SetWorldVolume(world);
100 std::vector<G4VPhysicalVolume*>::iterator it =
103 for (
size_t i = 0; i < n_worlds; i++, it++)
132 worldName, 0,
false, 0);
149 std::vector<G4ITNavigator*>::iterator pNav;
152 if ((*pNav)->GetWorldVolume()->GetName() == worldName)
161 G4ITNavigator* aNavigator = 0;
165 aNavigator =
new G4ITNavigator();
166 aNavigator->SetWorldVolume(aWorld);
171 G4String message =
"World volume with name -"
173 +
"- does not exist. Create it first by GetParallelWorld() method!";
174 G4Exception(
"G4ITTransportationManager::GetNavigator(name)",
"GeomNav0002",
190 std::vector<G4ITNavigator*>::iterator pNav;
193 if ((*pNav)->GetWorldVolume() == aWorld)
198 G4ITNavigator* aNavigator = 0;
199 std::vector<G4VPhysicalVolume*>::iterator pWorld = std::find(
fWorlds.begin(),
204 aNavigator =
new G4ITNavigator();
205 aNavigator->SetWorldVolume(aWorld);
210 G4String message =
"World volume with name -"
212 +
"- does not exist. Create it first by GetParallelWorld() method!";
213 G4Exception(
"G4ITTransportationManager::GetNavigator(pointer)",
232 G4Exception(
"G4ITTransportationManager::DeRegisterNavigator()",
234 "The navigator for tracking CANNOT be deregistered!");
236 std::vector<G4ITNavigator*>::iterator pNav = std::find(
fNavigators.begin(),
251 G4String message =
"Navigator for volume -"
252 + aNavigator->GetWorldVolume()->GetName() +
"- not found in memory!";
253 G4Exception(
"G4ITTransportationManager::DeRegisterNavigator()",
269 std::vector<G4ITNavigator*>::iterator pNav = std::find(
fNavigators.begin(),
274 G4String message =
"Navigator for volume -"
275 + aNavigator->GetWorldVolume()->GetName() +
"- not found in memory!";
276 G4Exception(
"G4ITTransportationManager::ActivateNavigator()",
"GeomNav1002",
281 aNavigator->Activate(
true);
283 std::vector<G4ITNavigator*>::iterator pActiveNav;
287 if (*pActiveNav == aNavigator)
307 std::vector<G4ITNavigator*>::iterator pNav = std::find(
fNavigators.begin(),
312 (*pNav)->Activate(
false);
316 G4String message =
"Navigator for volume -"
317 + aNavigator->GetWorldVolume()->GetName() +
"- not found in memory!";
318 G4Exception(
"G4ITTransportationManager::DeActivateNavigator()",
322 std::vector<G4ITNavigator*>::iterator pActiveNav = std::find(
338 std::vector<G4ITNavigator*>::iterator pNav;
342 (*pNav)->Activate(
false);
361 std::vector<G4VPhysicalVolume*>::iterator pWorld =
fWorlds.begin();
369 if ((*pWorld)->GetName() ==
name)
388 std::vector<G4VPhysicalVolume*>::iterator pWorld = std::find(
fWorlds.begin(),
408 std::vector<G4VPhysicalVolume*>::iterator pWorld = std::find(
fWorlds.begin(),
418 +
"- not found in memory!";
419 G4Exception(
"G4ITTransportationManager::DeRegisterWorld()",
"GeomNav1002",
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
static G4ThreadLocal G4ITTransportationManager * fpInstance
{Duplicated version of G4TransportationManager. This class just contains the pointer to the navigator...
G4VPhysicalVolume * IsWorldExisting(const G4String &worldName)
std::vector< G4ITNavigator * > fNavigators
std::vector< G4VPhysicalVolume * > fWorlds
G4ITSafetyHelper * fpSafetyHelper
static void DeleteInstance()
void DeRegisterWorld(G4VPhysicalVolume *aWorld)
G4ITNavigator * GetNavigator(const G4String &worldName)
static G4ITTransportationManager * GetTransportationManager()
G4ITNavigator * GetNavigatorForTracking() const
std::vector< G4ITNavigator * > fActiveNavigators
~G4ITTransportationManager()
G4ITTransportationManager()
G4int ActivateNavigator(G4ITNavigator *aNavigator)
G4VPhysicalVolume * GetParallelWorld(const G4String &worldName)
void DeActivateNavigator(G4ITNavigator *aNavigator)
void DeRegisterNavigator(G4ITNavigator *aNavigator)
G4bool RegisterWorld(G4VPhysicalVolume *aWorld)
G4VSolid * GetSolid() const
G4VPhysicalVolume * GetWorldVolume() const
static G4TransportationManager * GetTransportationManager()
std::vector< G4VPhysicalVolume * >::iterator GetWorldsIterator()
G4Navigator * GetNavigatorForTracking() const
size_t GetNoWorlds() const
const G4RotationMatrix * GetRotation() const
const G4ThreeVector GetTranslation() const
G4LogicalVolume * GetLogicalVolume() const
const G4String & GetName() const
const char * name(G4int ptype)