BDSBeamPipeFactoryBase Class Reference

abstract base class for beampipe factory classes More...

#include <BDSBeamPipeFactoryBase.hh>

Inheritance diagram for BDSBeamPipeFactoryBase:

Inheritance graph
[legend]

Public Member Functions

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)=0
 create a flat ended beampipe
virtual BDSBeamPipeCreateBeamPipeAngledIn (G4String nameIn, G4double lengthIn, G4double angleInIn, 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 input side only
virtual BDSBeamPipeCreateBeamPipeAngledOut (G4String nameIn, G4double lengthIn, 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 output side only
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)=0
 create beampipe with an angled face on both input adn output sides

Protected Member Functions

 BDSBeamPipeFactoryBase ()
 base constructor
virtual void CleanUp ()
 Initialiser and can be used to reset factory pointers after use.
void CommonConstruction (G4String nameIn, G4Material *vacuumMaterialIn, G4Material *beamPipeMaterialIn, G4double lengthIn)
 finalise beampipe construction
BDSBeamPipeBuildBeamPipeAndRegisterVolumes (std::pair< double, double > extX, std::pair< double, double > extY, std::pair< double, double > extZ, G4double containerRadius)
 build beampipe and register logical volumes
std::pair< G4ThreeVector,
G4ThreeVector > 
CalculateFaces (G4double angleInIn, G4double angleOutIn)
 Calculate input and output normal vector.
void TestInputParameters (G4Material *&vacuumMaterialIn, G4double &beamPipeThicknessIn, G4Material *&beamPipeMaterialIn)
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

Protected Attributes

G4double lengthSafety
G4bool checkOverlaps
G4double maxStepFactor
G4double nSegmentsPerCircle
G4VSolid * vacuumSolid
G4VSolid * beamPipeSolid
G4VSolid * containerSolid
G4VSolid * containerSubtractionSolid
 longer (in length) version of container solid for unambiguous subtraction
G4LogicalVolume * vacuumLV
G4LogicalVolume * beamPipeLV
G4LogicalVolume * containerLV

Detailed Description

abstract base class for beampipe factory classes

Abstract base class that defines the interface of each factory to build any type of beampipe required. There are four general possibilities apart from the shape (each derived class will give a different cross-section) and these dictate the angled faces.

Uses Geant4 default units by default, ie mm, rad (not metres)

Note, any type of aperture (in MADX) requires up to 4 parameters

Default values in constructors result in global defaults being used ie beampipe material will be steel - the default from options

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

Definition at line 29 of file BDSBeamPipeFactoryBase.hh.


Member Function Documentation

std::pair< G4ThreeVector, G4ThreeVector > BDSBeamPipeFactoryBase::CalculateFaces ( G4double  angleInIn,
G4double  angleOutIn 
) [protected]

Calculate input and output normal vector.

orientation -1,0,1 value - always use |angle| with trigonometric and then multiply by this factor, 0 by default

Definition at line 211 of file BDSBeamPipeFactoryBase.cc.

References BDS::CalculateOrientation().

Referenced by BDSBeamPipeFactoryRectEllipse::CreateBeamPipeAngledInOut(), BDSBeamPipeFactoryRectangular::CreateBeamPipeAngledInOut(), BDSBeamPipeFactoryLHCDetailed::CreateBeamPipeAngledInOut(), BDSBeamPipeFactoryLHC::CreateBeamPipeAngledInOut(), BDSBeamPipeFactoryElliptical::CreateBeamPipeAngledInOut(), and BDSBeamPipeFactoryCircular::CreateBeamPipeAngledInOut().

Here is the call graph for this function:

Here is the caller graph for this function:

void BDSBeamPipeFactoryBase::CommonConstruction ( G4String  nameIn,
G4Material *  vacuumMaterialIn,
G4Material *  beamPipeMaterialIn,
G4double  lengthIn 
) [protected]

finalise beampipe construction

build logical volumes

set visual attributes

set user limits

place volumes

Definition at line 82 of file BDSBeamPipeFactoryBase.cc.

Referenced by BDSBeamPipeFactoryRectEllipse::CommonFinalConstruction(), BDSBeamPipeFactoryRectangular::CommonFinalConstruction(), BDSBeamPipeFactoryLHCDetailed::CommonFinalConstruction(), BDSBeamPipeFactoryLHC::CommonFinalConstruction(), BDSBeamPipeFactoryElliptical::CommonFinalConstruction(), and BDSBeamPipeFactoryCircular::CommonFinalConstruction().

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