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)