BmnRoot
Loading...
Searching...
No Matches
BmnMultiFieldPar.cxx
Go to the documentation of this file.
1#include "BmnMultiFieldPar.h"
2#include "BmnFieldConst.h"
3#include "BmnConstPar.h"
4#include "FairParamList.h"
5#include "BmnFieldPar.h"
6#include "FairRuntimeDb.h"
7#include "FairRun.h"
8#include "BmnFieldMap.h"
9#include "BmnFieldPar.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 ) return;
29 list->addObject("List of Field par", fParArray);
30 list->add("Field Type", fType);
31}
32
33//-----------------------------------------------------------------------
34Bool_t BmnMultiFieldPar::getParams(FairParamList* l)
35{
36 if (!l->fillObject("list of fields Par",fParArray))return kFALSE;
37 if ( ! l->fill("Field Type", &fType) ) return kFALSE;
38
39 return kTRUE;
40}
41
42//-----------------------------------------------------------------------
44{
45 fType=5;
46 FairRuntimeDb *rtdb=FairRuntimeDb::instance();
47 FairRun *fRun= FairRun::Instance();
48 BmnMultiField *fmField = (BmnMultiField *)field;
49 TObjArray *fArray=fmField->GetFieldList();
50 TIterator *Iter=fArray->MakeIterator();
51 Iter->Reset();
52 FairField* fField = NULL;
53 Int_t Type=-1;
54 while( (fField = (FairField*)Iter->Next() ) ) {
55 Type=fField->GetType();
56 if(Type==0) {
57 BmnFieldConst *fc= (BmnFieldConst *)fField;
58 BmnConstPar *cp = (BmnConstPar*) rtdb->getContainer("BmnConstPar");
59 cp->SetParameters(fc);
60 cp->setInputVersion(fRun->GetRunId(),1);
61 fParArray->AddLast(cp);
62 }
63
64 else if(Type==1) {
65 BmnFieldMap *fm= (BmnFieldMap*)fField;
66 BmnFieldPar* fmp = (BmnFieldPar*) rtdb->getContainer("BmnFieldPar");
67 fmp->SetParameters(fm);
68 fmp->setInputVersion(fRun->GetRunId(),1);
69 fParArray->AddLast(fmp);
70 }
71 }
72 delete Iter;
73}
void SetParameters(FairField *field)
void SetParameters(FairField *field)
Int_t fType
Definition BmnMapPar.h:54
void putParams(FairParamList *list)
Bool_t getParams(FairParamList *list)
void SetParameters(FairField *field)
TObjArray * fParArray
TObjArray * GetFieldList()