BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Protected Member Functions | Private Member Functions | Private Attributes
BDSBeamPipeFactoryClicPCL Class Reference

Factory for CLIC post collision line beam pipes. More...

#include <BDSBeamPipeFactoryClicPCL.hh>

Inheritance diagram for BDSBeamPipeFactoryClicPCL:
Inheritance graph
Collaboration diagram for BDSBeamPipeFactoryClicPCL:
Collaboration graph

Protected Member Functions

virtual void CleanUp ()
 Clear member vectors and run base class clean up to clear pointers between runs. More...
 
- Protected Member Functions inherited from BDSBeamPipeFactoryPoints
virtual void GeneratePoints (G4double aper1, G4double aper2, G4double aper3, G4double aper4, G4double beamPipeThickness, G4int pointsPerTwoPi=40)=0
 
virtual G4double CalculateIntersectionRadius (G4double aper1, G4double aper2, G4double aper3, G4double aper4, G4double beamPipeThickness)=0
 
virtual void CleanUp ()
 Clear member vectors and run base class clean up to clear pointers between runs. More...
 
void AppendPoint (std::vector< G4TwoVector > &vec, G4double x, G4double y)
 
void AppendAngle (std::vector< G4TwoVector > &vec, G4double startAngle, G4double finishAngle, G4double radius, G4int nPoints=10, G4double xOffset=0, G4double yOffset=0)
 
void AppendAngleEllipse (std::vector< G4TwoVector > &vec, G4double startAngle, G4double finishAngle, G4double radiusA, G4double radiusB, G4int nPoints=10, G4double xOffset=0, G4double yOffset=0)
 Generate 2-vector points (and append them) about an ellipse. More...
 
- Protected Member Functions inherited from BDSBeamPipeFactoryBase
 BDSBeamPipeFactoryBase ()
 base constructor More...
 
void CleanUpBase ()
 
virtual void CleanUp ()
 
void CommonConstruction (const G4String &nameIn, G4Material *vacuumMaterialIn, G4Material *beamPipeMaterialIn, G4double length)
 finalise beampipe construction More...
 
BDSBeamPipeBuildBeamPipeAndRegisterVolumes (BDSExtent extent, G4double containerRadius, G4bool containerIsCircular=false)
 build beampipe and register logical volumes More...
 
virtual void BuildLogicalVolumes (const G4String &nameIn, G4Material *vacuumMaterialIn, G4Material *beamPipeMaterialIn)
 build logical volumes More...
 
virtual void SetVisAttributes (G4Material *beamPipeMaterialIn)
 Set visual attributes. More...
 
virtual void SetUserLimits (G4double length)
 Set user limits. More...
 
virtual void PlaceComponents (const G4String &nameIn)
 Place volumes. More...
 

Private Member Functions

virtual void GeneratePoints (G4double aper1, G4double aper2, G4double aper3, G4double aper4, G4double beamPipeThickness, G4int pointsPerTwoPi=40)
 
virtual G4double CalculateIntersectionRadius (G4double aper1, G4double aper2, G4double aper3, G4double aper4, G4double beamPipeThickness)
 Calculate the radius of the solid used for intersection for angled faces. More...
 
void GenerateClicPCL (std::vector< G4TwoVector > &vec, G4double aper1, G4double aper2, G4double aper3, G4double aper4, G4int pointsPerTowPi, G4double margin=0)
 
void CleanUpClicPCL ()
 Clear member vectors - used for both initialisation and virtual CleanUp. More...
 
virtual BDSBeamPipeCommonFinalConstruction (const G4String &nameIn, G4Material *vacuumMaterialIn, G4Material *beamPipeMaterialIn, G4double lengthIn)
 Overloads BDSBeamPipeFactoryPoints to make asymmetric extents, otherwise the same. More...
 

Private Attributes

G4double extentYLow
 Cache of extent to pass around. More...
 
G4double extentYHigh
 Cache of extent to pass around. More...
 

Additional Inherited Members

- Public Member Functions inherited from BDSBeamPipeFactoryPoints
virtual BDSBeamPipeCreateBeamPipe (const G4String &nameIn, G4double lengthIn, G4double aper1In, G4double aper2In, G4double aper3In, G4double aper4In, G4Material *vacuumMaterialIn, G4double beamPipeThicknessIn, G4Material *beamPipeMaterialIn, const G4String &pointsFileIn="", const G4String &pointsUnitIn="")
 Required overloaded method from BDSBeamPipeFactoryBase to build straight piece of beam pipe. More...
 
virtual BDSBeamPipeCreateBeamPipe (const G4String &nameIn, G4double lengthIn, const G4ThreeVector &inputFaceNormalIn, const G4ThreeVector &outputFaceNormalIn, G4double aper1In, G4double aper2In, G4double aper3In, G4double aper4In, G4Material *vacuumMaterialIn, G4double beamPipeThicknessIn, G4Material *beamPipeMaterialIn, const G4String &pointsFileIn="", const G4String &pointsUnitIn="")
 Required overloaded method from BDSBeamPipeFactoryBase to build angled piece of beam pipe. More...
 
- Public Member Functions inherited from BDSBeamPipeFactoryBase
virtual BDSBeamPipeCreateBeamPipe (const G4String &nameIn, G4double lengthIn, G4double aper1=0, G4double aper2=0, G4double aper3=0, G4double aper4=0, G4Material *vacuumMaterialIn=nullptr, G4double beamPipeThicknessIn=0, G4Material *beamPipeMaterialIn=nullptr, const G4String &pointsFileIn="", const G4String &pointsUnitIn="")=0
 create a flat ended beampipe More...
 
virtual BDSBeamPipeCreateBeamPipe (const G4String &nameIn, G4double lengthIn, const G4ThreeVector &inputFaceNormalIn, const G4ThreeVector &outputFaceNormalIn, G4double aper1=0, G4double aper2=0, G4double aper3=0, G4double aper4=0, G4Material *vacuumMaterialIn=nullptr, G4double beamPipeThicknessIn=0, G4Material *beamPipeMaterialIn=nullptr, const G4String &pointsFileIn="", const G4String &pointsUnitIn="")=0
 
virtual ~BDSBeamPipeFactoryBase ()
 Virtual base destructor. More...
 
- Public Member Functions inherited from BDSFactoryBase
virtual void FactoryBaseCleanUp ()
 Empty containers for next use - factories are never deleted so can't rely on scope. More...
 
- Static Protected Member Functions inherited from BDSBeamPipeFactoryBase
static void CheckAngledVolumeCanBeBuilt (G4double length, const G4ThreeVector &inputfaceAngle, const G4ThreeVector &outputfaceAngle, G4double horizontalWidth, const G4String &name)
 check if a beam pipe volume with angled faces can be constructed More...
 
- Protected Attributes inherited from BDSBeamPipeFactoryPoints
std::vector< G4TwoVector > vacuumEdge
 Vector of x,y coordinates for vacuum extruded solid edge. More...
 
std::vector< G4TwoVector > beamPipeInnerEdge
 Vector of x,y coordinates for beam pipe inner edge. More...
 
std::vector< G4TwoVector > beamPipeOuterEdge
 Vector of x,y coordinates for beam pipe outer edge. More...
 
std::vector< G4TwoVector > containerEdge
 Vector of x,y coordinates for the container volume. More...
 
std::vector< G4TwoVector > containerSubtractionEdge
 Vector of x,y coordinates for the container subtraction volume. More...
 
G4double extentX
 Extents prepared by GeneratePoints function as only it knows the extents. More...
 
G4double extentY
 Extents prepared by GeneratePoints function as only it knows the extents. More...
 
G4String pointsFile
 Temporary copy of input variables. More...
 
G4String pointsUnit
 Temporary copy of input variables. More...
 
- Protected Attributes inherited from BDSBeamPipeFactoryBase
G4bool sensitiveBeamPipe
 Whether the beam pipe will record energy deposition. More...
 
G4bool sensitiveVacuum
 Whether the vacuum will record any energy deposition. More...
 
G4bool storeApertureImpacts
 Whether to store aperture impacts. More...
 
G4VSolid * vacuumSolid
 
G4VSolid * beamPipeSolid
 
G4VSolid * containerSolid
 
G4VSolid * containerSubtractionSolid
 Longer (in length) version of container solid for unambiguous subtraction. More...
 
G4LogicalVolume * vacuumLV
 
G4LogicalVolume * beamPipeLV
 
G4LogicalVolume * containerLV
 
G4PVPlacement * vacuumPV
 
G4PVPlacement * beamPipePV
 
G4ThreeVector inputFaceNormal
 For recording the face normals in the finished pipe component. More...
 
G4ThreeVector outputFaceNormal
 For recording the face normals in the finished pipe component. More...
 
- Protected Attributes inherited from BDSFactoryBase
std::set< G4LogicalVolume * > allLogicalVolumes
 
std::set< G4VPhysicalVolume * > allPhysicalVolumes
 
std::set< G4RotationMatrix * > allRotationMatrices
 
std::set< G4UserLimits * > allUserLimits
 
std::set< G4VSolid * > allSolids
 
std::set< G4VisAttributes * > allVisAttributes
 
G4double lengthSafety
 Cache of global constants variable. More...
 
G4double lengthSafetyLarge
 Cache of global constants variable. More...
 
