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