Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
larreco
larreco
Genfit
GFFieldManager.h
Go to the documentation of this file.
1
/* Copyright 2008-2010, Technische Universitaet Muenchen,
2
Authors: Christian Hoeppner & Sebastian Neubert
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
/** @addtogroup genfit
20
* @{
21
*/
22
23
24
#ifndef GFFIELDMANAGER_H
25
#define GFFIELDMANAGER_H
26
27
#include"
GFAbsBField.h
"
28
#include<iostream>
29
30
/** @brief Singleton which provides access to magnetic field for track representations
31
*
32
* @author Christian Höppner (Technische Universität München, original author)
33
* @author Sebastian Neubert (Technische Universität München, original author)
34
*
35
*/
36
namespace
genf
{
37
38
class
GFFieldManager
{
39
private
:
40
GFFieldManager
(){}
41
static
GFFieldManager
*
fInstance
;
42
static
GFAbsBField
*
fField
;
43
44
public
:
45
GFAbsBField
*
getField
(){
46
if
(fField==NULL){
47
std::cerr <<
"Appareantly GFFieldManager hasnt been initialized with a correct GFAbsBField pointer -> abort"
<<
std::endl
;
48
throw
;
49
}
50
return
fField
;
51
}
52
53
static
TVector3
getFieldVal
(
const
TVector3&
x
){
54
if
(fInstance==NULL){
55
std::cerr <<
"Appareantly GFFieldManager hasnt been instantiated yet, call getInstance() and init() before getFieldVal() -> abort"
<<
std::endl
;
56
throw
;
57
}
58
if
(fField==NULL){
59
std::cerr <<
"Appareantly GFFieldManager hasnt been initialized with a correct GFAbsBField pointer -> abort"
<<
std::endl
;
60
throw
;
61
}
62
return
fField->
get
(x);
63
}
64
65
//! set the magntic field here. Magnetic field classes must be derived from GFAbsBField
66
void
init
(
GFAbsBField
*
b
) {
67
fField=
b
;
68
}
69
70
static
GFFieldManager
*
getInstance
(){
71
if
(fInstance==NULL) {
72
fInstance =
new
GFFieldManager
();
73
}
74
return
fInstance
;
75
}
76
77
78
};
79
}
80
#endif
81
/** @} */
genf::GFFieldManager::fInstance
static GFFieldManager * fInstance
Definition:
GFFieldManager.h:41
genf
Generic Interface to magnetic fields in GENFIT.
Definition:
GFAbsBField.h:35
GFAbsBField.h
genf::GFFieldManager::getField
GFAbsBField * getField()
Definition:
GFFieldManager.h:45
genf::GFFieldManager::GFFieldManager
GFFieldManager()
Definition:
GFFieldManager.h:40
genf::GFFieldManager
Definition:
GFFieldManager.h:38
genf::GFAbsBField
Definition:
GFAbsBField.h:37
genf::GFFieldManager::getInstance
static GFFieldManager * getInstance()
Definition:
GFFieldManager.h:70
genf::GFAbsBField::get
virtual TVector3 get(const TVector3 &) const =0
override this is you concrete implementation
genf::GFFieldManager::getFieldVal
static TVector3 getFieldVal(const TVector3 &x)
Definition:
GFFieldManager.h:53
genf::GFFieldManager::fField
static GFAbsBField * fField
Definition:
GFFieldManager.h:42
b
static bool * b
Definition:
config.cpp:1043
genf::GFFieldManager::init
void init(GFAbsBField *b)
set the magntic field here. Magnetic field classes must be derived from GFAbsBField ...
Definition:
GFFieldManager.h:66
train.x
list x
Definition:
train.py:276
endl
QTextStream & endl(QTextStream &s)
Definition:
qtextstream.cpp:2030
Generated by
1.8.11