#include <ShipGoliathField.h>
|
| ShipGoliathField () |
|
| ShipGoliathField (const char *name) |
|
virtual | ~ShipGoliathField () |
|
void | Init (const char *fieldfile) |
|
void | getpos (TString vol, TVector3 &bot, TVector3 &top) const |
| return value at position
|
|
void | close () |
|
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) |
|
virtual Double_t | GetBz (Double_t x, Double_t y, Double_t z) |
|
virtual void | Print () |
|
void | sethistbxyz (TH3D *histbx, TH3D *histby, TH3D *histbz) |
|
TH3D * | gethistbx () const |
|
TH3D * | gethistby () const |
|
TH3D * | gethistbz () const |
|
◆ ShipGoliathField() [1/2]
ShipGoliathField::ShipGoliathField |
( |
| ) |
|
◆ ShipGoliathField() [2/2]
ShipGoliathField::ShipGoliathField |
( |
const char * |
name | ) |
|
Standard constructor
- Parameters
-
Definition at line 35 of file ShipGoliathField.cxx.
36 : FairField(name)
37{
38}
◆ ~ShipGoliathField()
ShipGoliathField::~ShipGoliathField |
( |
| ) |
|
|
virtual |
◆ ClassDef()
◆ close()
void ShipGoliathField::close |
( |
| ) |
|
◆ GetBx()
Double_t ShipGoliathField::GetBx |
( |
Double_t |
x, |
|
|
Double_t |
y, |
|
|
Double_t |
z |
|
) |
| |
|
virtual |
Get components of field at a given point
- Parameters
-
x,y,z | Point coordinates [cm] |
Definition at line 136 of file ShipGoliathField.cxx.
136 {
137 Double_t bx=0.;
138 TH3D* hbx;
139
141 return bx;}
142
144 Int_t binx = hbx->GetXaxis()->FindBin(x);
145 Int_t biny = hbx->GetYaxis()->FindBin(y);
146 Int_t binz = hbx->GetZaxis()->FindBin(z - 350.75);
147 bx=hbx->GetBinContent(binx,biny,binz)*
tesla;
148
149 return bx;
150}
◆ GetBy()
Double_t ShipGoliathField::GetBy |
( |
Double_t |
x, |
|
|
Double_t |
y, |
|
|
Double_t |
z |
|
) |
| |
|
virtual |
Definition at line 156 of file ShipGoliathField.cxx.
156 {
157 Double_t by=0.;
158 TH3D* hby;
159
161 return by;}
163 Int_t binx = hby->GetXaxis()->FindBin(x);
164 Int_t biny = hby->GetYaxis()->FindBin(y);
165 Int_t binz = hby->GetZaxis()->FindBin(z- 350.75);
166 by=hby->GetBinContent(binx,biny,binz)*
tesla;
167 return by;
168}
◆ GetBz()
Double_t ShipGoliathField::GetBz |
( |
Double_t |
x, |
|
|
Double_t |
y, |
|
|
Double_t |
z |
|
) |
| |
|
virtual |
Definition at line 175 of file ShipGoliathField.cxx.
175 {
176 Double_t bz=0.;
177 TH3D* hbz;
178
180 return bz;}
181
183 Int_t binx = hbz->GetXaxis()->FindBin(x);
184 Int_t biny = hbz->GetYaxis()->FindBin(y);
185 Int_t binz = hbz->GetZaxis()->FindBin(z- 350.75);
186 bz=hbz->GetBinContent(binx,biny,binz)*
tesla;
187 return bz;
188}
◆ gethistbx()
TH3D * ShipGoliathField::gethistbx |
( |
| ) |
const |
|
inline |
◆ gethistby()
TH3D * ShipGoliathField::gethistby |
( |
| ) |
const |
|
inline |
◆ gethistbz()
TH3D * ShipGoliathField::gethistbz |
( |
| ) |
const |
|
inline |
◆ getpos()
void ShipGoliathField::getpos |
( |
TString |
vol, |
|
|
TVector3 & |
bot, |
|
|
TVector3 & |
top |
|
) |
| const |
return value at position
Definition at line 103 of file ShipGoliathField.cxx.
103 {
104 std::cout<<"ShipGoliathField::getpos: GetCurrentNavigator volname "<<volname<<std::endl;
106 if (gGeoManager) {
107 nav = gGeoManager->GetCurrentNavigator();}
108 else { std::cout<<"No geomanager"<<std::endl;}
109 std::cout<<"ShipGoliathField::getpos: cd to volume "<<volname<<std::endl;
110 Bool_t
rc =
nav->cd(volname);
111 if (not rc){
112 cout << "ShipGoliathfield::getpos, TGeoNavigator failed "<<volname<<endl;
113 return;
114 }
115 std::cout<<"ShipGoliathField::getpos GetCurrentNode"<<std::endl;
116 TGeoNode* W =
nav->GetCurrentNode();
117 TGeoBBox*
S =
dynamic_cast<TGeoBBox*
>(W->GetVolume()->GetShape());
118 Double_t
top[3] = {
S->GetDX(),
S->GetDY(),
S->GetDZ()};
119 Double_t bot[3] = {-
S->GetDX(),-
S->GetDY(),-
S->GetDZ()};
120 Double_t Gtop[3],Gbot[3];
121 nav->LocalToMaster(top, Gtop);
122 nav->LocalToMaster(bot, Gbot);
123 vtop.SetXYZ(Gtop[0],Gtop[1],Gtop[2]);
124 vbot.SetXYZ(Gbot[0],Gbot[1],Gbot[2]);
125}
◆ Init()
void ShipGoliathField::Init |
( |
const char * |
fieldfile | ) |
|
Definition at line 65 of file ShipGoliathField.cxx.
65 {
66
68
69
70 TH3D* histbx= (TH3D*)
fieldmap->Get(
"Bx");
71 TH3D* histby= (TH3D*)
fieldmap->Get(
"By");
72 TH3D* histbz= (TH3D*)
fieldmap->Get(
"Bz");
73 xmin = histbx->GetXaxis()->GetXmin();
74 xmax = histbx->GetXaxis()->GetXmax();
75 ymin = histbx->GetYaxis()->GetXmin();
76 ymax = histbx->GetYaxis()->GetXmax();
77 zmin = histbx->GetZaxis()->GetXmin();
78 zmax = histbx->GetZaxis()->GetXmax();
79
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100}
void sethistbxyz(TH3D *histbx, TH3D *histby, TH3D *histbz)
◆ Print()
void ShipGoliathField::Print |
( |
| ) |
|
|
virtual |
Screen output
Definition at line 196 of file ShipGoliathField.cxx.
196 {
197 cout << "======================================================" << endl;
198 cout << "---- " << fTitle << " : " << fName << endl;
199 cout << "----" << endl;
200 cout << "---- Field type : constant" << endl;
201 cout << "----" << endl;
202 cout << "---- Field regions : " << endl;
203 cout.precision(4);
204 cout << "======================================================" << endl;
205}
◆ sethistbxyz()
void ShipGoliathField::sethistbxyz |
( |
TH3D * |
histbx, |
|
|
TH3D * |
histby, |
|
|
TH3D * |
histbz |
|
) |
| |
|
inline |
◆ cm
Float_t ShipGoliathField::cm = 1 |
◆ coords
Double_t ShipGoliathField::coords[13][6] |
◆ fhistbx
TH3D* ShipGoliathField::fhistbx |
|
private |
◆ fhistby
TH3D* ShipGoliathField::fhistby |
|
private |
◆ fhistbz
TH3D* ShipGoliathField::fhistbz |
|
private |
◆ fieldmap
TFile* ShipGoliathField::fieldmap = NULL |
◆ fMiddle
double ShipGoliathField::fMiddle |
|
private |
◆ fOrient
int ShipGoliathField::fOrient |
|
private |
◆ fPeak
double ShipGoliathField::fPeak |
|
private |
◆ kilogauss
Float_t ShipGoliathField::kilogauss = 1. |
Float_t ShipGoliathField::m = 100*cm |
◆ mm
Float_t ShipGoliathField::mm = 0.1*cm |
◆ tesla
Float_t ShipGoliathField::tesla = 10*kilogauss |
◆ xmax
Double_t ShipGoliathField::xmax |
|
private |
◆ xmin
Double_t ShipGoliathField::xmin |
|
private |
◆ ymax
Double_t ShipGoliathField::ymax |
|
private |
◆ ymin
Double_t ShipGoliathField::ymin |
|
private |
◆ zmax
Double_t ShipGoliathField::zmax |
|
private |
◆ zmin
Double_t ShipGoliathField::zmin |
|
private |
The documentation for this class was generated from the following files: