BDSBeamPipeFactoryLHCDetailed Class Reference

Factory for detailed lhc aperture model beam pipes. More...

#include <BDSBeamPipeFactoryLHCDetailed.hh>

Inheritance diagram for BDSBeamPipeFactoryLHCDetailed:

Inheritance graph
[legend]
Collaboration diagram for BDSBeamPipeFactoryLHCDetailed:

Collaboration graph
[legend]

Public Member Functions

virtual ~BDSBeamPipeFactoryLHCDetailed ()
G4double GetFullWidthOfCoolingPipe ()
 Access cooling pipe information from factory for parameter tests.
virtual void CleanUp ()
 Clean up extra pointers particular to this factory before use.
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 BDSBeamPipeFactoryLHCDetailedInstance ()
 singleton accessor

Private Member Functions

 BDSBeamPipeFactoryLHCDetailed ()
 private default constructor - singleton pattern
void TestInputParameters (G4Material *&vacuumMaterialIn, G4double &beamPipeThicknessIn, G4Material *&beamPipeMaterialIn, G4double &aper1In, G4double &aper2In, G4double &aper3In)
 test input parameters - if not set use global defaults for this simulation
BDSBeamPipeCommonFinalConstruction (G4String name, G4Material *vacuumMaterial, G4Material *beamPipeMaterial, G4double length, G4double containerRadius)
G4double CreateGeneralAngledSolids (G4String name, G4double length, G4ThreeVector inputface, G4ThreeVector outputface)
virtual void BuildLogicalVolumes (G4String nameIn, G4Material *vacuumMaterialIn, G4Material *beamPipeMaterialIn)
 build logical volumes
virtual void SetVisAttributes ()
 set visual attributes
virtual G4UserLimits * SetUserLimits (G4double lengthIn)
 set user limits
virtual void PlaceComponents (G4String nameIn)
 place volumes
void InitialiseGeometricalParameters ()
 Utility function to initialise the geometry parameters.
void CalculateGeometricalParameters (G4double aper1, G4double aper2, G4double aper3, G4double beamPipeThickness, G4double length)

Private Attributes

G4VSolid * copperSkinSolid
G4VSolid * screenSolid
G4VSolid * coolingPipeSolid
G4LogicalVolume * copperSkinLV
G4LogicalVolume * screenLV
G4LogicalVolume * coolingPipeLV
G4double coldBoreThickness
G4double coolingPipeThickness
G4double coolingPipeRadius
G4double copperSkinThickness
G4double vacRadius
G4double vacBoxX
G4double vacBoxY
G4double cuInnerRadius
G4double cuInnerBoxX
G4double cuInnerBoxY
G4double cuOuterRadius
G4double cuOuterBoxX
G4double cuOuterBoxY
G4double bsInnerRadius
G4double bsInnerBoxX
G4double bsInnerBoxY
G4double bsOuterRadius
G4double bsOuterBoxX
G4double bsOuterBoxY
G4double cbInnerRadius
G4double cbOuterRadius
G4double containerRadius
G4double vacHalfLength
G4double halfLength
G4double coolingPipeYOffset

Static Private Attributes

static BDSBeamPipeFactoryLHCDetailed_instance = 0

Detailed Description

Factory for detailed lhc aperture model beam pipes.

singleton pattern

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

Definition at line 15 of file BDSBeamPipeFactoryLHCDetailed.hh.


Member Function Documentation

void BDSBeamPipeFactoryLHCDetailed::CalculateGeometricalParameters ( G4double  aper1,
G4double  aper2,
G4double  aper3,
G4double  beamPipeThickness,
G4double  length 
) [private]

Calculate the various radii and geometrical parameters for this design based on the input aperture parameters

Definition at line 92 of file BDSBeamPipeFactoryLHCDetailed.cc.

References bsInnerBoxX, bsInnerBoxY, bsInnerRadius, bsOuterBoxX, bsOuterBoxY, bsOuterRadius, cbInnerRadius, cbOuterRadius, coldBoreThickness, containerRadius, coolingPipeRadius, coolingPipeThickness, coolingPipeYOffset, copperSkinThickness, cuInnerBoxX, cuInnerBoxY, cuInnerRadius, cuOuterBoxX, cuOuterBoxY, cuOuterRadius, halfLength, BDSBeamPipeFactoryBase::lengthSafety, vacBoxX, vacBoxY, vacHalfLength, and vacRadius.

Referenced by CreateBeamPipe(), and CreateBeamPipeAngledInOut().

Here is the caller graph for this function:

BDSBeamPipe * BDSBeamPipeFactoryLHCDetailed::CommonFinalConstruction ( G4String  name,
G4Material *  vacuumMaterial,
G4Material *  beamPipeMaterial,
G4double  length,
G4double  containerRadius 
) [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 345 of file BDSBeamPipeFactoryLHCDetailed.cc.

References BDSBeamPipeFactoryBase::BuildBeamPipeAndRegisterVolumes(), BDSBeamPipeFactoryBase::CommonConstruction(), coolingPipeLV, copperSkinLV, BDSGeometryComponent::RegisterLogicalVolume(), BDSGeometryComponent::RegisterSensitiveVolume(), and screenLV.

Referenced by CreateBeamPipe(), and CreateBeamPipeAngledInOut().

Here is the call graph for this function:

Here is the caller graph for this function:

G4double BDSBeamPipeFactoryLHCDetailed::CreateGeneralAngledSolids ( G4String  name,
G4double  length,
G4ThreeVector  inputface,
G4ThreeVector  outputface 
) [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 478 of file BDSBeamPipeFactoryLHCDetailed.cc.

References BDSBeamPipeFactoryBase::beamPipeSolid, bsInnerBoxX, bsInnerBoxY, bsInnerRadius, bsOuterBoxX, bsOuterBoxY, bsOuterRadius, cbInnerRadius, cbOuterRadius, containerRadius, BDSBeamPipeFactoryBase::containerSolid, BDSBeamPipeFactoryBase::containerSubtractionSolid, coolingPipeRadius, coolingPipeSolid, coolingPipeThickness, copperSkinSolid, cuInnerBoxX, cuInnerBoxY, cuInnerRadius, cuOuterBoxX, cuOuterBoxY, cuOuterRadius, halfLength, BDSBeamPipeFactoryBase::lengthSafety, screenSolid, vacBoxX, vacBoxY, vacHalfLength, vacRadius, 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