00001 #ifndef BDSKicker_h
00002 #define BDSKicker_h
00003
00004 #include "globals.hh"
00005 #include "BDSMaterials.hh"
00006 #include "G4LogicalVolume.hh"
00007 #include "myQuadStepper.hh"
00008
00009 #include "G4FieldManager.hh"
00010 #include "G4ChordFinder.hh"
00011 #include "G4Mag_UsualEqRhs.hh"
00012 #include "G4UserLimits.hh"
00013 #include "G4VisAttributes.hh"
00014 #include "G4PVPlacement.hh"
00015
00016 #include "BDSMultipole.hh"
00017 #include "BDSSbendMagField.hh"
00018 #include "G4Mag_EqRhs.hh"
00019
00020 class BDSKicker:public BDSMultipole
00021 {
00022 public:
00023 BDSKicker(G4String aName, G4double aLength,
00024 G4double bpRad, G4double FeRad,
00025 G4double bField, G4double angle, G4double outR,
00026 G4double tilt = 0, G4double bGrad=0,
00027 G4String aMaterial = "", G4int nSegments=1);
00028 ~BDSKicker();
00029
00030 protected:
00031
00032 private:
00033 G4double itsBField;
00034 G4double itsBGrad;
00035
00036 void BuildBPFieldAndStepper();
00037
00038 G4VisAttributes* SetVisAttributes();
00039
00040
00041 myQuadStepper* itsStepper;
00042
00043 BDSSbendMagField* itsMagField;
00044 G4Mag_EqRhs* itsEqRhs;
00045 };
00046
00047 #endif