00001 #ifndef BDSMAGNETOUTERFACTORYNONE_H
00002 #define BDSMAGNETOUTERFACTORYNONE_H
00003
00004 #include "BDSGeometryComponent.hh"
00005 #include "BDSMagnetOuterFactoryBase.hh"
00006
00007
00008 #include "globals.hh"
00009
00010
00011 class BDSBeamPipe;
00012 class G4Material;
00013
00014 class BDSMagnetOuterFactoryNone: public BDSMagnetOuterFactoryBase
00015 {
00016 public:
00017 static BDSMagnetOuterFactoryNone* Instance();
00018
00019 ~BDSMagnetOuterFactoryNone();
00020
00022 virtual BDSGeometryComponent* CreateSectorBend(G4String name,
00023 G4double length,
00024 BDSBeamPipe* beamPipe,
00025 G4double boxSize,
00026 G4double angle,
00027 G4Material* outerMaterial = NULL
00028 );
00029
00031 virtual BDSGeometryComponent* CreateRectangularBend(G4String name,
00032 G4double length,
00033 BDSBeamPipe* beamPipe,
00034 G4double boxSize,
00035 G4double angle,
00036 G4Material* outerMaterial = NULL
00037 );
00038
00040 virtual BDSGeometryComponent* CreateQuadrupole(G4String name,
00041 G4double length,
00042 BDSBeamPipe* beamPipe,
00043 G4double boxSize,
00044 G4Material* outerMaterial = NULL
00045 );
00046
00047
00049 virtual BDSGeometryComponent* CreateSextupole(G4String name,
00050 G4double length,
00051 BDSBeamPipe* beamPipe,
00052 G4double boxSize,
00053 G4Material* outerMaterial = NULL
00054 );
00055
00057 virtual BDSGeometryComponent* CreateOctupole(G4String name,
00058 G4double length,
00059 BDSBeamPipe* beamPipe,
00060 G4double boxSize,
00061 G4Material* outerMaterial = NULL
00062 );
00063
00065 virtual BDSGeometryComponent* CreateDecapole(G4String name,
00066 G4double length,
00067 BDSBeamPipe* beamPipe,
00068 G4double boxSize,
00069 G4Material* outerMaterial = NULL
00070 );
00071
00073 virtual BDSGeometryComponent* CreateSolenoid(G4String name,
00074 G4double length,
00075 BDSBeamPipe* beamPipe,
00076 G4double boxSize,
00077 G4Material* outerMaterial = NULL
00078 );
00079
00081 virtual BDSGeometryComponent* CreateMultipole(G4String name,
00082 G4double length,
00083 BDSBeamPipe* beamPipe,
00084 G4double boxSize,
00085 G4Material* outerMaterial = NULL
00086 );
00087
00089 virtual BDSGeometryComponent* CreateRfCavity(G4String name,
00090 G4double length,
00091 BDSBeamPipe* beamPipe,
00092 G4double boxSize,
00093 G4Material* outerMaterial = NULL
00094 );
00095
00097 virtual BDSGeometryComponent* CreateMuSpoiler(G4String name,
00098 G4double length,
00099 BDSBeamPipe* beamPipe,
00100 G4double boxSize,
00101 G4Material* outerMaterial = NULL
00102 );
00103
00105 virtual BDSGeometryComponent* CreateKicker(G4String name,
00106 G4double length,
00107 BDSBeamPipe* beamPipe,
00108 G4double boxSize,
00109 G4bool vertical = true,
00110 G4Material* outerMaterial = NULL
00111 );
00112
00113 private:
00114 BDSMagnetOuterFactoryNone();
00115 static BDSMagnetOuterFactoryNone* _instance;
00116 };
00117
00118 #endif