BmnRoot 26.10.0-210-gc52d34b0
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnFieldCreator.cxx
Go to the documentation of this file.
1#include "BmnFieldCreator.h"
2
3#include "BmnFieldConst.h"
4#include "BmnFieldMap.h"
5#include "BmnFieldMapSym3.h"
6#include "BmnNewFieldMap.h"
7#include "FairRunAna.h"
8#include "FairRuntimeDb.h"
9
10#include <iostream>
11using std::cerr;
12using std::cout;
13using std::endl;
14
16
19 , fFieldPar(NULL)
20{
21#ifdef FairRoot_18_8_0
22 fgRinstance = this;
23#else
24 fCreator = this;
25#endif
26}
27
29
31{
32 FairRunAna* Run = FairRunAna::Instance();
33 FairRuntimeDb* RunDB = Run->GetRuntimeDb();
34 fFieldPar = (BmnFieldPar*)RunDB->getContainer("BmnFieldPar");
35}
36
38{
39 FairField* fMagneticField = 0;
40
41 if (!fFieldPar)
42 cerr << "-E- No field parameters available!" << endl;
43 else {
44 // Instantiate correct field type
45 Int_t fType = fFieldPar->GetType();
46 if (fType == 0)
47 fMagneticField = new BmnFieldConst(fFieldPar);
48 else if (fType == 1)
49 fMagneticField = new BmnNewFieldMap(fFieldPar);
50 else if (fType == 3)
51 fMagneticField = new BmnFieldMapSym3(fFieldPar);
52 else
53 cerr << "-W- FairRunAna::GetField: Unknown field type " << fType << endl;
54
55 // cout << "New field at " << fMagneticField << ", type " << fType << endl;
56 // Initialise field
57 if (fMagneticField) {
58 fMagneticField->Init();
59 // fMagneticField->Print();
60 }
61 }
62 return fMagneticField;
63}
static BmnFieldCreator gBmnFieldCreator
int Int_t
virtual ~BmnFieldCreator()
virtual FairField * createFairField()
BmnFieldPar * fFieldPar
virtual void SetParm()
BmnFieldMapSym3.h.
Field Map does not have any symmetries w.r.t coordinate axises.