00001
00002
00003
00004
00005
00006
00007 #ifndef BDSSkewSextupole_h
00008 #define BDSSkewSextupole_h 1
00009
00010 #include "globals.hh"
00011 #include "BDSAcceleratorComponent.hh"
00012 #include "BDSMaterials.hh"
00013 #include "G4LogicalVolume.hh"
00014 #include "BDSSkewSextStepper.hh"
00015
00016 #include "G4FieldManager.hh"
00017 #include "G4ChordFinder.hh"
00018 #include "G4Mag_UsualEqRhs.hh"
00019 #include "G4UserLimits.hh"
00020 #include "G4VisAttributes.hh"
00021 #include "G4PVPlacement.hh"
00022
00023 #include "BDSMultipole.hh"
00024 #include "BDSSkewSextMagField.hh"
00025
00026 class BDSSkewSextupole :public BDSMultipole
00027 {
00028 public:
00029 BDSSkewSextupole(G4String& aName, G4double aLength,
00030 G4double bpRad,G4double FeRad,
00031 std::list<G4double> blmLocZ, std::list<G4double> blmLocTheta,
00032 G4String aTunnelMaterial, G4String aMaterial, G4double BDblPrime);
00033 ~BDSSkewSextupole();
00034
00035 protected:
00036
00037 private:
00038 G4double itsBDblPrime;
00039
00040
00041 void BuildBPFieldAndStepper();
00042
00043
00044 G4VisAttributes* SetVisAttributes();
00045
00046
00047 BDSSkewSextStepper* itsStepper;
00048 BDSSkewSextMagField* itsMagField;
00049 G4Mag_UsualEqRhs* itsEqRhs;
00050 };
00051
00052 #endif