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
) { cerr <<
"-E- No field parameters available!"
<< endl; }
47
else
{
48
// Instantiate correct field type
49
Int_t fType =
fFieldPar
->
GetType
();
50
if
(fType == 0) fMagneticField =
new
CbmFieldConst
(
fFieldPar
);
51
else
if
(fType == 1)
52
fMagneticField =
new
CbmFieldMap
(
fFieldPar
);
53
else
if
(fType == 2)
54
fMagneticField =
new
CbmFieldMapSym2
(
fFieldPar
);
55
else
if
(fType == 3)
56
fMagneticField =
new
CbmFieldMapSym3
(
fFieldPar
);
57
else
if
(fType ==
kTypeDistorted
)
58
fMagneticField =
new
CbmFieldMapDistorted
(
fFieldPar
);
59
else
if
(fType == 5)
60
fMagneticField =
new
CbmFieldMapSym1
(
fFieldPar
);
61
else
if
(fType == 6)
62
fMagneticField =
new
CbmBsField
(
fFieldPar
);
63
else
64
cerr <<
"-W- FairRunAna::GetField: Unknown field type "
<< fType << endl;
65
cout <<
"New field at "
<< fMagneticField <<
", type "
<< fType << endl;
66
// Initialise field
67
if
(fMagneticField) {
68
fMagneticField->Init();
69
fMagneticField->Print(
""
);
70
}
71
}
72
return
fMagneticField;
73
}
74
75
76
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
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:38
CbmFieldPar
Definition
CbmFieldPar.h:35
CbmFieldPar::GetType
Int_t GetType() const
Definition
CbmFieldPar.h:61
core
field
CbmFieldCreator.cxx
Generated on Mon Feb 3 2025 23:03:51 for CbmRoot by
1.12.0