FairRoot/PandaRoot
PndRichCalDbPar.cxx
Go to the documentation of this file.
1 #include <iostream>
2 #include "PndConstField.h"
3 #include "PndRichCalDb.h"
4 #include "PndRichCalDbPar.h"
5 #include "FairParamList.h"
6 #include "PndMultiField.h"
7 #include "TObjArray.h"
8 
9 using namespace std;
10 
11 // ------ Constructor --------------------------------------------------
12 PndRichCalDbPar::PndRichCalDbPar(const char* name, const char* title,
13  const char* context)
14  : FairParGenericSet(name, title, context),
15  fType(-1),
16  fPmin(0),
17  fPmax(0),
18  fXmin(0),
19  fXmax(0),
20  fYmin(0),
21  fYmax(0),
22  fTmin(0),
23  fTmax(0),
24  fFmin(0),
25  fFmax(0),
26  fBetaMean(0),
27  fBetaSig(0),
28  fBetaEff(0) ,
29  fMapName(TString(""))
30 
31 {
32 }
33 // -------------------------------------------------------------------------
34 
36  : fType(-1),
37  fPmin(0),
38  fPmax(0),
39  fXmin(0),
40  fXmax(0),
41  fYmin(0),
42  fYmax(0),
43  fTmin(0),
44  fTmax(0),
45  fFmin(0),
46  fFmax(0),
47  fBetaMean(0),
48  fBetaSig(0),
49  fBetaEff(0),
50  fMapName(TString(""))
51 {
52 }
53 // -------------------------------------------------------------------------
54 
55 // ------ Destructor ---------------------------------------------------
57 // -------------------------------------------------------------------------
58 
59 
60 
61 // ------ Put parameters -----------------------------------------------
62 void PndRichCalDbPar::putParams(FairParamList* list) {
63 
64  if ( ! list ) return;
65 
66  list->add("Field Type", fType);
67 
68  if ( fType == 0 ) { // constant field
69  list->add("Cal db min p", fPmin);
70  list->add("Cal db max p", fPmax);
71  list->add("Cal db min x", fXmin);
72  list->add("Cal db max x", fXmax);
73  list->add("Cal db min y", fYmin);
74  list->add("Cal db max y", fYmax);
75  list->add("Cal db min t", fTmin);
76  list->add("Cal db max t", fTmax);
77  list->add("Cal db min f", fFmin);
78  list->add("Cal db max f", fFmax);
79  list->add("Cal db BetaMean", fBetaMean);
80  list->add("Cal db BetaSig", fBetaSig);
81  list->add("Cal db BetaEff", fBetaEff);
82  }
83 
84 }
85 // -------------------------------------------------------------------------
86 
87 
88 
89 // -------- Get parameters ---------------------------------------------
90 Bool_t PndRichCalDbPar::getParams(FairParamList* list) {
91 
92  if ( ! list ) return kFALSE;
93 
94  if ( ! list->fill("Cal db Type", &fType) ) return kFALSE;
95 
96  if ( fType == 0 ) { // constant field
97  if ( ! list->fill("Cal db min p", &fPmin) ) return kFALSE;
98  if ( ! list->fill("Cal db max p", &fPmax) ) return kFALSE;
99  if ( ! list->fill("Cal db min x", &fXmin) ) return kFALSE;
100  if ( ! list->fill("Cal db max x", &fXmax) ) return kFALSE;
101  if ( ! list->fill("Cal db min y", &fYmin) ) return kFALSE;
102  if ( ! list->fill("Cal db max y", &fYmax) ) return kFALSE;
103  if ( ! list->fill("Cal db min t", &fTmin) ) return kFALSE;
104  if ( ! list->fill("Cal db max t", &fTmax) ) return kFALSE;
105  if ( ! list->fill("Cal db min f", &fFmin) ) return kFALSE;
106  if ( ! list->fill("Cal db max f", &fFmax) ) return kFALSE;
107  if ( ! list->fill("Cal db BetaMean", &fBetaMean) ) return kFALSE;
108  if ( ! list->fill("Cal db BetaSig", &fBetaSig) ) return kFALSE;
109  if ( ! list->fill("Cal db BetaEff", &fBetaEff) ) return kFALSE;
110  }
111 
112  return kTRUE;
113 
114 }
115 // -------------------------------------------------------------------------
116 
117 
118 
119 // --------- Set parameters from FairField ------------------------------
120 void PndRichCalDbPar::SetParameters(FairField* field) {
121 
122  if ( ! field ) {
123  cerr << "-W- PndRichCalDbPar::SetParameters: Empty field pointer!" << endl;
124  return;
125  }
126 
127  fType = field->GetType();
128 /*
129  if ( fType == 0 ) { // constant field
130  PndConstField* fieldConst = (PndConstField*) field;
131  fBx = fieldConst->GetBx();
132  fBy = fieldConst->GetBy();
133  fBz = fieldConst->GetBz();
134  fXmin = fieldConst->GetXmin();
135  fXmax = fieldConst->GetXmax();
136  fYmin = fieldConst->GetYmin();
137  fYmax = fieldConst->GetYmax();
138  fZmin = fieldConst->GetZmin();
139  fZmax = fieldConst->GetZmax();
140  fMapName = "";
141  fPosX = fPosY = fPosZ = fScale = 0.;
142  }
143 
144  else if ( fType >=1 && fType <= 4 ) { // field map
145  PndRichCalDb* fieldMap = (PndRichCalDb*) field;
146  fBx = fBy = fBz = 0.;
147  fXmin = fXmax = fYmin = fYmax = fZmin = fZmax = 0.;
148 
149  fMapName = field->GetName();
150  fPosX = fieldMap->GetPositionX();
151  fPosY = fieldMap->GetPositionY();
152  fPosZ = fieldMap->GetPositionZ();
153  fScale = fieldMap->GetScale();
154  } else if (fType ==5) {
155 
156  PndMultiField *fMulti=(PndMultiField *)field;
157  TObjArray *fieldlist = fMulti->GetFieldList();
158  TIterator* FieldIter = fieldlist->MakeIterator();
159  FieldIter->Reset();
160  FairField *fi=0;
161  while( (fi = (FairField*)FieldIter->Next() ) ) {
162  SetParameters(fi);
163  }
164 
165  delete FieldIter;
166  }else {
167  cerr << "-W- PndRichCalDbPar::SetParameters: Unknown field type "
168  << fType << "!" << endl;
169  fBx = fBy = fBz = 0.;
170  fXmin = fXmax = fYmin = fYmax = fZmin = fZmax = 0.;
171  fMapName = "";
172  fPosX = fPosY = fPosZ = fScale = 0.;
173  }
174 */
175  return;
176 
177 }
178 // -------------------------------------------------------------------------
179 
180 
181 
182 
183 
184 
186 
virtual void putParams(FairParamList *list)
TString name
void SetParameters(FairField *field)
virtual Bool_t getParams(FairParamList *list)
ClassImp(PndAnaContFact)