19#ifndef BDSPARALLELWORLDSAMPER_H
20#define BDSPARALLELWORLDSAMPER_H
22#include "BDSBeamPipeType.hh"
23#include "BDSSamplerType.hh"
27#include "G4VUserParallelWorld.hh"
33class G4VPhysicalVolume;
39 class SamplerPlacement;
61 G4LogicalVolume*
WorldLV()
const {
return samplerWorldLV;}
66 G4double samplerRadius);
71 const G4String& variableName,
72 const G4String& objectName)
const;
77 G4double& radius)
const;
90 std::map<int, BDSSamplerPlane*> samplerInstances;
91 G4LogicalVolume* samplerWorldLV;
A class that holds a fully constructed BDSAcceleratorComponent as well as any information relevant to...
A parallel world for sampler planes.
BDSParallelWorldSampler()=delete
No default constructor.
G4LogicalVolume * WorldLV() const
Accessor.
BDSSamplerPlane * generalPlane
General single sampler we use for plane samplers.
void AdjustTransform(G4Transform3D &trans, BDSSamplerType st) const
void ErrorNonPositive(G4double value, const G4String &variableName, const G4String &objectName) const
Utility function to reduce code.
void Place(const BDSBeamlineElement *element, G4double samplerRadius)
Place a sampler from a single element.
std::vector< G4VPhysicalVolume * > placements
Cache of the placements to clean up at the end.
BDSSamplerPlane * GeneralPlane() const
Accessor.
G4String suffix
Just the input part of the world name.
BDSSampler * BuildSampler(const GMAD::SamplerPlacement &samplerPlacement, BDSSamplerType st, G4double &radius) const
Construct the geometry for a sampler. Update 'radius' by reference if applicable.
G4VisAttributes * samplerWorldVis
Visualisation attributes for the sampler world.
Rectangular sampler with fixed thickness but variable x,y.
Base class and registry of sampler instances.
Sampler placement class for parser.
Parser namespace for GMAD language. Combination of Geant4 and MAD.