include/BDSDrift.hh

00001 /* BDSIM code.    Version 1.0
00002    Author: Grahame A. Blair, Royal Holloway, Univ. of London.
00003    Last modified 24.7.2002
00004    Copyright (c) 2002 by G.A.Blair.  ALL RIGHTS RESERVED. 
00005 */
00006 
00007 #ifndef BDSDrift_h
00008 #define BDSDrift_h 1
00009 
00010 #include "globals.hh"
00011 #include "BDSMaterials.hh"
00012 #include "G4LogicalVolume.hh"
00013 
00014 #include "G4FieldManager.hh"
00015 #include "G4ChordFinder.hh"
00016 #include "G4Mag_UsualEqRhs.hh"
00017 #include "G4UserLimits.hh"
00018 #include "G4VisAttributes.hh"
00019 #include "G4PVPlacement.hh"               
00020 #include "BDSDriftStepper.hh"
00021 #include "BDSMagField.hh"
00022 #include "BDSMultipole.hh"
00023 #include "G4ExactHelixStepper.hh"
00024 #include "G4CashKarpRKF45.hh"
00025 
00026 class BDSDrift :public BDSMultipole
00027 {
00028 public:
00029   BDSDrift(G4String aName, G4double aLength,
00030            std::list<G4double> blmLocZ, std::list<G4double> blmLocTheta, 
00031            G4double startAper, G4double endAper=BDSGlobalConstants::Instance()->GetBeampipeRadius(), G4String aTunnelMaterial="", G4bool aperset=false, G4double aper=0, G4double tunnelOffsetX=BDSGlobalConstants::Instance()->GetTunnelOffsetX(), G4double phiAngleIn=0, G4double phiAngleOut=0);
00032   ~BDSDrift();
00033 
00034 protected:
00035 
00036 private:
00037   void BuildBLMs();
00038   G4VisAttributes* SetVisAttributes();
00039   void BuildBpFieldAndStepper();
00040   G4double itsStartOuterR;
00041   G4double itsEndOuterR;
00042   //field related objects
00043   BDSDriftStepper* itsStepper;
00044   BDSMagField* itsMagField;
00045   G4Mag_UsualEqRhs* itsEqRhs;
00046 };
00047 
00048 #endif

Generated on 27 Aug 2013 for BDSIM by  doxygen 1.4.7