BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnMultiFieldPar.cxx
Go to the documentation of this file.
1#include "BmnMultiFieldPar.h"
2
3#include "BmnConstPar.h"
4#include "BmnFieldConst.h"
5#include "BmnFieldMap.h"
6#include "BmnFieldPar.h"
7#include "FairParamList.h"
8#include "FairRun.h"
9#include "FairRuntimeDb.h"
10
11// ------ Constructor --------------------------------------------------
12BmnMultiFieldPar::BmnMultiFieldPar(const char* name, const char* title, const char* context)
13 : BmnMapPar(name, title, context)
14{
15
16 fParArray = new TObjArray();
17}
18
19//-----------------------------------------------------------------------
21
22//-----------------------------------------------------------------------
24
25//-----------------------------------------------------------------------
26void BmnMultiFieldPar::putParams(FairParamList* list)
27{
28 if (!list)
29 return;
30 list->addObject("List of Field par", fParArray);
31 list->add("Field Type", fType);
32}
33
34//-----------------------------------------------------------------------
36{
37 if (!l->fillObject("list of fields Par", fParArray))
38 return kFALSE;
39 if (!l->fill("Field Type", &fType))
40 return kFALSE;
41
42 return kTRUE;
43}
44
45//-----------------------------------------------------------------------
47{
48 fType = 5;
49 FairRuntimeDb* rtdb = FairRuntimeDb::instance();
50 FairRun* fRun = FairRun::Instance();
51 BmnMultiField* fmField = (BmnMultiField*)field;
52 TObjArray* fArray = fmField->GetFieldList();
53 TIterator* Iter = fArray->MakeIterator();
54 Iter->Reset();
55 FairField* fField = NULL;
56 Int_t Type = -1;
57 while ((fField = (FairField*)Iter->Next())) {
58 Type = fField->GetType();
59 if (Type == 0) {
60 BmnFieldConst* fc = (BmnFieldConst*)fField;
61 BmnConstPar* cp = (BmnConstPar*)rtdb->getContainer("BmnConstPar");
62 cp->SetParameters(fc);
63 cp->setInputVersion(fRun->GetRunId(), 1);
64 fParArray->AddLast(cp);
65 }
66
67 else if (Type == 1)
68 {
69 BmnFieldMap* fm = (BmnFieldMap*)fField;
70 BmnFieldPar* fmp = (BmnFieldPar*)rtdb->getContainer("BmnFieldPar");
71 fmp->SetParameters(fm);
72 fmp->setInputVersion(fRun->GetRunId(), 1);
73 fParArray->AddLast(fmp);
74 }
75 }
76 delete Iter;
77}
bool Bool_t
int Int_t
constexpr Bool_t kFALSE
constexpr Bool_t kTRUE
void SetParameters(FairField *field)
Set parameters from FairField.
void SetParameters(FairField *field)
Set parameters from BmnField.
BmnMapPar(const char *name, const char *title, const char *context)
Standard constructor.
Definition BmnMapPar.cxx:11
Int_t fType
Field type 0 = constant field 1 = field map 2 = field map sym2 (symmetries in x and y) 3 = field map ...
Definition BmnMapPar.h:52
void putParams(FairParamList *list)
Put parameters.
BmnMultiFieldPar()
default constructor
Bool_t getParams(FairParamList *list)
Get parameters.
void SetParameters(FairField *field)
Set parameters from FairField.
TObjArray * fParArray
~BmnMultiFieldPar()
Destructor.
TObjArray * GetFieldList()
virtual void Reset()=0
virtual TObject * Next()=0
TIterator * MakeIterator(Bool_t dir=kIterForward) const override