Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
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
17{
18public:
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{
37private:
38 Double_t fB[3]; // Magnetic field vector
39
40protected:
43
44public:
48
49 void Field(const Double_t * /*x*/, Double_t *B) override {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 ClassDefOverride(TGeoUniformMagField, 1) // Uniform magnetic field
55};
56
57#endif
#define ClassDef(name, id)
Definition Rtypes.h:337
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
char name[80]
Definition TGX11.cxx:110
Implementation for uniform magnetic field.
void Field(const Double_t *, Double_t *B) override
TGeoUniformMagField()
Default constructor;.
void SetFieldValue(Double_t Bx, Double_t By, Double_t Bz)
TGeoUniformMagField(const TGeoUniformMagField &)=delete
TGeoUniformMagField & operator=(const TGeoUniformMagField &)=delete
const Double_t * GetFieldValue() const
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
Abstract class for magnetic field.
virtual void Field(const Double_t *x, Double_t *B)=0
TVirtualMagField(const char *name)
virtual ~TVirtualMagField()
Destructor. Unregisters the field.
Double_t x[n]
Definition legend1.C:17