G4bool checkOverlaps
 Cache of global constants variable. More...
 
G4bool visDebug
 Cache of global constants variable. More...
 
G4double nSegmentsPerCircle
 Cache of global constants variable. More...
 
G4VisAttributes * containerVisAttr
 Cache of global constants variable. More...
 
G4UserLimits * defaultUserLimits
 Cache of global constants variable. More...
 

Detailed Description

Factory for CLIC post collision line beam pipes.

Author
Laurie Nevay

Definition at line 31 of file BDSBeamPipeFactoryClicPCL.hh.

Constructor & Destructor Documentation

◆ BDSBeamPipeFactoryClicPCL()

BDSBeamPipeFactoryClicPCL::BDSBeamPipeFactoryClicPCL ( )

Definition at line 35 of file BDSBeamPipeFactoryClicPCL.cc.

◆ ~BDSBeamPipeFactoryClicPCL()

virtual BDSBeamPipeFactoryClicPCL::~BDSBeamPipeFactoryClicPCL ( )
inlinevirtual

Definition at line 35 of file BDSBeamPipeFactoryClicPCL.hh.

Member Function Documentation

◆ CalculateIntersectionRadius()

G4double BDSBeamPipeFactoryClicPCL::CalculateIntersectionRadius ( G4double  aper1,
G4double  aper2,
G4double  aper3,
G4double  aper4,
G4double  beamPipeThickness 
)
privatevirtual

Calculate the radius of the solid used for intersection for angled faces.

Implements BDSBeamPipeFactoryPoints.

Definition at line 82 of file BDSBeamPipeFactoryClicPCL.cc.

◆ CleanUp()

void BDSBeamPipeFactoryClicPCL::CleanUp ( )
protectedvirtual

Clear member vectors and run base class clean up to clear pointers between runs.

Reimplemented from BDSBeamPipeFactoryPoints.

Definition at line 103 of file BDSBeamPipeFactoryClicPCL.cc.

References BDSBeamPipeFactoryPoints::CleanUp(), and CleanUpClicPCL().

Here is the call graph for this function:

◆ CleanUpClicPCL()

void BDSBeamPipeFactoryClicPCL::CleanUpClicPCL ( )
private

Clear member vectors - used for both initialisation and virtual CleanUp.

Definition at line 97 of file BDSBeamPipeFactoryClicPCL.cc.

References extentYHigh, and extentYLow.

Referenced by CleanUp().

Here is the caller graph for this function:

◆ CommonFinalConstruction()

BDSBeamPipe * BDSBeamPipeFactoryClicPCL::CommonFinalConstruction ( const G4String &  nameIn,
G4Material *  vacuumMaterialIn,
G4Material *  beamPipeMaterialIn,
G4double  lengthIn 
)
privatevirtual

Overloads BDSBeamPipeFactoryPoints to make asymmetric extents, otherwise the same.

Reimplemented from BDSBeamPipeFactoryPoints.

Definition at line 109 of file BDSBeamPipeFactoryClicPCL.cc.

References BDSBeamPipeFactoryBase::BuildBeamPipeAndRegisterVolumes(), BDSBeamPipeFactoryBase::CommonConstruction(), BDSBeamPipeFactoryPoints::extentX, extentYHigh, extentYLow, and BDSExtent::MaximumAbsTransverse().

Here is the call graph for this function:

◆ GenerateClicPCL()

void BDSBeamPipeFactoryClicPCL::GenerateClicPCL ( std::vector< G4TwoVector > &  vec,
G4double  aper1,
G4double  aper2,
G4double  aper3,
G4double  aper4,
G4int  pointsPerTowPi,
G4double  margin = 0 
)
private

Definition at line 40 of file BDSBeamPipeFactoryClicPCL.cc.

◆ GeneratePoints()

void BDSBeamPipeFactoryClicPCL::GeneratePoints ( G4double  aper1,
G4double  aper2,
G4double  aper3,
G4double  aper4,
G4double  beamPipeThickness,
G4int  pointsPerTwoPi = 40 
)
privatevirtual

Field Documentation

◆ extentYHigh

G4double BDSBeamPipeFactoryClicPCL::extentYHigh
private

Cache of extent to pass around.

Definition at line 77 of file BDSBeamPipeFactoryClicPCL.hh.

Referenced by CleanUpClicPCL(), CommonFinalConstruction(), and GeneratePoints().

◆ extentYLow

G4double BDSBeamPipeFactoryClicPCL::extentYLow
private

Cache of extent to pass around.

Definition at line 76 of file BDSBeamPipeFactoryClicPCL.hh.

Referenced by CleanUpClicPCL(), CommonFinalConstruction(), and GeneratePoints().


The documentation for this class was generated from the following files: