include/BDSRBend.hh

00001 /* BDSIM code.    Version 1.0
00002    Author: Grahame A. Blair, Royal Holloway, Univ. of London.
00003    Last modified 18.10.2002
00004    Copyright (c) 2002 by G.A.Blair.  ALL RIGHTS RESERVED. 
00005 
00006    IA: 12.10.05 , modified
00007 */
00008 
00009 #ifndef BDSRBend_h
00010 #define BDSRBend_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 BDSRBend :public BDSMultipole
00029 {
00030 public:
00031   BDSRBend(G4String aName, G4double aLength,
00032                 G4double bpRad, G4double FeRad,
00033                 G4double bField, G4double angle, G4double outR,
00034            std::list<G4double> blmLocZ, std::list<G4double> blmLocTheta,
00035            G4double tilt = 0, G4double bGrad=0, G4String aTunnelMaterial="", G4String aMaterial = "");
00036   ~BDSRBend();
00037 
00038   void SynchRescale(G4double factor);
00039 
00040 protected:
00041 
00042 private:
00043   G4double itsBField;
00044   G4double itsBGrad;
00045   G4double itsMagFieldLength;
00046 
00047   void BuildBPFieldAndStepper();
00048   void BuildRBMarkerLogicalVolume();
00049   void BuildRBBeampipe();
00050   void BuildRBOuterLogicalVolume(G4bool OuterMaterialIsVacuum=false);
00051 
00052   G4VisAttributes* SetVisAttributes();
00053   G4Trd* markerSolidVolume;
00054   G4Trd* rbendRectangleSolidVolume;
00055   G4LogicalVolume* rbendRectangleLogicalVolume;
00056   G4LogicalVolume* middleBeampipeLogicalVolume;
00057   G4LogicalVolume* middleInnerBPLogicalVolume;
00058   G4LogicalVolume* endsBeampipeLogicalVolume;
00059   G4LogicalVolume* endsInnerBPLogicalVolume;
00060   G4UserLimits* endsBeampipeUserLimits;
00061   G4UserLimits* endsInnerBeampipeUserLimits;
00062   G4VisAttributes* innerBeampipeVisAtt;
00063   G4VisAttributes* beampipeVisAtt;
00064 
00065   // field related objects:
00066   myQuadStepper* itsStepper;
00067   BDSSbendMagField* itsMagField;
00068   G4Mag_EqRhs* itsEqRhs;
00069 
00070 };
00071 
00072 #endif

Generated on 27 Aug 2013 for BDSIM by  doxygen 1.4.7