19#include "BDSMultilayerScreen.hh"
20#include "BDSScreen.hh"
21#include "BDSScreenLayer.hh"
22#include "BDSSDType.hh"
26#include "G4RotationMatrix.hh"
27#include "G4VisAttributes.hh"
32BDSScreen::BDSScreen(G4String nameIn,
33 G4double chordLengthIn,
36 G4double screenAngleIn):
37 BDSDrift(nameIn, chordLengthIn, beamPipeInfoIn),
39 screenAngle(screenAngleIn),
40 screenPos(G4ThreeVector()),
45 screenRot =
new G4RotationMatrix();
46 screenRot->rotateY(screenAngle);
49BDSScreen::~BDSScreen()
60 G4VisAttributes* VisAtt1 =
new G4VisAttributes(G4Colour(0.4, 0.4, 0.4, 0.3));
61 VisAtt1->SetForceWireframe(
true);
62 VisAtt1->SetVisibility(
true);
63 containerLogicalVolume->SetVisAttributes(VisAtt1);
72 G4String lNum = ss.str();
73 G4String lName =
name+
"_"+lNum;
80void BDSScreen::PlaceScreen()
84 mlScreen->
Place(screenRot, screenPos, vacuumLV);
const G4String name
Const protected member variable that may not be changed by derived classes.
static G4bool sensitiveOuter
Useful variable often used in construction.
virtual std::set< G4LogicalVolume * > GetAcceleratorVacuumLogicalVolumes() const
Access the 'vacuum' volume(s) in this component if any. Default is empty set.
Holder class for all information required to describe a beam pipe model.
A piece of vacuum beam pipe.
virtual void Build()
Construct geometry.
void RegisterSensitiveVolume(G4LogicalVolume *sensitiveVolume, BDSSDType sensitivityType)
An accelerator component for diagnostics screens e.g. OTR. Screen inside beam pipe.
void AddScreenLayer(G4double thickness, G4String material, G4String name, G4int isSampler=0, G4double grooveWidth=0, G4double grooveSpatialFrequency=0)
Construct and add a screen layer.
virtual void Place(G4RotationMatrix *rot, const G4ThreeVector &pos, G4LogicalVolume *motherVol)
Place the member logical volume 'log' with a given transform in a given mother volume.
void Build()
Construct container, compute dimensions then place layers.
BDSScreenLayer * LastLayer() const
Get the last layer of the screen.
G4LogicalVolume * GetLog() const
Accessor.
virtual void Build()
Construct geometry.
void AddScreenLayer(G4double thickness, G4String material, G4int isSampler=0)
Add a screen layer.