19#include "BDSGlobalConstants.hh"
20#include "BDSMaterials.hh"
21#include "BDSScreenFrameRectangular.hh"
25#include "G4LogicalVolume.hh"
26#include "G4PVPlacement.hh"
27#include "G4SubtractionSolid.hh"
28#include "G4RotationMatrix.hh"
29#include "G4ThreeVector.hh"
30#include "G4TwoVector.hh"
35 G4TwoVector windowSizeIn,
36 G4TwoVector windowOffsetIn,
37 G4Material* materialIn):
38 BDSScreenFrame(nameIn, sizeIn, windowSizeIn, windowOffsetIn, materialIn),
39 zeroRot(new G4RotationMatrix(0,0,0))
44BDSScreenFrameRectangular::~BDSScreenFrameRectangular()
54 G4Box* frameBox =
new G4Box(
"frameBox",
60 G4Box* windowBox =
new G4Box(
"windowBox",
61 windowSize.x()/2.0 + lenSaf,
62 windowSize.y()/2.0 + lenSaf,
63 size.z()/2.0 + lenSaf);
65 cavityPos = G4ThreeVector(windowOffset.x(), windowOffset.y(), 0);
66 G4SubtractionSolid* frameSS =
new G4SubtractionSolid((G4String)
"frameSS", frameBox, windowBox, zeroRot, cavityPos);
67 logVol =
new G4LogicalVolume(frameSS, material, name+
"_lv");
73 G4LogicalVolume* motherVol)
75 new G4PVPlacement(rot,
static BDSGlobalConstants * Instance()
Access method.
virtual void SetVisAtts()
Set the visual attributes to member logVol.
void Place(G4RotationMatrix *rot, G4ThreeVector pos, G4LogicalVolume *motherVol)
Place member logVol (from base class) into argument motherVol.
virtual void Build()
Construct the geometry.
BDSScreenFrameRectangular()=delete
Remove default constructor to force use of supplied one.
A frame for the vacuum window in e.g. BDSMultilayerScreen.
G4bool checkOverlaps
Cache of checking overlaps from global constants.
virtual void SetVisAtts()
Set the visual attributes to member logVol.