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 BDSRFCAVITY_H 00008 #define BDSRFCAVITY_H 00009 00010 #include "BDSMagnet.hh" 00011 #include "BDSTiltOffset.hh" 00012 00013 #include "globals.hh" // geant4 types / globals 00014 #include "G4ChordFinder.hh" 00015 #include "G4EqMagElectricField.hh" 00016 #include "G4FieldManager.hh" 00017 #include "G4LogicalVolume.hh" 00018 #include "G4MagErrorStepper.hh" 00019 #include "G4UserLimits.hh" 00020 #include "G4UniformElectricField.hh" 00021 00022 struct BDSBeamPipeInfo; 00023 struct BDSMagnetOuterInfo; 00024 00025 class BDSRfCavity: public BDSMagnet 00026 { 00027 public: 00028 BDSRfCavity(G4String name, 00029 G4double length, 00030 G4double grad, 00031 BDSBeamPipeInfo* beamPipeInfoIn, 00032 BDSMagnetOuterInfo magnetOuterInfo, 00033 BDSTiltOffset tiltOffset = BDSTiltOffset()); 00034 ~BDSRfCavity(){;}; 00035 00036 private: 00037 00038 virtual void BuildBPFieldAndStepper(); 00039 00040 G4double itsGrad; // longitudinal E field grad in MV / m 00041 00042 // field related objects: 00043 G4UniformElectricField* itsEField; 00044 G4ChordFinder* fChordFinder ; 00045 G4MagIntegratorStepper* fStepper ; 00046 G4MagInt_Driver* fIntgrDriver; 00047 }; 00048 00049 #endif