//  
// Author: Oliver Maria Kind <mailto: kind@mail.desy.de>
// Update: $Id: HepMagneticField.h,v 1.2 2010/12/23 15:13:42 herrberg Exp $
// Copyright: 2008 (C) Oliver Maria Kind
//
#ifndef HEP_HepMagneticField
#define HEP_HepMagneticField
#ifndef ROOT_TObject
#include <TObject.h>
#endif
#ifndef ROOT_TVector3
#include <TVector3.h>
#endif

class HepMagneticField : public TObject {

private:
    Int_t    fType;    // Magnetic field type
    TVector3 fBField;  // Direction and strength of the magnetic field
		       // (in Tesla)
    
public:
    enum EType { kSolenoid, kToroid };
    HepMagneticField(Float_t Bx, Float_t By, Float_t Bz,
		     Int_t Type = kSolenoid);
    virtual ~HepMagneticField();
    virtual void Print(Option_t *option = "") const;

    inline const Int_t GetType() const { return fType; }
    inline const TVector3& GetBField() const { return fBField; }
    inline const Float_t GetBStrength() const { return fBField.Mag(); }
    
    ClassDef(HepMagneticField,1) // Magnetic field
};
#endif

 HepMagneticField.h:1
 HepMagneticField.h:2
 HepMagneticField.h:3
 HepMagneticField.h:4
 HepMagneticField.h:5
 HepMagneticField.h:6
 HepMagneticField.h:7
 HepMagneticField.h:8
 HepMagneticField.h:9
 HepMagneticField.h:10
 HepMagneticField.h:11
 HepMagneticField.h:12
 HepMagneticField.h:13
 HepMagneticField.h:14
 HepMagneticField.h:15
 HepMagneticField.h:16
 HepMagneticField.h:17
 HepMagneticField.h:18
 HepMagneticField.h:19
 HepMagneticField.h:20
 HepMagneticField.h:21
 HepMagneticField.h:22
 HepMagneticField.h:23
 HepMagneticField.h:24
 HepMagneticField.h:25
 HepMagneticField.h:26
 HepMagneticField.h:27
 HepMagneticField.h:28
 HepMagneticField.h:29
 HepMagneticField.h:30
 HepMagneticField.h:31
 HepMagneticField.h:32
 HepMagneticField.h:33
 HepMagneticField.h:34
 HepMagneticField.h:35
 HepMagneticField.h:36