00001 #ifndef BDSBEAMPIPE_H
00002 #define BDSBEAMPIPE_H
00003
00004 #include "BDSGeometryComponent.hh"
00005
00006 #include "globals.hh"
00007 #include "G4LogicalVolume.hh"
00008 #include "G4VSolid.hh"
00009 #include <utility>
00010
00019 class BDSBeamPipe: public BDSGeometryComponent
00020 {
00021 public:
00024 BDSBeamPipe(G4VSolid* containerSolidIn,
00025 G4LogicalVolume* containerLVIn,
00026 std::pair<double, double> extentXIn,
00027 std::pair<double, double> extentYIn,
00028 std::pair<double, double> extentZIn,
00029 G4VSolid* containerSubtractionSolidIn,
00030 G4LogicalVolume* vacuumLVIn,
00031 G4bool containerIsCircularIn = false,
00032 G4double containerRadiusIn = 0.0
00033 );
00034 ~BDSBeamPipe();
00035
00038 G4VSolid* GetContainerSubtractionSolid();
00040 G4LogicalVolume* GetVacuumLogicalVolume();
00043 G4bool ContainerIsCircular();
00045 G4double GetContainerRadius();
00046
00047 protected:
00048 G4VSolid* containerSubtractionSolid;
00049 G4LogicalVolume* vacuumLogicalVolume;
00050 G4bool containerIsCircular;
00051 G4double containerRadius;
00052 };
00053
00054 inline G4VSolid* BDSBeamPipe::GetContainerSubtractionSolid()
00055 {return containerSubtractionSolid;}
00056
00057 inline G4LogicalVolume* BDSBeamPipe::GetVacuumLogicalVolume()
00058 {return vacuumLogicalVolume;}
00059
00060 inline G4bool BDSBeamPipe::ContainerIsCircular()
00061 {return containerIsCircular;}
00062
00063 inline G4double BDSBeamPipe::GetContainerRadius()
00064 {return containerRadius;}
00065
00066 #endif