18#include "BDSAcceleratorModel.hh"
19#include "BDSDetectorConstruction.hh"
20#include "BDSException.hh"
21#include "BDSGlobalConstants.hh"
22#include "BDSNavigatorPlacements.hh"
23#include "BDSParallelWorldPlacementFields.hh"
25#include "G4LogicalVolume.hh"
26#include "G4PVPlacement.hh"
29#include "G4VisAttributes.hh"
30#include "G4VPhysicalVolume.hh"
35BDSParallelWorldPlacementFields::BDSParallelWorldPlacementFields(
const G4String& name):
36 G4VUserParallelWorld(
"PlacementFieldsWorld_" + name),
40BDSParallelWorldPlacementFields::~BDSParallelWorldPlacementFields()
53 G4VPhysicalVolume* pfWorld = GetWorld();
54 G4LogicalVolume* pfWorldLV = pfWorld->GetLogicalVolume();
59 pfWorldVis =
new G4VisAttributes(*(globals->VisibleDebugVisAttr()));
60 pfWorldVis->SetForceWireframe(
true);
61 pfWorldLV->SetVisAttributes(pfWorldVis);
63 G4bool checkOverlaps = globals->CheckOverlaps();
65 for (
const auto& placement : placementsToMake)
68 G4PVPlacement* pl =
new G4PVPlacement(placement.transform,
const std::vector< BDSPlacementToMake > & PlacementFieldPWPlacements() const
Access field volumes for parallel world.
A class that holds global options and constants.
static BDSGlobalConstants * Instance()
Access method.
static void AttachWorldVolumeToNavigator(G4VPhysicalVolume *worldPVIn)
Setup the navigator w.r.t. to a world volume - typically real world.
std::vector< G4VPhysicalVolume * > placements
Cache of the placements to clean up at the end.