11 #ifndef ROOT_TVirtualMagField 
   12 #define ROOT_TVirtualMagField 
   16 class TVirtualMagField : 
public TNamed
 
   19    TVirtualMagField()                 : TNamed() {}
 
   20    TVirtualMagField(
const char *name) : TNamed(name,
"") {}
 
   21    virtual ~TVirtualMagField();
 
   23    virtual void Field(
const Double_t *x, Double_t *B) = 0;
 
   25    ClassDef(TVirtualMagField, 1)              
 
   35 class TGeoUniformMagField : 
public TVirtualMagField
 
   41    TGeoUniformMagField(
const TGeoUniformMagField&);
 
   42    TGeoUniformMagField& operator=(
const TGeoUniformMagField&);
 
   45    TGeoUniformMagField();
 
   46    TGeoUniformMagField(Double_t Bx, Double_t By, Double_t Bz);
 
   47    virtual ~TGeoUniformMagField() {}
 
   49    void            Field(
const Double_t * , Double_t *B) {B[0]=fB[0]; B[1]=fB[1]; B[2]=fB[2];}
 
   51    const Double_t *GetFieldValue()
 const { 
return &fB[0]; }
 
   52    void            SetFieldValue(Double_t Bx, Double_t By, Double_t Bz) {fB[0]=Bx; fB[1]=By; fB[2]=Bz;}
 
   54    ClassDef(TGeoUniformMagField, 1)