#include <BDSBeamPipeFactoryElliptical.hh>
Inheritance diagram for BDSBeamPipeFactoryElliptical:
Public Member Functions | |
virtual | ~BDSBeamPipeFactoryElliptical () |
singleton accessor | |
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 BDSBeamPipeFactoryElliptical * | Instance () |
Private Member Functions | |
BDSBeamPipeFactoryElliptical () | |
void | TestInputParameters (G4Material *&vacuumMaterialIn, G4double &beamPipeThicknessIn, G4Material *&beamPipeMaterialIn, G4double &aper1In, G4double &aper2In) |
test input parameters - if not set use global defaults for this simulation | |
BDSBeamPipe * | CommonFinalConstruction (G4String nameIn, G4Material *vacuumMaterialIn, G4Material *beamPipeMaterialIn, G4double lengthIn, G4double aper1In, G4double aper2In, G4double beamPipeThicknessIn) |
void | CreateGeneralAngledSolids (G4String nameIn, G4double lengthIn, G4double aper1In, G4double aper2In, G4double beamPipeThicknessIn, G4ThreeVector inputfaceIn, G4ThreeVector outputfaceIn) |
Static Private Attributes | |
static BDSBeamPipeFactoryElliptical * | _instance = 0 |
private default constructor - singelton pattern |
singleton pattern
Definition at line 15 of file BDSBeamPipeFactoryElliptical.hh.
BDSBeamPipe * BDSBeamPipeFactoryElliptical::CommonFinalConstruction | ( | G4String | nameIn, | |
G4Material * | vacuumMaterialIn, | |||
G4Material * | beamPipeMaterialIn, | |||
G4double | lengthIn, | |||
G4double | aper1In, | |||
G4double | aper2In, | |||
G4double | beamPipeThicknessIn | |||
) | [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 149 of file BDSBeamPipeFactoryElliptical.cc.
References BDSBeamPipeFactoryBase::beamPipeLV, BDSBeamPipeFactoryBase::BuildBeamPipeAndRegisterVolumes(), BDSBeamPipeFactoryBase::CommonConstruction(), BDSBeamPipeFactoryBase::containerSubtractionSolid, BDSBeamPipeFactoryBase::lengthSafety, BDSGeometryComponent::RegisterLogicalVolume(), BDSGeometryComponent::RegisterSensitiveVolume(), and BDSBeamPipeFactoryBase::vacuumLV.
Referenced by CreateBeamPipe(), and CreateBeamPipeAngledInOut().
Here is the call graph for this function:
Here is the caller graph for this function:
void BDSBeamPipeFactoryElliptical::CreateGeneralAngledSolids | ( | G4String | nameIn, | |
G4double | lengthIn, | |||
G4double | aper1In, | |||
G4double | aper2In, | |||
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 197 of file BDSBeamPipeFactoryElliptical.cc.
References BDSBeamPipeFactoryBase::beamPipeSolid, BDSBeamPipeFactoryBase::containerSolid, BDSBeamPipeFactoryBase::lengthSafety, and BDSBeamPipeFactoryBase::vacuumSolid.
Referenced by CreateBeamPipeAngledInOut().
Here is the caller graph for this function: