/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/include/BDSMagField.hh

00001 /* BDSIM code.
00002 
00003 */
00004 
00005 #include "G4MagneticField.hh"
00006 #include "G4CachedMagneticField.hh"
00007 #include "globals.hh"
00008 #include "G4RotationMatrix.hh"
00009 #include "G4VPhysicalVolume.hh"
00010 
00011 #ifndef BDSMagField_h
00012 #define BDSMagField_h
00013 
00014 class BDSMagField : public G4MagneticField
00015 {
00016 public:
00017 
00018   // mandatory members
00019 
00020   BDSMagField();
00021   
00022   ~BDSMagField();
00023 
00024   virtual G4bool   DoesFieldChangeEnergy() const;
00025 
00026   virtual void GetFieldValue(const G4double Point[4],G4double *Bfield ) const;
00027 
00028   // create a field mesh in the global coordinates after the placement is known
00029   virtual void Prepare(G4VPhysicalVolume *referenceVolume);
00030 
00031   // aux members
00032 
00033   void SetOriginRotation(G4RotationMatrix *rot);
00034   void SetOriginRotation(G4RotationMatrix rot);
00035   void SetOriginTranslation(G4ThreeVector trans);
00036 
00037 public:
00038   virtual G4bool GetHasNPoleFields();
00039   virtual G4bool GetHasUniformField();
00040   virtual G4bool GetHasFieldMap();
00041 
00042   G4RotationMatrix Rotation() const;
00043   G4ThreeVector translation;
00044 
00045 private:
00046   G4RotationMatrix* rotation;
00047   
00048   
00049 };
00050 
00051 
00052 #endif

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7