BDSBeamPipeFactoryRectEllipse Class Reference

Factory for rectellipse aperture model beampipes. More...

#include <BDSBeamPipeFactoryRectEllipse.hh>

Inheritance diagram for BDSBeamPipeFactoryRectEllipse:

Inheritance graph
[legend]
Collaboration diagram for BDSBeamPipeFactoryRectEllipse:

Collaboration graph
[legend]

Public Member Functions

virtual ~BDSBeamPipeFactoryRectEllipse ()
virtual BDSBeamPipeCreateBeamPipe (G4String nameIn, G4double lengthIn, G4double aper1=0, G4double aper2=0, G4double aper3=0, G4double aper4=0, G4Material *vacuumMaterialIn=NULL, G4double beamPipeThicknessIn=0, G4Material *beamPipeMaterialIn=NULL)
 create a flat ended beampipe
virtual BDSBeamPipeCreateBeamPipeAngledInOut (G4String nameIn, G4double lengthIn, G4double angleInIn, G4double angleOutIn, G4double aper1=0, G4double aper2=0, G4double aper3=0, G4double aper4=0, G4Material *vacuumMaterialIn=NULL, G4double beamPipeThicknessIn=0, G4Material *beamPipeMaterialIn=NULL)
 create beampipe with an angled face on both input adn output sides

Static Public Member Functions

static BDSBeamPipeFactoryRectEllipseInstance ()
 singleton accessor

Private Member Functions

 BDSBeamPipeFactoryRectEllipse ()
 private default constructor - singleton pattern
void TestInputParameters (G4Material *&vacuumMaterialIn, G4double &beamPipeThicknessIn, G4Material *&beamPipeMaterialIn, G4double &aper1In, G4double &aper2In, G4double &aper3In, G4double &aper4In)
 test input parameters - if not set use global defaults for this simulation
BDSBeamPipeCommonFinalConstruction (G4String nameIn, G4Material *vacuumMaterialIn, G4Material *beamPipeMaterialIn, G4double lengthIn, G4double widthIn, G4double heightIn)
void CreateGeneralAngledSolids (G4String nameIn, G4double lengthIn, G4double aper1In, G4double aper2In, G4double aper3In, G4double aper4In, G4double beamPipeThicknessIn, G4ThreeVector inputfaceIn, G4ThreeVector outputfaceIn)
void CreateContainerSubtractionSolid (G4String &nameIn, G4double &lengthIn, G4double &beamPipeThicknessIn, G4double &aper1In, G4double &aper2In, G4double &aper3In, G4double &aper4In)

Static Private Attributes

static BDSBeamPipeFactoryRectEllipse_instance = 0

Detailed Description

Factory for rectellipse aperture model beampipes.

This is the overlap of (boolean AND) a rectangle and an ellipse transversely. This factory is similar to the simple LHC factory and uses the intersection of an elliptical tube and a box. This method produces a solid shape, so to achieve a pipe, a smaller duplicate intersection solid is made for subtraction from the outer one. To achieve the angled faces, G4CutTubs is used and the rectangular box is made longer so the first intersection gives the angled face from the easier G4CutTubs primitive.

This factory requires four aperture parameters. Aper1,2 are the horizontal and vertical half widths of the rectangle respectively, and aper3,4 are the horizontal and vertical semi-axes of the ellipse. Note, will aper1,2 should be < aper1,2 otherwise an elliptical tube will be more efficient.

Singleton pattern

Author:
Laurie Nevay <laurie.nevay@rhul.ac.uk>

Definition at line 29 of file BDSBeamPipeFactoryRectEllipse.hh.


Member Function Documentation

BDSBeamPipe * BDSBeamPipeFactoryRectEllipse::CommonFinalConstruction ( G4String  nameIn,
G4Material *  vacuumMaterialIn,
G4Material *  beamPipeMaterialIn,
G4double  lengthIn,
G4double  containerWidthIn,
G4double  containerHeightIn 
) [private]

only the solids are unique, once we have those, the logical volumes and placement in the container are the same. group all this functionality together

Definition at line 199 of file BDSBeamPipeFactoryRectEllipse.cc.

References BDSBeamPipeFactoryBase::BuildBeamPipeAndRegisterVolumes(), and BDSBeamPipeFactoryBase::CommonConstruction().

Referenced by CreateBeamPipe(), and CreateBeamPipeAngledInOut().

Here is the call graph for this function:

Here is the caller graph for this function:

void BDSBeamPipeFactoryRectEllipse::CreateGeneralAngledSolids ( G4String  nameIn,
G4double  lengthIn,
G4double  aper1In,
G4double  aper2In,
G4double  aper3In,
G4double  aper4In,
G4double  beamPipeThicknessIn,
G4ThreeVector  inputfaceIn,
G4ThreeVector  outputfaceIn 
) [private]

the angled ones have degeneracy in the geant4 solids they used so we can avoid code duplication by grouping common construction tasks

Definition at line 226 of file BDSBeamPipeFactoryRectEllipse.cc.

References BDSBeamPipeFactoryBase::beamPipeSolid, BDSBeamPipeFactoryBase::containerSolid, BDSBeamPipeFactoryBase::lengthSafety, and BDSBeamPipeFactoryBase::vacuumSolid.

Referenced by CreateBeamPipeAngledInOut().

Here is the caller graph for this function:


The documentation for this class was generated from the following files:
Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7