Logo ROOT   6.10/09
Reference Guide
TVirtualMagField.h
Go to the documentation of this file.
1 // @(#)root/geom:$Id$
2 
3 /*************************************************************************
4  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
5  * All rights reserved. *
6  * *
7  * For the licensing terms see $ROOTSYS/LICENSE. *
8  * For the list of contributors see $ROOTSYS/README/CREDITS. *
9  *************************************************************************/
10 
11 #ifndef ROOT_TVirtualMagField
12 #define ROOT_TVirtualMagField
13 
14 #include "TNamed.h"
15 
16 class TVirtualMagField : public TNamed
17 {
18 public:
20  TVirtualMagField(const char *name) : TNamed(name,"") {}
21  virtual ~TVirtualMagField();
22 
23  virtual void Field(const Double_t *x, Double_t *B) = 0;
24 
25  ClassDef(TVirtualMagField, 1) // Abstract base field class
26 };
27 
28 
29 ////////////////////////////////////////////////////////////////////////////
30 // //
31 // TGeoUniformMagField - Uniform magnetic field class. //
32 // //
33 ////////////////////////////////////////////////////////////////////////////
34 
36 {
37 private:
38  Double_t fB[3]; // Magnetic field vector
39 
40 protected:
43 
44 public:
47  virtual ~TGeoUniformMagField() {}
48 
49  void Field(const Double_t * /*x*/, Double_t *B) {B[0]=fB[0]; B[1]=fB[1]; B[2]=fB[2];}
50 
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;}
53 
54  ClassDef(TGeoUniformMagField, 1) // Uniform magnetic field
55 };
56 
57 #endif
static double B[]
const Double_t * GetFieldValue() const
virtual void Field(const Double_t *x, Double_t *B)=0
Double_t x[n]
Definition: legend1.C:17
#define ClassDef(name, id)
Definition: Rtypes.h:297
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:29
TVirtualMagField(const char *name)
TNamed & operator=(const TNamed &rhs)
TNamed assignment operator.
Definition: TNamed.cxx:42
virtual ~TGeoUniformMagField()
double Double_t
Definition: RtypesCore.h:55
Abstract class for magnetic field.
virtual ~TVirtualMagField()
Destructor. Unregisters the field.
void Field(const Double_t *, Double_t *B)
Implementation for uniform magnetic field.
void SetFieldValue(Double_t Bx, Double_t By, Double_t Bz)