include/BDSSectorBend.hh

00001 //  
00002 //   BDSIM, (C) 2001-2007
00003 //   
00004 //   version 0.4
00005 //  
00006 //
00007 //
00008 //   Rectangular bending magnet class
00009 //   - itsLength parameter internally stores the geometrical length 
00010 //   - itsAngle parameter internally stores the bending angle
00011 //   - to get the arc length use the GetArcLength() function
00012 //   - the volume is a trapezoid with pole faces perpendicular to the ideal
00013 //     orbit
00014 //     
00015 //   History
00016 //
00017 //
00018 
00019 #ifndef BDSSectorBend_h
00020 #define BDSSectorBend_h 
00021 
00022 #include "globals.hh"
00023 #include "BDSMaterials.hh"
00024 #include "G4LogicalVolume.hh"
00025 #include "BDSHelixStepper.hh"
00026 #include "myQuadStepper.hh"
00027 
00028 #include "G4FieldManager.hh"
00029 #include "G4ChordFinder.hh"
00030 #include "G4Mag_UsualEqRhs.hh"
00031 #include "G4UserLimits.hh"
00032 #include "G4VisAttributes.hh"
00033 #include "G4PVPlacement.hh"               
00034 
00035 #include "BDSMultipole.hh"
00036 #include "BDSSbendMagField.hh"
00037 #include "G4Mag_EqRhs.hh"
00038 
00039 class BDSSectorBend :public BDSMultipole
00040 {
00041 public:
00042   BDSSectorBend(G4String aName, G4double aLength,
00043                 G4double bpRad, G4double FeRad,
00044                 G4double bField, G4double angle, G4double outR,
00045                 std::list<G4double> blmLocZ, std::list<G4double> blmLocTheta,
00046                 G4double tilt = 0, G4double bGrad=0, 
00047                 G4String aTunnelMaterial="",
00048                 G4String aMaterial = "", G4double xAper=0, G4double yAper=0);
00049   ~BDSSectorBend();
00050 
00051   void SynchRescale(G4double factor);
00052 
00053   virtual G4double GetArcLength();
00054 
00055 protected:
00056 
00057 private:
00058   G4double itsBField;
00059   G4double itsBGrad;
00060 
00061   void BuildBPFieldAndStepper();
00062   void BuildSBMarkerLogicalVolume();
00063   void BuildSBBeampipe();
00064   void BuildSBOuterLogicalVolume(G4bool OuterMaterialIsVacuum=false);
00065 
00066   G4VisAttributes* SetVisAttributes();
00067 
00068   // field related objects:
00069   myQuadStepper* itsStepper;
00070   BDSSbendMagField* itsMagField;
00071   G4Mag_EqRhs* itsEqRhs;
00072 
00073   // G4int itsNSegments;
00074   // G4double itsSegmentLength;
00075   // G4double itsSegmentAngle;
00076 };
00077 
00078 #endif

Generated on 27 Aug 2013 for BDSIM by  doxygen 1.4.7