00001 #ifndef BDSBEAMPIPETYPE_H
00002 #define BDSBEAMPIPETYPE_H
00003
00004 #include "BDSTypeSafeEnum.hh"
00005 #include "globals.hh"
00006
00014 struct beampipetypes_def {
00015 enum type { circular, rectangular, elliptical, lhc, lhcdetailed, rectellipse};
00016 };
00017
00018 typedef BDSTypeSafeEnum<beampipetypes_def,int> BDSBeamPipeType;
00019
00020 namespace BDS {
00022 BDSBeamPipeType DetermineBeamPipeType(G4String apertureType);
00023
00026 void CheckApertureInfo(BDSBeamPipeType beamPipeTypeIn, G4double& beamPipeRadius,
00027 G4double& aper1, G4double& aper2, G4double& aper3, G4double& aper4);
00028
00030 void InfoOKForCircular(G4double& beamPipeRadius, G4double& aper1, G4double& aper2, G4double& aper3, G4double& aper4);
00031
00033 void InfoOKForElliptical(G4double& beamPipeRadius, G4double& aper1, G4double& aper2, G4double& aper3, G4double& aper4);
00034
00036 void InfoOKForRectangular(G4double& beamPipeRadius, G4double& aper1, G4double& aper2, G4double& aper3, G4double& aper4);
00037
00039 void InfoOKForLHC(G4double& beamPipeRadius, G4double& aper1, G4double& aper2, G4double& aper3, G4double& aper4);
00040
00042 void InfoOKForLHCDetailed(G4double& beamPipeRadius, G4double& aper1, G4double& aper2, G4double& aper3, G4double& aper4);
00043
00045 void InfoOKForRectEllipse(G4double& beamPipeRadius, G4double& aper1, G4double& aper2, G4double& aper3, G4double& aper4);
00046 }
00047
00048 #endif