Belle II Software  release-08-01-10
GFRaveMagneticField.cc
1 /* Copyright 2008-2010, Technische Universitaet Muenchen,
2  Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
3 
4  This file is part of GENFIT.
5 
6  GENFIT is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published
8  by the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  GENFIT is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 
21 #include "GFRaveMagneticField.h"
22 #include <FieldManager.h>
23 
24 #include <iostream>
25 
26 
27 namespace genfit {
28 
29 GFRaveMagneticField *
30 GFRaveMagneticField::copy() const{
31  return new GFRaveMagneticField(*this);
32 }
33 
34 
36 GFRaveMagneticField::inTesla ( const rave::Point3D & position) const
37 {
38  TVector3 pos(position.x(), position.y(), position.z());
39 
40  TVector3 B = FieldManager::getInstance()->getFieldVal(pos); // magnetic field in kGauss
41  B *= 1.E-1;
42 
43  return rave::Vector3D (B.X(), B.Y(), B.Z());
44 }
45 
46 
47 } /* End of namespace genfit */
TVector3 getFieldVal(const TVector3 &position)
This does NOT use the cache!
Definition: FieldManager.h:63
static FieldManager * getInstance()
Get singleton instance.
Definition: FieldManager.h:119
HepGeom::Vector3D< double > Vector3D
3D Vector
Definition: Cell.h:34
HepGeom::Point3D< double > Point3D
3D point
Definition: Cell.h:32
Defines for I/O streams used for error and debug printing.