BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
DrawField.C
Go to the documentation of this file.
1
3{
4
5 // TString file = "$VMCWORKDIR/input/FieldMap_1900.root";
6 TString file = "$VMCWORKDIR/input/FieldMap_1900_extrap.root";
7 TFile* myFile = TFile::Open(file);
8 TTreeReader myReader("Field_map", myFile);
9 TTreeReaderArray<Double_t> x(myReader, "field_points.X");
10 TTreeReaderArray<Double_t> y(myReader, "field_points.Y");
11 TTreeReaderArray<Double_t> z(myReader, "field_points.Z");
12 TTreeReaderArray<Double_t> bx(myReader, "field_points.Bx");
13 TTreeReaderArray<Double_t> by(myReader, "field_points.By");
14 TTreeReaderArray<Double_t> bz(myReader, "field_points.Bz");
15
16 Float_t fieldScale = -0.929; // minus just for plotting
17
18 TGraph2D* hBy_plane = new TGraph2D();
19 TGraph* hBy_proj = new TGraph();
20
21 Int_t pntNumber = 0;
22 Int_t cntr1 = 0;
23
24 while (myReader.Next()) {
25 if (pntNumber % 10000 == 0)
26 printf("pntNumber = %d\n", pntNumber);
27 pntNumber++;
28 for (Int_t i = 0; i < x.GetSize(); ++i) {
29 if (y[i] < 100 && y[i] > 50) {
30 if (x[i] < 1 && x[i] > 0) {
31 // hBy_plane->SetPoint(cntr1++, z[i], x[i], by[i] * fieldScale);
32 hBy_proj->SetPoint(cntr1++, z[i], by[i] * fieldScale);
33 }
34 }
35 }
36 }
37
38 gStyle->SetPalette(77);
39 gStyle->SetTitleFont(62, "xyz");
40 gStyle->SetTitleSize(0.05, "xyz");
41 gStyle->SetLabelFont(62, "xyz");
42 gStyle->SetLabelSize(0.04, "xyz");
43 auto c = new TCanvas("c", "c", 1000, 1000);
44 c->Divide(1, 1);
45 c->cd(1);
46 hBy_proj->Draw("AL");
47}
48
50{
51
52 TString file = "$VMCWORKDIR/input/FieldMap_1900_extrap.root";
53 TFile* myFile = TFile::Open(file);
54 TTreeReader myReader("Field_map", myFile);
55 TTreeReaderArray<Double_t> x(myReader, "field_points.X");
56 TTreeReaderArray<Double_t> y(myReader, "field_points.Y");
57 TTreeReaderArray<Double_t> z(myReader, "field_points.Z");
58 TTreeReaderArray<Double_t> bx(myReader, "field_points.Bx");
59 TTreeReaderArray<Double_t> by(myReader, "field_points.By");
60 TTreeReaderArray<Double_t> bz(myReader, "field_points.Bz");
61
62 Float_t fieldScale = -0.929; // minus just for plotting
63
64 TGraph* hBy_vs_z_minY_minX = new TGraph();
65 TGraph* hBy_vs_z_midY_minX = new TGraph();
66 TGraph* hBy_vs_z_maxY_minX = new TGraph();
67 TGraph* hBy_vs_z_minY_midX = new TGraph();
68 TGraph* hBy_vs_z_midY_midX = new TGraph();
69 TGraph* hBy_vs_z_maxY_midX = new TGraph();
70 TGraph* hBy_vs_z_minY_maxX = new TGraph();
71 TGraph* hBy_vs_z_midY_maxX = new TGraph();
72 TGraph* hBy_vs_z_maxY_maxX = new TGraph();
73
74 TGraph2D* hBx_min = new TGraph2D();
75 TGraph2D* hBx_mid = new TGraph2D();
76 TGraph2D* hBx_max = new TGraph2D();
77 TGraph2D* hBy_min = new TGraph2D();
78 TGraph2D* hBy_mid = new TGraph2D();
79 TGraph2D* hBy_max = new TGraph2D();
80 TGraph2D* hBz_min = new TGraph2D();
81 TGraph2D* hBz_mid = new TGraph2D();
82 TGraph2D* hBz_max = new TGraph2D();
83 hBx_min->SetTitle("-B_{x} component at bottom plane; Z, cm; X, cm; -B_{x}, kGs");
84 hBx_mid->SetTitle("-B_{x} component at middle plane; Z, cm; X, cm; -B_{x}, kGs");
85 hBx_max->SetTitle("-B_{x} component at upper plane; Z, cm; X, cm; -B_{x}, kGs");
86 hBy_min->SetTitle("-B_{y} component at bottom plane; Z, cm; X, cm; -B_{y}, kGs");
87 hBy_mid->SetTitle("-B_{y} component at middle plane; Z, cm; X, cm; -B_{y}, kGs");
88 hBy_max->SetTitle("-B_{y} component at upper plane; Z, cm; X, cm; -B_{y}, kGs");
89 hBz_min->SetTitle("-B_{z} component at bottom plane; Z, cm; X, cm; -B_{z}, kGs");
90 hBz_mid->SetTitle("-B_{z} component at middle plane; Z, cm; X, cm; -B_{z}, kGs");
91 hBz_max->SetTitle("-B_{z} component at upper plane; Z, cm; X, cm; -B_{z}, kGs");
92 hBy_vs_z_minY_minX->SetTitle("-B_{y} component vs Z for X = min && Y = min; Z, cm; -B_{y}, kGs");
93 hBy_vs_z_midY_minX->SetTitle("-B_{y} component vs Z for X = min && Y = mid; Z, cm; -B_{y}, kGs");
94 hBy_vs_z_maxY_minX->SetTitle("-B_{y} component vs Z for X = min && Y = max; Z, cm; -B_{y}, kGs");
95 hBy_vs_z_minY_midX->SetTitle("-B_{y} component vs Z for X = mid && Y = min; Z, cm; -B_{y}, kGs");
96 hBy_vs_z_midY_midX->SetTitle("-B_{y} component vs Z for X = mid && Y = mid; Z, cm; -B_{y}, kGs");
97 hBy_vs_z_maxY_midX->SetTitle("-B_{y} component vs Z for X = mid && Y = max; Z, cm; -B_{y}, kGs");
98 hBy_vs_z_minY_maxX->SetTitle("-B_{y} component vs Z for X = max && Y = min; Z, cm; -B_{y}, kGs");
99 hBy_vs_z_midY_maxX->SetTitle("-B_{y} component vs Z for X = max && Y = mid; Z, cm; -B_{y}, kGs");
100 hBy_vs_z_maxY_maxX->SetTitle("-B_{y} component vs Z for X = max && Y = max; Z, cm; -B_{y}, kGs");
101
102 Int_t pntNumber = 0;
103 Int_t iP_min = 0;
104 Int_t iP_mid = 0;
105 Int_t iP_max = 0;
106 Int_t cntr1 = 0;
107 Int_t cntr2 = 0;
108 Int_t cntr3 = 0;
109 Int_t cntr4 = 0;
110 Int_t cntr5 = 0;
111 Int_t cntr6 = 0;
112 Int_t cntr7 = 0;
113 Int_t cntr8 = 0;
114 Int_t cntr9 = 0;
115 while (myReader.Next()) {
116 if (pntNumber % 10000 == 0)
117 printf("pntNumber = %d\n", pntNumber);
118 pntNumber++;
119 for (Int_t i = 0; i < x.GetSize(); ++i) {
120 if (y[i] < 9 && y[i] > 8) {
121 hBx_mid->SetPoint(iP_mid, z[i], x[i], bx[i] * fieldScale);
122 hBy_mid->SetPoint(iP_mid, z[i], x[i], by[i] * fieldScale);
123 hBz_mid->SetPoint(iP_mid, z[i], x[i], bz[i] * fieldScale);
124 iP_mid++;
125 } else if (y[i] > 54) {
126 hBx_max->SetPoint(iP_max, z[i], x[i], bx[i] * fieldScale);
127 hBy_max->SetPoint(iP_max, z[i], x[i], by[i] * fieldScale);
128 hBz_max->SetPoint(iP_max, z[i], x[i], bz[i] * fieldScale);
129 iP_max++;
130 } else if (y[i] < -37) {
131 hBx_min->SetPoint(iP_min, z[i], x[i], bx[i] * fieldScale);
132 hBy_min->SetPoint(iP_min, z[i], x[i], by[i] * fieldScale);
133 hBz_min->SetPoint(iP_min, z[i], x[i], bz[i] * fieldScale);
134 iP_min++;
135 }
136 if (y[i] < 9 && y[i] > 8) {
137 if (x[i] < -155)
138 hBy_vs_z_midY_minX->SetPoint(cntr1++, z[i], by[i] * fieldScale);
139 if (x[i] > 144)
140 hBy_vs_z_midY_maxX->SetPoint(cntr2++, z[i], by[i] * fieldScale);
141 if (x[i] > -1 && x[i] < 1)
142 hBy_vs_z_midY_midX->SetPoint(cntr3++, z[i], by[i] * fieldScale);
143 }
144 if (y[i] > 54) {
145 if (x[i] < -155)
146 hBy_vs_z_maxY_minX->SetPoint(cntr4++, z[i], by[i] * fieldScale);
147 if (x[i] > 144)
148 hBy_vs_z_maxY_maxX->SetPoint(cntr5++, z[i], by[i] * fieldScale);
149 if (x[i] > -1 && x[i] < 1)
150 hBy_vs_z_maxY_midX->SetPoint(cntr6++, z[i], by[i] * fieldScale);
151 }
152 if (y[i] < -37) {
153 if (x[i] < -155)
154 hBy_vs_z_minY_minX->SetPoint(cntr7++, z[i], by[i] * fieldScale);
155 if (x[i] > 144)
156 hBy_vs_z_minY_maxX->SetPoint(cntr8++, z[i], by[i] * fieldScale);
157 if (x[i] > -1 && x[i] < 1)
158 hBy_vs_z_minY_midX->SetPoint(cntr9++, z[i], by[i] * fieldScale);
159 }
160 }
161 }
162 // hBx_min->SetPoint(iP_min++, -300, -150, 0);
163 // hBx_min->SetPoint(iP_min++, 500, +150, 0);`
164 // hBx_mid->SetPoint(iP_mid++, -300, -150, 0);
165 // hBx_mid->SetPoint(iP_mid++, 500, +150, 0);
166 // hBx_max->SetPoint(iP_max++, -300, -150, 0);
167 // hBx_max->SetPoint(iP_max++, 500, +150, 0);
168 // hBy_min->SetPoint(iP_min++, -300, -150, 0);
169 // hBy_min->SetPoint(iP_min++, 500, +150, 0);
170 // hBy_mid->SetPoint(iP_mid++, -300, -150, 0);
171 // hBy_mid->SetPoint(iP_mid++, 500, +150, 0);
172 // hBy_max->SetPoint(iP_max++, -300, -150, 0);
173 // hBy_max->SetPoint(iP_max++, 500, +150, 0);
174 // hBz_min->SetPoint(iP_min++, -300, -150, 0);
175 // hBz_min->SetPoint(iP_min++, 500, +150, 0);
176 // hBz_mid->SetPoint(iP_mid++, -300, -150, 0);
177 // hBz_mid->SetPoint(iP_mid++, 500, +150, 0);
178 // hBz_max->SetPoint(iP_max++, -300, -150, 0);
179 // hBz_max->SetPoint(iP_max++, 500, +150, 0);
180
181 gStyle->SetPalette(77);
182 gStyle->SetTitleFont(62, "xyz");
183 gStyle->SetTitleSize(0.05, "xyz");
184 gStyle->SetLabelFont(62, "xyz");
185 gStyle->SetLabelSize(0.04, "xyz");
186 auto c = new TCanvas("c", "c", 1000, 1000);
187 c->Divide(3, 3);
188 c->cd(1);
189 hBx_min->Draw("surf1");
190 c->cd(2);
191 hBx_mid->Draw("surf1");
192 c->cd(3);
193 hBx_max->Draw("surf1");
194 c->cd(4);
195 hBy_min->Draw("surf1");
196 c->cd(5);
197 hBy_mid->Draw("surf1");
198 c->cd(6);
199 hBy_max->Draw("surf1");
200 c->cd(7);
201 hBz_min->Draw("surf1");
202 c->cd(8);
203 hBz_mid->Draw("surf1");
204 c->cd(9);
205 hBz_max->Draw("surf1");
206
207 auto c1 = new TCanvas("c1", "c1", 1000, 1000);
208 c1->Divide(3, 3);
209 c1->cd(1);
210 hBy_vs_z_maxY_maxX->Draw("AL");
211 c1->cd(2);
212 hBy_vs_z_maxY_midX->Draw("AL");
213 c1->cd(3);
214 hBy_vs_z_maxY_minX->Draw("AL");
215 c1->cd(4);
216 hBy_vs_z_midY_maxX->Draw("AL");
217 c1->cd(5);
218 hBy_vs_z_midY_midX->Draw("AL");
219 c1->cd(6);
220 hBy_vs_z_midY_minX->Draw("AL");
221 c1->cd(7);
222 hBy_vs_z_minY_maxX->Draw("AL");
223 c1->cd(8);
224 hBy_vs_z_minY_midX->Draw("AL");
225 c1->cd(9);
226 hBy_vs_z_minY_minX->Draw("AL");
227}
228
230{
231
232 const Int_t nCoord = 3;
233
234 TString coordName[nCoord] = {"x", "y", "z"};
235
236 TGraph* hBOld_vs_X[nCoord];
237 TGraph* hBNew_vs_X[nCoord];
238 TGraph* hBOld_vs_Y[nCoord];
239 TGraph* hBNew_vs_Y[nCoord];
240 TGraph* hBOld_vs_Z[nCoord];
241 TGraph* hBNew_vs_Z[nCoord];
242 TGraph* hB_vs_X_Diff[nCoord];
243 TGraph* hB_vs_Y_Diff[nCoord];
244 TGraph* hB_vs_Z_Diff[nCoord];
245
246 for (Int_t iCoord = 0; iCoord < nCoord; ++iCoord) {
247 hBOld_vs_X[iCoord] = new TGraph();
248 hBNew_vs_X[iCoord] = new TGraph();
249 hBOld_vs_Y[iCoord] = new TGraph();
250 hBNew_vs_Y[iCoord] = new TGraph();
251 hBOld_vs_Z[iCoord] = new TGraph();
252 hBNew_vs_Z[iCoord] = new TGraph();
253 hBOld_vs_X[iCoord]->SetTitle(Form("B_{%s}^{old} component vs X for Z = 130 && Y = 0; X, cm; B_{y}^{old}, kGs",
254 coordName[iCoord].Data()));
255 hBNew_vs_X[iCoord]->SetTitle(Form("B_{%s}^{new} component vs X for Z = 130 && Y = 0; X, cm; B_{y}^{new}, kGs",
256 coordName[iCoord].Data()));
257 hBOld_vs_X[iCoord]->SetLineColor(kBlue);
258 hBNew_vs_X[iCoord]->SetLineColor(kRed);
259 hBNew_vs_X[iCoord]->SetLineWidth(2);
260 hBOld_vs_X[iCoord]->SetLineWidth(2);
261 hBOld_vs_Y[iCoord]->SetTitle(Form("B_{%s}^{old} component vs Y for Z = 130 && X = 0; Y, cm; B_{y}^{old}, kGs",
262 coordName[iCoord].Data()));
263 hBNew_vs_Y[iCoord]->SetTitle(Form("B_{%s}^{new} component vs Y for Z = 130 && X = 0; Y, cm; B_{y}^{new}, kGs",
264 coordName[iCoord].Data()));
265 hBOld_vs_Y[iCoord]->SetLineColor(kBlue);
266 hBNew_vs_Y[iCoord]->SetLineColor(kRed);
267 hBNew_vs_Y[iCoord]->SetLineWidth(2);
268 hBOld_vs_Y[iCoord]->SetLineWidth(2);
269 hBOld_vs_Z[iCoord]->SetTitle(
270 Form("B_{%s}^{old} component vs Z for X = 0 && Y = 0; Z, cm; B_{y}^{old}, kGs", coordName[iCoord].Data()));
271 hBNew_vs_Z[iCoord]->SetTitle(
272 Form("B_{%s}^{new} component vs Z for X = 0 && Y = 0; Z, cm; B_{y}^{new}, kGs", coordName[iCoord].Data()));
273 hBOld_vs_Z[iCoord]->SetLineColor(kBlue);
274 hBNew_vs_Z[iCoord]->SetLineColor(kRed);
275 hBNew_vs_Z[iCoord]->SetLineWidth(2);
276 hBOld_vs_Z[iCoord]->SetLineWidth(2);
277
278 hB_vs_X_Diff[iCoord] = new TGraph();
279 hB_vs_Y_Diff[iCoord] = new TGraph();
280 hB_vs_Z_Diff[iCoord] = new TGraph();
281 hB_vs_X_Diff[iCoord]->SetTitle(
282 Form("B_{%s} component difference vs X for Z = 130 && Y = 0; X, cm; B_{y}^{new} - B_{y}^{old}, kGs",
283 coordName[iCoord].Data()));
284 hB_vs_X_Diff[iCoord]->SetLineColor(kBlack);
285 hB_vs_X_Diff[iCoord]->SetLineWidth(2);
286 hB_vs_Y_Diff[iCoord]->SetTitle(
287 Form("B_{%s} component difference vs Y for Z = 130 && X = 0; Y, cm; B_{y}^{new} - B_{y}^{old}, kGs",
288 coordName[iCoord].Data()));
289 hB_vs_Y_Diff[iCoord]->SetLineColor(kBlack);
290 hB_vs_Y_Diff[iCoord]->SetLineWidth(2);
291 hB_vs_Z_Diff[iCoord]->SetTitle(
292 Form("B_{%s} component difference vs Z for X = 0 && Y = 0; Z, cm; B_{y}^{new} - B_{y}^{old}, kGs",
293 coordName[iCoord].Data()));
294 hB_vs_Z_Diff[iCoord]->SetLineColor(kBlack);
295 hB_vs_Z_Diff[iCoord]->SetLineWidth(2);
296 }
297
298 BmnFieldMap* magFieldNew = new BmnNewFieldMap("FieldMap_1900_extrap.root");
299 // BmnFieldMap* magFieldNew = new BmnNewFieldMap("FieldMap_1900_new_shifted.root");
300 Double_t fieldScaleNew = 0.929;
301 magFieldNew->SetScale(fieldScaleNew);
302 magFieldNew->Init();
303
304 BmnFieldMap* magFieldOld = new BmnNewFieldMap("field_sp41v5_ascii_Extrap.root");
305 Double_t fieldScaleOld = 1.861;
306 magFieldOld->SetScale(fieldScaleOld);
307 magFieldOld->Init();
308
309 const Float_t xMin = -100.0;
310 const Float_t xMax = 100.0;
311 const Float_t dx = 5.0;
312
313 const Float_t yMin = -37.0;
314 const Float_t yMax = 40.0;
315 const Float_t dy = 1.0;
316
317 const Float_t dz = 10.0;
318 const Float_t zMax = 500.0;
319 const Float_t zMin = -200.0;
320
321 Float_t x, y, z;
322
323 x = 0;
324 y = 0;
325 z = zMin;
326 while (z < zMax) {
327
328 Float_t bxOld = magFieldOld->GetBx(x, y, z);
329 Float_t bxNew = magFieldNew->GetBx(x, y, z);
330 Float_t byOld = magFieldOld->GetBy(x, y, z);
331 Float_t byNew = magFieldNew->GetBy(x, y, z);
332 Float_t bzOld = magFieldOld->GetBz(x, y, z);
333 Float_t bzNew = magFieldNew->GetBz(x, y, z);
334 // printf("(%4.2f, %4.2f, %4.2f):\t%4.2f |\t%4.2f |\t%4.2f \n", x, y, z, byNew, byOld, byNew - byOld);
335
336 hBOld_vs_Z[0]->SetPoint(hBOld_vs_Z[0]->GetN(), z, bxOld);
337 hBNew_vs_Z[0]->SetPoint(hBNew_vs_Z[0]->GetN(), z, bxNew);
338 hB_vs_Z_Diff[0]->SetPoint(hB_vs_Z_Diff[0]->GetN(), z, bxNew - bxOld);
339
340 hBOld_vs_Z[1]->SetPoint(hBOld_vs_Z[1]->GetN(), z, byOld);
341 hBNew_vs_Z[1]->SetPoint(hBNew_vs_Z[1]->GetN(), z, byNew);
342 hB_vs_Z_Diff[1]->SetPoint(hB_vs_Z_Diff[1]->GetN(), z, byNew - byOld);
343
344 hBOld_vs_Z[2]->SetPoint(hBOld_vs_Z[2]->GetN(), z, bzOld);
345 hBNew_vs_Z[2]->SetPoint(hBNew_vs_Z[2]->GetN(), z, bzNew);
346 hB_vs_Z_Diff[2]->SetPoint(hB_vs_Z_Diff[2]->GetN(), z, bzNew - bzOld);
347
348 z += dz;
349 }
350
351 x = xMin;
352 y = 0;
353 z = 130;
354 while (x < xMax) {
355
356 Float_t bxOld = magFieldOld->GetBx(x, y, z);
357 Float_t bxNew = magFieldNew->GetBx(x, y, z);
358 Float_t byOld = magFieldOld->GetBy(x, y, z);
359 Float_t byNew = magFieldNew->GetBy(x, y, z);
360 Float_t bzOld = magFieldOld->GetBz(x, y, z);
361 Float_t bzNew = magFieldNew->GetBz(x, y, z);
362 // printf("(%4.2f, %4.2f, %4.2f):\t%4.2f |\t%4.2f |\t%4.2f \n", x, y, z, byNew, byOld, byNew - byOld);
363
364 hBOld_vs_X[0]->SetPoint(hBOld_vs_X[0]->GetN(), x, bxOld);
365 hBNew_vs_X[0]->SetPoint(hBNew_vs_X[0]->GetN(), x, bxNew);
366 hB_vs_X_Diff[0]->SetPoint(hB_vs_X_Diff[0]->GetN(), x, bxNew - bxOld);
367
368 hBOld_vs_X[1]->SetPoint(hBOld_vs_X[1]->GetN(), x, byOld);
369 hBNew_vs_X[1]->SetPoint(hBNew_vs_X[1]->GetN(), x, byNew);
370 hB_vs_X_Diff[1]->SetPoint(hB_vs_X_Diff[1]->GetN(), x, byNew - byOld);
371
372 hBOld_vs_X[2]->SetPoint(hBOld_vs_X[2]->GetN(), x, bzOld);
373 hBNew_vs_X[2]->SetPoint(hBNew_vs_X[2]->GetN(), x, bzNew);
374 hB_vs_X_Diff[2]->SetPoint(hB_vs_X_Diff[2]->GetN(), x, bzNew - bzOld);
375
376 x += dx;
377 }
378
379 x = 0;
380 y = yMin;
381 z = 130;
382 while (y < yMax) {
383
384 Float_t bxOld = magFieldOld->GetBx(x, y, z);
385 Float_t bxNew = magFieldNew->GetBx(x, y, z);
386 Float_t byOld = magFieldOld->GetBy(x, y, z);
387 Float_t byNew = magFieldNew->GetBy(x, y, z);
388 Float_t bzOld = magFieldOld->GetBz(x, y, z);
389 Float_t bzNew = magFieldNew->GetBz(x, y, z);
390 // printf("(%4.2f, %4.2f, %4.2f):\t%4.2f |\t%4.2f |\t%4.2f \n", x, y, z, byNew, byOld, byNew - byOld);
391
392 hBOld_vs_Y[0]->SetPoint(hBOld_vs_Y[0]->GetN(), y, bxOld);
393 hBNew_vs_Y[0]->SetPoint(hBNew_vs_Y[0]->GetN(), y, bxNew);
394 hB_vs_Y_Diff[0]->SetPoint(hB_vs_Y_Diff[0]->GetN(), y, bxNew - bxOld);
395
396 hBOld_vs_Y[1]->SetPoint(hBOld_vs_Y[1]->GetN(), y, byOld);
397 hBNew_vs_Y[1]->SetPoint(hBNew_vs_Y[1]->GetN(), y, byNew);
398 hB_vs_Y_Diff[1]->SetPoint(hB_vs_Y_Diff[1]->GetN(), y, byNew - byOld);
399
400 hBOld_vs_Y[2]->SetPoint(hBOld_vs_Y[2]->GetN(), y, bzOld);
401 hBNew_vs_Y[2]->SetPoint(hBNew_vs_Y[2]->GetN(), y, bzNew);
402 hB_vs_Y_Diff[2]->SetPoint(hB_vs_Y_Diff[2]->GetN(), y, bzNew - bzOld);
403
404 y += dy;
405 }
406
407 TCanvas* c[nCoord];
408 TMultiGraph* mgX[nCoord];
409 TMultiGraph* mgY[nCoord];
410 TMultiGraph* mgZ[nCoord];
411 for (Int_t iCoord = 0; iCoord < nCoord; ++iCoord) {
412 c[iCoord] =
413 new TCanvas(Form("c_%s", coordName[iCoord].Data()), Form("c_%s", coordName[iCoord].Data()), 1000, 500);
414 c[iCoord]->Divide(3, 2);
415 mgX[iCoord] = new TMultiGraph();
416 mgX[iCoord]->Add(hBOld_vs_X[iCoord]);
417 mgX[iCoord]->Add(hBNew_vs_X[iCoord]);
418 c[iCoord]->cd(1);
419 mgX[iCoord]->Draw("AL");
420 mgY[iCoord] = new TMultiGraph();
421 mgY[iCoord]->Add(hBOld_vs_Y[iCoord]);
422 mgY[iCoord]->Add(hBNew_vs_Y[iCoord]);
423 c[iCoord]->cd(2);
424 mgY[iCoord]->Draw("AL");
425 mgZ[iCoord] = new TMultiGraph();
426 mgZ[iCoord]->Add(hBOld_vs_Z[iCoord]);
427 mgZ[iCoord]->Add(hBNew_vs_Z[iCoord]);
428 c[iCoord]->cd(3);
429 mgZ[iCoord]->Draw("AL");
430 c[iCoord]->cd(4);
431 hB_vs_X_Diff[iCoord]->Draw("AL");
432 c[iCoord]->cd(5);
433 hB_vs_Y_Diff[iCoord]->Draw("AL");
434 c[iCoord]->cd(6);
435 hB_vs_Z_Diff[iCoord]->Draw("AL");
436 }
437}
int i
Definition P4_F32vec4.h:22
int Int_t
float Float_t
double Double_t
kRed
kBlack
kBlue
char * Form(const char *fmt,...)
R__EXTERN TStyle * gStyle
virtual Double_t GetBz(Double_t x, Double_t y, Double_t z)=0
virtual Double_t GetBy(Double_t x, Double_t y, Double_t z)=0
void SetScale(Double_t factor)
Set a global field scaling factor.
Definition BmnFieldMap.h:55
virtual Double_t GetBx(Double_t x, Double_t y, Double_t z)=0
virtual void Init()
Field Map does not have any symmetries w.r.t coordinate axises.
virtual void SetLineWidth(Width_t lwidth)
virtual void SetLineColor(Color_t lcolor)
TVirtualPad * cd(Int_t subpadnumber=0) override
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
void SetTitle(const char *title="") override
virtual void SetPoint(Int_t point, Double_t x, Double_t y, Double_t z)
void Draw(Option_t *option="P0") override
virtual void SetPoint(Int_t i, Double_t x, Double_t y)
void Draw(Option_t *chopt="") override
void SetTitle(const char *title="") override
virtual void Add(TGraph *graph, Option_t *chopt="")
void Draw(Option_t *chopt="") override
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override
void DrawField()
Definition DrawField.C:49
void DrawPlane()
Definition DrawField.C:2
void CompareFieldMaps()
Definition DrawField.C:229