include/BDSQuadrupole.hh

00001 //  
00002 //   BDSIM, (C) 2001-2006 
00003 //   
00004 //   version 0.3
00005 //  
00006 //
00007 //
00008 //   Quadrupole class
00009 //
00010 //
00011 //   History
00012 //
00013 //     21 Nov 2006 by Agapov,  v.0.3
00014 //     22 Mar 2005 by Agapov, Carter,  v.0.2
00015 //     x  x   2002 by Blair
00016 //
00017 //
00018 
00019 #ifndef __BDSQUADRUPOLE_H
00020 #define __BDSQUADRUPOLE_H
00021 
00022 #include "globals.hh"
00023 #include "BDSMaterials.hh"
00024 #include "G4LogicalVolume.hh"
00025 #include "BDSQuadStepper.hh"
00026 
00027 #include "G4FieldManager.hh"
00028 #include "G4ChordFinder.hh"
00029 #include "G4Mag_UsualEqRhs.hh"
00030 #include "G4UserLimits.hh"
00031 #include "G4VisAttributes.hh"
00032 #include "G4PVPlacement.hh"               
00033 #include "G4HelixMixedStepper.hh"
00034 #include "G4HelixImplicitEuler.hh"
00035 #include "G4SimpleRunge.hh"
00036 #include "G4CashKarpRKF45.hh"
00037 
00038 #include "BDSMultipole.hh"
00039 #include "BDSQuadMagField.hh"
00040 
00041 class BDSQuadrupole :public BDSMultipole
00042 {
00043 public:
00044   BDSQuadrupole(G4String aName, G4double aLength,
00045                 G4double bpRad, G4double FeRad,
00046                 G4double bGrad, G4double tilt, G4double outR, 
00047                 std::list<G4double> blmLocZ, std::list<G4double> blmLocTheta,
00048                  G4String aTunnelMaterial="", G4String aMaterial= "", G4String spec="");
00049   ~BDSQuadrupole();
00050 
00051   void SynchRescale(G4double factor);
00052 
00053 protected:
00054 
00055 private:
00056   G4double itsBGrad;
00057 
00058   void BuildOuterLogicalVolume();
00059   void BuildBPFieldAndStepper();
00060 
00061   G4VisAttributes* SetVisAttributes();
00062 
00063   // field related objects:
00064   BDSQuadStepper* itsStepper;
00065   BDSQuadMagField* itsMagField;
00066   G4Mag_UsualEqRhs* itsEqRhs;
00067 
00068 };
00069 
00070 #endif

Generated on 27 Aug 2013 for BDSIM by  doxygen 1.4.7