00001 #ifndef BDSTeleporter_h 00002 #define BDSTeleporter_h 1 00003 00004 #include "BDSTeleporterStepper.hh" 00005 #include "G4ChordFinder.hh" 00006 #include "G4FieldManager.hh" 00007 #include "G4MagIntegratorStepper.hh" 00008 #include "BDSMagField.hh" 00009 #include "G4Mag_UsualEqRhs.hh" 00010 #include "BDSBeamline.hh" 00011 #include "parser/elementlist.h" 00012 00013 class BDSTeleporter: public BDSAcceleratorComponent 00014 { 00015 public: 00016 BDSTeleporter(G4String name, 00017 G4double length); 00018 ~BDSTeleporter(); 00019 00020 protected: 00021 G4ChordFinder* itsChordFinder; 00022 G4FieldManager* itsFieldManager; 00023 G4MagIntegratorStepper* itsStepper; 00024 BDSMagField* itsMagField; 00025 G4Mag_UsualEqRhs* itsEqRhs; 00026 00027 private: 00028 virtual void Build(); 00029 virtual void BuildContainerLogicalVolume(); 00031 void BuildBPFieldAndStepper(); 00033 void BuildBPFieldMgr(G4MagIntegratorStepper* stepper,G4MagneticField* field); 00034 }; 00035 00036 namespace BDS { 00037 void CalculateAndSetTeleporterDelta(BDSBeamline* thebeamline); 00038 } 00039 00040 00041 #endif