#include <BDSBeamPipeFactoryBase.hh>
Inheritance diagram for BDSBeamPipeFactoryBase:
Public Member Functions | |
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)=0 |
create a flat ended beampipe | |
virtual BDSBeamPipe * | CreateBeamPipeAngledIn (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 BDSBeamPipe * | CreateBeamPipeAngledOut (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 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)=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 | |
BDSBeamPipe * | BuildBeamPipeAndRegisterVolumes (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 |
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
Definition at line 29 of file BDSBeamPipeFactoryBase.hh.
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: