SND@LHC Software
Loading...
Searching...
No Matches
ShipFieldPar.cxx
Go to the documentation of this file.
1#include "ShipFieldPar.h"
2
3#include "ShipConstField.h"
4#include "FairParamList.h"
5
6#include <iostream>
7using std::cout;
8using std::cerr;
9using std::endl;
10
11const int kMaxLen = 2048;
12
13// ------ Constructor --------------------------------------------------
14ShipFieldPar::ShipFieldPar(const char* name, const char* title,
15 const char* context)
16 : FairParGenericSet(name, title, context),
17 fType(-1),
18 fXmin(0.),
19 fXmax(0.),
20 fYmin(0.),
21 fYmax(0.),
22 fZmin(0.),
23 fZmax(0.),
24 fBx(0.),
25 fBy(0.),
26 fBz(0.),
27 fMapName(""),
28 fPosX(0.),
29 fPosY(0.),
30 fPosZ(0.),
31 fScale(0.),
32 fPeak(0.),
33 fMiddle(0.)
34
35{
36}
37// -------------------------------------------------------------------------
38
40 : FairParGenericSet(),
41 fType(-1),
42 fXmin(0.),
43 fXmax(0.),
44 fYmin(0.),
45 fYmax(0.),
46 fZmin(0.),
47 fZmax(0.),
48 fBx(0.),
49 fBy(0.),
50 fBz(0.),
51 fMapName(""),
52 fPosX(0.),
53 fPosY(0.),
54 fPosZ(0.),
55 fScale(0.),
56 fPeak(0.),
57 fMiddle(0.)
58
59{
60}
61// -------------------------------------------------------------------------
62
63// ------ Destructor ---------------------------------------------------
65// -------------------------------------------------------------------------
66
67
68
69// ------ Put parameters -----------------------------------------------
70void ShipFieldPar::putParams(FairParamList* list) {
71
72 if ( ! list ) return;
73
74 list->add("Field Type", fType);
75
76 if ( fType == 0 ) { // constant field
77 list->add("Field min x", fXmin);
78 list->add("Field max x", fXmax);
79 list->add("Field min y", fYmin);
80 list->add("Field max y", fYmax);
81 list->add("Field min z", fZmin);
82 list->add("Field max z", fZmax);
83 list->add("Field Bx", fBx);
84 list->add("Field By", fBy);
85 list->add("Field Bz", fBz);
86 } else if (fType >=1 && fType <= kMaxFieldMapType) { //
87 list->add("Field Peak", fPeak);
88 list->add("Field Middle", fMiddle);
89 } else if (fType >=2 && fType <= kMaxFieldMapType) { // field map
90 list->add("Field map name", fMapName);
91 list->add("Field x position", fPosX);
92 list->add("Field y position", fPosY);
93 list->add("Field z position", fPosZ);
94 list->add("Field scaling factor", fScale);
95
96 }
97
98}
99// -------------------------------------------------------------------------
100
101
102
103// -------- Get parameters ---------------------------------------------
104Bool_t ShipFieldPar::getParams(FairParamList* list) {
105
106 if ( ! list ) return kFALSE;
107
108 if ( ! list->fill("Field Type", &fType) ) return kFALSE;
109
110 if ( fType == 0 ) { // constant field
111 if ( ! list->fill("Field min x", &fXmin) ) return kFALSE;
112 if ( ! list->fill("Field max x", &fXmax) ) return kFALSE;
113 if ( ! list->fill("Field min y", &fYmin) ) return kFALSE;
114 if ( ! list->fill("Field max y", &fYmax) ) return kFALSE;
115 if ( ! list->fill("Field min z", &fZmin) ) return kFALSE;
116 if ( ! list->fill("Field max z", &fZmax) ) return kFALSE;
117 if ( ! list->fill("Field Bx", &fBx) ) return kFALSE;
118 if ( ! list->fill("Field By", &fBy) ) return kFALSE;
119 if ( ! list->fill("Field Bz", &fBz) ) return kFALSE;
120
121 } else if (fType >=1 && fType <= kMaxFieldMapType) {
122
123 if ( ! list->fill("Field Peak", &fPeak) ) return kFALSE;
124 if ( ! list->fill("Field Middle", &fMiddle) ) return kFALSE;
125
126 } else if (fType >=2 && fType <= kMaxFieldMapType) { // field map
127 Text_t mapName[80];
128 if ( ! list->fill("Field map name", mapName, 80) ) return kFALSE;
129 fMapName = mapName;
130 if ( ! list->fill("Field x position", &fPosX) ) return kFALSE;
131 if ( ! list->fill("Field y position", &fPosY) ) return kFALSE;
132 if ( ! list->fill("Field z position", &fPosZ) ) return kFALSE;
133 if ( ! list->fill("Field scaling factor", &fScale) ) return kFALSE;
134
135 }
136
137 return kTRUE;
138
139}
140// -------------------------------------------------------------------------
141
142
143
144void ShipFieldPar::SetParameters(FairField* field) {
145
146 if ( ! field ) {
147 cerr << "-W- ShipFieldPar::SetParameters: Empty field pointer!" << endl;
148 return;
149 }
150
151 fType = field->GetType();
152
153 if ( fType == 0 ) { // constant field
154 ShipConstField* fieldConst = (ShipConstField*) field;
155 fBx = fieldConst->GetBx();
156 fBy = fieldConst->GetBy();
157 fBz = fieldConst->GetBz();
158 fXmin = fieldConst->GetXmin();
159 fXmax = fieldConst->GetXmax();
160 fYmin = fieldConst->GetYmin();
161 fYmax = fieldConst->GetYmax();
162 fZmin = fieldConst->GetZmin();
163 fZmax = fieldConst->GetZmax();
164 fMapName = "";
165 fPosX = fPosY = fPosZ = fScale = 0.;
166 } else {
167 cerr << "-W- ShipFieldPar::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
const int kMaxLen
const int kMaxFieldMapType
Definition ShipFieldPar.h:9
Double_t GetXmin() const
virtual Double_t GetBx(Double_t x, Double_t y, Double_t z)
virtual Double_t GetBy(Double_t x, Double_t y, Double_t z)
Double_t GetZmax() const
virtual Double_t GetBz(Double_t x, Double_t y, Double_t z)
Double_t GetYmax() const
Double_t GetYmin() const
Double_t GetZmin() const
Double_t GetXmax() const
TString fMapName
Double_t fYmin
Double_t fBy
Double_t fZmin
Double_t fPosZ
Double_t fPeak
Double_t fMiddle
Double_t fPosX
Double_t fYmax
virtual void putParams(FairParamList *list)
Double_t fBz
Double_t fZmax
Double_t fBx
Double_t fXmax
virtual Bool_t getParams(FairParamList *list)
void SetParameters(FairField *field)
Double_t fScale
Double_t fXmin
Double_t fPosY
ClassImp(ecalContFact) ecalContFact