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