00001 #ifndef BDSKICKER_H 00002 #define BDSKICKER_H 00003 00004 #include "BDSMagnet.hh" 00005 #include "BDSMagnetType.hh" 00006 #include "BDSTiltOffset.hh" 00007 00008 #include "globals.hh" // geant4 types / globals 00009 #include "G4Material.hh" 00010 00011 struct BDSBeamPipeInfo; 00012 struct BDSMagnetOuterInfo; 00013 00014 class BDSKicker: public BDSMagnet 00015 { 00016 public: 00017 BDSKicker(G4String name, 00018 G4double length, 00019 G4double bField, 00020 G4double bGrad, 00021 G4double angle, 00022 G4bool verticalKicker, 00023 BDSBeamPipeInfo* beamPipeInfo, 00024 BDSMagnetOuterInfo magnetOuterInfo, 00025 BDSTiltOffset tiltOffset = BDSTiltOffset()); 00026 ~BDSKicker(){;}; 00027 00028 protected: 00029 virtual void Build(); 00030 00031 private: 00032 G4double itsBField; 00033 G4double itsBGrad; 00034 G4double itsKickAngle; 00035 G4bool isVerticalKicker; 00036 00037 virtual void BuildBPFieldAndStepper(); 00038 virtual void BuildBeampipe(); // overload multipole base class method 00039 00040 }; 00041 00042 #endif