#include <BDSBeamPipeFactoryLHCDetailed.hh>
Inheritance diagram for BDSBeamPipeFactoryLHCDetailed:
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 BDSBeamPipe * | CreateBeamPipe (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 BDSBeamPipe * | CreateBeamPipeAngledInOut (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 BDSBeamPipeFactoryLHCDetailed * | Instance () |
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 | |
BDSBeamPipe * | CommonFinalConstruction (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 |
singleton pattern
Definition at line 15 of file BDSBeamPipeFactoryLHCDetailed.hh.
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: