CbmRoot
Loading...
Searching...
No Matches
CbmFieldCreator.cxx
Go to the documentation of this file.
1
/* Copyright (C) 2007-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2
SPDX-License-Identifier: GPL-3.0-only
3
Authors: Mohammad Al-Turany [committer], Florian Uhlig */
4
5
#include "
CbmFieldCreator.h
"
6
7
#include "
CbmBsField.h
"
// for CbmBsField
8
#include "
CbmFieldConst.h
"
// for CbmFieldConst
9
#include "
CbmFieldMap.h
"
// for CbmFieldMap
10
#include "
CbmFieldMapDistorted.h
"
// for CbmFieldMapDistorted
11
#include "
CbmFieldMapSym1.h
"
// for CbmFieldMapSym1
12
#include "
CbmFieldMapSym2.h
"
// for CbmFieldMapSym2
13
#include "
CbmFieldMapSym3.h
"
// for CbmFieldMapSym3
14
#include "
CbmFieldPar.h
"
// for CbmFieldPar, kTypeDistorted
15
16
#include <FairField.h>
// for FairField
17
#include <FairFieldFactory.h>
// for FairFieldFactory
18
#include <FairRunAna.h>
// for FairRunAna
19
#include <FairRuntimeDb.h>
// for FairRuntimeDb
20
21
#include <RtypesCore.h>
// for Int_t
22
23
#include <iostream>
// for operator<<, basic_ostream, endl
24
25
using
std::cerr;
26
using
std::cout;
27
using
std::endl;
28
29
static
CbmFieldCreator
gCbmFieldCreator
;
30
31
CbmFieldCreator::CbmFieldCreator
() : FairFieldFactory(),
fFieldPar
(nullptr) {}
32
33
CbmFieldCreator::~CbmFieldCreator
() {}
34
35
void
CbmFieldCreator::SetParm
()
36
{
37
FairRunAna* Run = FairRunAna::Instance();
38
FairRuntimeDb* RunDB = Run->GetRuntimeDb();
39
fFieldPar
= (
CbmFieldPar
*) RunDB->getContainer(
"CbmFieldPar"
);
40
}
41
42
FairField*
CbmFieldCreator::createFairField
()
43
{
44
FairField* fMagneticField = 0;
45
46
if
(!
fFieldPar
) {
47
cerr <<
"-E- No field parameters available!"
<< endl;
48
}
49
else
{
50
// Instantiate correct field type
51
Int_t
fType =
fFieldPar
->GetType();
52
if
(fType == 0)
53
fMagneticField =
new
CbmFieldConst
(
fFieldPar
);
54
else
if
(fType == 1)
55
fMagneticField =
new
CbmFieldMap
(
fFieldPar
);
56
else
if
(fType == 2)
57
fMagneticField =
new
CbmFieldMapSym2
(
fFieldPar
);
58
else
if
(fType == 3)
59
fMagneticField =
new
CbmFieldMapSym3
(
fFieldPar
);
60
else
if
(fType ==
kTypeDistorted
)
61
fMagneticField =
new
CbmFieldMapDistorted
(
fFieldPar
);
62
else
if
(fType == 5)
63
fMagneticField =
new
CbmFieldMapSym1
(
fFieldPar
);
64
else
if
(fType == 6)
65
fMagneticField =
new
CbmBsField
(
fFieldPar
);
66
else
67
cerr <<
"-W- FairRunAna::GetField: Unknown field type "
<< fType << endl;
68
cout <<
"New field at "
<< fMagneticField <<
", type "
<< fType << endl;
69
// Initialise field
70
if
(fMagneticField) {
71
fMagneticField->Init();
72
fMagneticField->Print(
""
);
73
}
74
}
75
return
fMagneticField;
76
}
77
78
79
ClassImp
(
CbmFieldCreator
)
CbmBsField.h
ClassImp
ClassImp(CbmConverterManager)
CbmFieldConst.h
gCbmFieldCreator
static CbmFieldCreator gCbmFieldCreator
Definition
CbmFieldCreator.cxx:29
CbmFieldCreator.h
CbmFieldMapDistorted.h
CbmFieldMapSym1.h
CbmFieldMapSym2.h
CbmFieldMapSym3.h
CbmFieldMap.h
CbmFieldPar.h
kTypeDistorted
const int kTypeDistorted
Definition
CbmFieldPar.h:33
Int_t
int Int_t
Definition
RootTypesDef.h:16
CbmBsField
Definition
CbmBsField.h:37
CbmFieldConst
Definition
CbmFieldConst.h:32
CbmFieldCreator
Definition
CbmFieldCreator.h:21
CbmFieldCreator::createFairField
virtual FairField * createFairField()
Definition
CbmFieldCreator.cxx:42
CbmFieldCreator::fFieldPar
CbmFieldPar * fFieldPar
Definition
CbmFieldCreator.h:31
CbmFieldCreator::SetParm
virtual void SetParm()
Definition
CbmFieldCreator.cxx:35
CbmFieldCreator::~CbmFieldCreator
virtual ~CbmFieldCreator()
Definition
CbmFieldCreator.cxx:33
CbmFieldCreator::CbmFieldCreator
CbmFieldCreator()
Definition
CbmFieldCreator.cxx:31
CbmFieldMapDistorted
Definition
CbmFieldMapDistorted.h:24
CbmFieldMapSym1
Definition
CbmFieldMapSym1.h:37
CbmFieldMapSym2
Definition
CbmFieldMapSym2.h:39
CbmFieldMapSym3
Definition
CbmFieldMapSym3.h:39
CbmFieldMap
Definition
CbmFieldMap.h:39
CbmFieldPar
Definition
CbmFieldPar.h:35
core
field
CbmFieldCreator.cxx
Generated on Fri Jan 30 2026 23:05:25 for CbmRoot by
1.13.2